当我使用直线连接到hiveserver2时,错误信息就像这样。 我以前连接过hiveserver2。 我连接到hiveserver2一段时间后显示此错误。 我可以连接使用jdbc:hive2://
beeline> !connect jdbc:hive2://master:10000
SLF4J:类路径包含多个SLF4J绑定。 SLF4J:在[jar:file:/usr/local/hive/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]中找到绑定 SLF4J:在[jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]中找到绑定 SLF4J:有关解释,请参阅http://www.slf4j.org/codes.html#multiple_bindings。 SLF4J:实际绑定的类型为[org.apache.logging.slf4j.Log4jLoggerFactory] 连接到jdbc:hive2:// master:10000 输入jdbc的用户名:hive2:// master:10000: 输入jdbc的密码:hive2:// master:10000: 17/11/14 22:09:36 [main]:WARN jdbc.HiveConnection:无法连接到master:10000 从HS2服务器读取时出现意外的文件结束。根本原因可能是并发连接数太多。请要求管理员检查活动连接数,并调整hive.server2.thrift.max.worker.threads(如果适用)。 错误:无法使用JDBC Uri打开客户端传输:jdbc:hive2:// master:10000:null(state = 08S01,code = 0)
hive-site.xml设置如下
<property>
39 <name>hive.server2.thrift.min.worker.threads</name>
40 <value>5</value>
41 </property>
42 <property>
43 <name>hive.server2.thrift.max.worker.threads</name>
44 <value>500</value>
45 </property>
46 <property>
47 <name>hive.server2.thrift.bind.host</name>
48 <value>master</value>
49 </property>
50 <property>
51 <name>hive.server2.thrift.port</name>
52 <value>10000</value>
53 </property>
我检查了10000端口正在侦听的netstat。 即使我重新启动hadoop服务器和hiveserver2,问题仍未解决。 我怎么知道有多少连接是活动的还是我可以清除线程池? 当我关闭hiveserver和hadoop和linux系统时,活动将不会关闭?
答案 0 :(得分:0)
它适用于我的环境:
$ netstat -an | grep 10000
tcp4 0 0 *.10000 *.* LISTEN
设置nosasl不使用SASLTransport
<property>
<name>hive.server2.authentication</name>
<value>NOSASL</value> <!-- default NONE is for SASLTranspor
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value> <!-- Execute query as hiveserver2 proc
</property>
和
!connect jdbc:hive2://localhost:10000/default;auth=noSasl hive password org.apache.hive.jdbc.HiveDriver
这是日本博客,但它会有所帮助:http://tagomoris.hatenablog.com/entry/20131226/1388044783