远程访问,通过JDBC连接到Beeline对Hive进行操作报错

bash 复制代码
[root@hadoop02 conf]# beeline -u jdbc:hive2://hadoop01:10000
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/lbl/install/hive/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/lbl/install/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Connecting to jdbc:hive2://hadoop01:10000
24/11/02 11:04:09 [main]: WARN jdbc.HiveConnection: Failed to connect to hadoop01:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop01-lbl:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.security.AccessControlException: Permission denied: user=anonymous, access=EXECUTE, inode="/tmp":root:supergroup:drwxrwx---
        at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraverse(FSPermissionChecker.java:266)

问题原因:

  1. 连接失败:你尝试通过 JDBC 连接到 Hive,但由于权限问题,连接未成功。

  2. 权限被拒绝 :错误提示中指出,用户 anonymous 没有权限执行某些操作,特别是访问 /tmp 目录。根据错误信息,目录的权限是 drwxrwx---,这意味着只有拥有者(root)和所在组(supergroup)的用户可以访问。

解决方法:

  1. 检查用户权限

    • 确保你使用的用户具有足够的权限来访问 /tmp 目录。可以考虑使用一个具有正确权限的用户来进行连接。
  2. 更改目录权限

    • 如果可以,尝试调整 /tmp 目录的权限,以允许匿名用户或你正在使用的用户进行访问。例如,可以使用以下命令更改权限:

      bash 复制代码
      hdfs dfs -chmod 1777 /tmp
  3. 配置 Hive 和 Hadoop

    • 确保你的 Hive 和 Hadoop 配置文件中,hive.exec.scratchdir 设置为一个有权限的目录。
    • 检查 Hive 的安全配置,确保允许你使用的用户连接。
  4. 使用认证用户

    • 如果 Hive 启用了 Kerberos 认证,确保你使用的是正确的 Kerberos 用户,并且已经获得了有效的票据。
相关推荐
一个天蝎座 白勺 程序猿36 分钟前
大数据(4.5)Hive聚合函数深度解析:从基础统计到多维聚合的12个生产级技巧
大数据·hive·hadoop
浩浩kids3 小时前
Hadoop•踩过的SHIT
大数据·hadoop·分布式
weixin_307779138 小时前
C#实现HiveQL建表语句中特殊数据类型的包裹
开发语言·数据仓库·hive·c#
一个天蝎座 白勺 程序猿19 小时前
大数据(4.2)Hive核心操作实战指南:表创建、数据加载与分区/分桶设计深度解析
大数据·hive·hadoop
一个天蝎座 白勺 程序猿20 小时前
大数据(4.3)Hive基础查询完全指南:从SELECT到复杂查询的10大核心技巧
数据仓库·hive·hadoop
weixin_307779131 天前
判断HiveQL语句为建表语句的识别函数
开发语言·数据仓库·hive·c#
酷爱码1 天前
hive相关面试题以及答案
hive·分布式
zhangjin12221 天前
kettle从入门到精通 第九十四课 ETL之kettle MySQL Bulk Loader大批量高性能数据写入
大数据·数据仓库·mysql·etl·kettle实战·kettlel批量插入·kettle mysql
宅小海2 天前
14 配置Hadoop集群-配置历史和日志服务
linux·服务器·hadoop
珹洺2 天前
Java-servlet(十)使用过滤器,请求调度程序和Servlet线程(附带图谱表格更好对比理解)
java·开发语言·前端·hive·hadoop·servlet·html