BAS*_*RAN 7 hbase high-availability phoenix
我正在尝试通过Phoenix连接HBase集群.首先,我将Phoenix客户端和查询服务器jar文件复制到HMaster和HRegion lib文件夹,然后重新启动HBase服务.
服务器 - 通过/bin/queryserver.py启动Phoenix服务器.它运行正常.
客户 -
AvaticaClientRuntimeException: Remote driver error: RuntimeException: java.sql.SQLException: No suitable driver found for "http://hacluster:8764".
高可用性集群的Hbase-site.xml文件配置
<property>
<name>hbase.master</name>
<value>activenamenode:60000</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hacluster/HBase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>zk1,zk2,zk3</value>
</property>
<property> <name>hbase.rpc.timeout</name>
<value>60000</value>
<property>
Run Code Online (Sandbox Code Playgroud)
它在伪节点集群上工作.但在启用HA的Hadoop集群中失败了.
在HA Cluster中,我为文件中的hbase.rootdir属性设置了活动的namenode url而不是HA nameservice hbase-site.xml.
错误消息中列出了问题:No suitable driver found for http...。不知何故,您正在使用 HTTP 连接字符串。我不知道 Avatica 具体是如何工作的,但我假设您需要一个 JDBC 连接字符串,这是连接到 Phoenix 之类的最常见的方式。
例如:
jdbc:phoenix:m1.hdp.local,m2.hdp.local,d1.hdp.local:2181:/hbase-unsecure
有关更多详细信息,请参阅https://streever.atlassian.net/wiki/spaces/HADOOP/pages/11993090/Phoenix+JDBC+Client+Setup。