问题
jdbc 连接不到 CDH 集群某 impalad 节点,其他 impalad 节点不受影响。
受影响的 impalad 节点报错信息如图:

经查看后,发现 impala 的默认连接数为(每个impalad)64个,当某 impalad 节点连接数达到64后,无法再建立新的连接,表现为客户端连接不到该 impalad 节点,但可以正常连接其他 impalad 节点。
http://datanode_x:25000/sessions
可以查看对应节点当前连接情况
解决方法
CDH 中修改 impala -> 配置 -> fe_service_threads 参数,可调大每个 impalad 节点的最大连接数。
对于连接池,建议使用 imapla 官方给出的连接管理驱动:com.cloudera.impala.jdbc4.DataSource
修改 imapla 的连接驱动,将 c3p0 的连接池管理换成如下的配置配置:
<bean id="impaldataSource" class="com.cloudera.impala.jdbc4.DataSource">
<property name="loginTimeout" value="30000"/>
<property name="URL" value="jdbc:impala://……"/>
<property name="userID" value=""/>
<property name="password" value=""/>
</bean>
网友评论