我在HDP服务器上为Phoenix启用了HBase。但是,如果我尝试使用以下命令启用sqlline:
./sqlline.py localhost:2181:/hbase_unsecure
遇到错误:
Error: org.apache.hadoop.hbase.client.RetriesExhaustedException: Can't get the location for replica 0 (state=,code=0)
我已经检查了zookeeper的状态,它正在localhost:2181上运行
[root@sandbox-hdp bin]# echo srvr |nc localhost 2181
Zookeeper version: 3.4.6-292--1, built on 05/11/2018 07:15 GMT
Latency min/avg/max: 0/0/634
Received: 16936
Sent: 16966
Connections: 11
Outstanding: 0
Zxid: 0x46c
Mode: standalone
Node count: 276
如何调试它以便可以在HBase上运行phoenix?
答案 0 :(得分:0)
这意味着没有正确设置通过 zookeeper 连接到 HBase。
首先 ssh 到主节点并检查来自 Phoenix 的直接连接是否正在使用: /usr/lib/phoenix/bin/sqlline-thin.py http://localhost:8765/hbase_unsecure
那么, 通过zookeeper连接: /usr/lib/phoenix/bin/sqlline.py http://master-private-dns:2181/hbase_unsecure
并使用 jdbc:jdbc:phoenix:master-private-dns:2181/hbase-unsecure
P。 S. 在 aws-emr 上测试过,但 hdp 应该是类似的。