具体表现为,
通过CLI访问:show databases;正常。select * 正常。
通过beeline访问:show databases正常。select *报SocketTimeoutException错误。
Caused by: java.net.SocketTimeoutException: callTimeout=66666, callDuration=69100: Call to minhangbigdata-7/10.10.10.59:16020 failed on local exception: java.io.IOException: Connection closed row 'minhangTB,,' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=minhangbigdata-7,16020,1518066996646, seqNum=0
at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:148) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:80) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
... 3 more
Caused by: java.io.IOException: Call to minhangbigdata-7/10.10.10.59:16020 failed on local exception: java.io.IOException: Connection closed
at org.apache.hadoop.hbase.ipc.IPCUtil.wrapException(IPCUtil.java:180) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.onCallFinished(AbstractRpcClient.java:390) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.access$100(AbstractRpcClient.java:95) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.ipc.AbstractRpcClient$3.run(AbstractRpcClient.java:410) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.ipc.AbstractRpcClient$3.run(AbstractRpcClient.java:406) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.ipc.Call.callComplete(Call.java:103) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.ipc.Call.setException(Call.java:118) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.ipc.NettyRpcDuplexHandler.cleanupCalls(NettyRpcDuplexHandler.java:202) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.ipc.NettyRpcDuplexHandler.channelInactive(NettyRpcDuplexHandler.java:210) ~[hbase-client-2.0.0-alpha4.jar:2.0.0-alpha4]
at org.apache.hadoop.hbase.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:245) ~[hbase-shaded-netty-1.0.1.jar:?]
at org.apache.hadoop.hbase.shaded.io.netty.channel.AbstractChannelHandlerContext.invokeChannelInact
网上出现这个问题,一般都会定位到一个unknown host错误,然后修改主机映射就可以了,但是我这个错误只报Connection closed。查到有出现相同问题的,但是没有人解答。
因为一直在报重试超时,首先反应是timeout问题,疯狂的改HDFS,HBASE的SESSION timeout时间,然而发现没有什么用。改变思路,从错误场景出发,执行show dataases 和select * 这两个语句的区别是什么,通过查阅发现,show databses;查询时直接访问元数据的MYSQL,select * 会通过ZOOKEEPER访问HBASE。前者正常只能说明JDBC连接是正常的,后者错误是因为zookeeper连不上,然后检查ZOOKEEPER的配置,发现HIVE的配置文件中没有指定ZOOKEEPER服务器,
在hive-site.xml中添加如下配置,然后重新启动hiveserve2服务,发现select *查询正常了
<property>
<name>hive.support.concurrency</name>
<value>true</value>
</property>
<property>
<name>hive.zookeeper.quorum</name>
<value>minhangbigdata-7</value>
</property