cdh phoenix java api,解决:cdh版本的Phoenix安装的问题

问题背景:

因为我安装的都是cdh5.7.0系列版本,Phoenix官网上没有cdh5.7.0版本,所以就看大神们都使用的是cdh5.8.0版本~, 版本一定要对上噢~

但是安装好后运行./sqlline.py的时候就是一直报错:

先是报这2个错

Caused by: java.net.SocketTimeoutException:

java.net.ConnectException: 拒绝连接

改了好多地方可是还是报错,真是尴尬。。。

后来终于自己找到了原因:

如果你安装都没有问题的话,一到启动phoenix的时候就报错:就要试试不要解压在你设定好的目录下,就直接解压就行,不要-C到指定文件夹!

然后开始用java api 对phoenix做测试操作:

结果又报错:

Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabled

按照各位大神的操作,我在hbase-site.xml下设置了命名空间启用,却总是提示这个错误。。。

phoenix.schema.isNamespaceMappingEnabled

true

adfad432ba70

Image 1.png

重要的是这句话:

if set once, should not be rollback. Old client will not work after this property is enabled.

如果设置一次,就不应该回滚。启用此属性后,旧客户端将无法工作。

解决方法如下:

1、删除在hbase和phoenix的hbase-site.xml下设置的关于命名空间启用的设置。

2、重启hbase,进入hbase shell

3、按照下面步骤进行操作

修改hbase中表SYSTEM:CATALOG名为SYSTEM.CATALOG

1)disable 'SYSTEM:CATALOG'

2)snapshot 'SYSTEM:CATALOG', 'cata_tableSnapshot'

3)clone_snapshot 'cata_tableSnapshot', 'SYSTEM.CATALOG'

4)drop 'SYSTEM:CATALOG'

4、重启phoenix

5、运行我自己的IDEA的测试,就成功的取到了表里的值啦~

暂时没有bug啦~~~

❤特别提醒:

pom引用的时候,版本不要太高,虽然我的是cdh的

mvn仓库里找不到4.8.0-cdh5.8.0

所以我找了一个相近的

org.apache.phoenix

phoenix-core

4.8.0-HBase-1.2

附一下4.8.0-cdh5.8.0安装步骤,犒劳一下这么坚持的我❤❤❤~

1、下载到win:

2、下载完毕后,解压到你自己创建好的win本地目录

E:\phoenix/phoenix-for-cloudera-4.8-HBase-1.2-cdh5.8

3、打开CMD,进入目录进行编译---编译时间较长,耐心等待...

(一定要加上-Dcdh.flume.version=1.6.0)

E:\phoenix\phoenix-for-cloudera-4.8-HBase-1.2-cdh5.8>

mvn clean package -DskipTests -Dcdh.flume.version=1.6.0

adfad432ba70

Image 1.png

adfad432ba70

Image 2.png

编译成功~

4、将编译好的phoenix-4.8.0-cdh5.8.0.tar.gz复制到服务器指定目录下

5、直接就地解压 (不要-C)

tar -zxvf phoenix-4.8.0-cdh5.8.0.tar.gz

adfad432ba70

Image 2.png

6、因为我的是伪分布式的,只有一个regionServer所以将指定的phoenix-4.8.0-cdh5.8.0-server.jar复制到Hbase的lib文件夹下,只拷贝到一个节点下就可以了,如果你是集群,当然每一个节点都要拷贝一个过去~

7、将hbase>conf里的hbase-site.xml 复制到phoenix-4.8.0-cdh5.8.0的 bin 下,覆盖已有的hbase-site.xml

8、启动hdfs

sbin>./start-dfs.sh

9、启动zookeeper

bin>./zkServer.sh start

10、启动hbase

bin>./start-hbase.sh

11、检查进程 jps

adfad432ba70

Image 3.png

12、进入./hbase shell ,按照之前的方法修改hbase中表SYSTEM:CATALOG名为SYSTEM.CATALOG

8、启动phoenix----->进入Phoenix的bin目录

./sqlline.py 服务器名:zookeeper端口

bin>./sqlline.py hadoop001:2181/hbase

adfad432ba70

Image 5.png

9、测试一下:列出所有的表

!tables

adfad432ba70

Image 1.png

终于安装好啦!!!!!

【CDH5.8 HBase安装Phoenix---有个关于客户端 出现 hbase.table.sanity.checks 错误解决】

https://www.jianshu.com/p/6d2687cce817

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值