Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop Beeline无法使用NOSASL身份验证模式(旧客户端)连接到HiveServe2_Hadoop_Authentication_Hive_Beeline - Fatal编程技术网

Hadoop Beeline无法使用NOSASL身份验证模式(旧客户端)连接到HiveServe2

Hadoop Beeline无法使用NOSASL身份验证模式(旧客户端)连接到HiveServe2,hadoop,authentication,hive,beeline,Hadoop,Authentication,Hive,Beeline,这个问题在这里很常见,有几种不同的说法。在这个场景中,我设置了一个不带身份验证的HiveServer2(NOASL),它从Python开始工作,在Python中我使用Impyla库进行连接。 当我使用直线连接时,无法获得工作连接 直线终点为: beeline> !connect jdbc:hive2://127.0.0.1:10000/default/hive Error: Could not open client transport with JDBC Uri: jdbc:hive

这个问题在这里很常见,有几种不同的说法。在这个场景中,我设置了一个不带身份验证的HiveServer2(NOASL),它从Python开始工作,在Python中我使用Impyla库进行连接。 当我使用直线连接时,无法获得工作连接

直线终点为:

 beeline> !connect jdbc:hive2://127.0.0.1:10000/default/hive
 Error: Could not open client transport with JDBC Uri: jdbc:hive2://127.0.0.1:10000/default/hive: null (state=08S01,code=0)
在HiveServer2日志中,我有:

17/11/16 20:59:35 [HiveServer2-Handler-Pool: Thread-34]: ERROR server.TThreadPoolServer: Thrift error occurred during processing of message.
org.apache.thrift.protocol.TProtocolException: Missing version in readMessageBegin, old client?
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:228)
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
    at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56)
    at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

有什么想法吗

最后,我找到了解决办法

!connect jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl
使用此功能,我可以连接到HiveServer2。 另外,我正在使用HiveServer2进行开发,所以我在root下启动了进程,所有文件系统树都属于root。由于此选项,我需要在使用beeline登录到HiveServer2时使用root用户:

Connecting to jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl
Enter username for jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl: root
Enter password for jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl: 
Connected to: Apache Hive (version 1.2.2)
我不需要提供密码,因为根本没有身份验证。现在我可以创建数据库和表了


此“”是解决此问题的有效参考。

最后,我找到了解决方案

!connect jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl
使用此功能,我可以连接到HiveServer2。 另外,我正在使用HiveServer2进行开发,所以我在root下启动了进程,所有文件系统树都属于root。由于此选项,我需要在使用beeline登录到HiveServer2时使用root用户:

Connecting to jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl
Enter username for jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl: root
Enter password for jdbc:hive2://127.0.0.1:10000/default/;auth=noSasl: 
Connected to: Apache Hive (version 1.2.2)
我不需要提供密码,因为根本没有身份验证。现在我可以创建数据库和表了


此“”是解决此问题的有效参考。

奇怪的是,我的EMR配置单元设置失败,除非没有提供身份验证会话变量,或者该变量设置为空白或“无”或“无”。您使用的是哪个版本的软件?我使用的是EMR 5.16和5.18;还没试过5.19。它们与Hive 2.3.3一起提供,我使用的客户端说thrift Hive protocol 2.1正在使用中,所以可能是这样。奇怪的是,我的EMR Hive设置失败,除非没有提供身份验证会话变量,或者该变量设置为空白或“无”或“无”。您使用的是哪个版本的软件?我使用的是EMR 5.16和5.18;还没试过5.19。他们配备了Hive2.3.3,我使用的客户端说thrift Hive2.1协议正在使用中,所以可能是与此相关的东西。