美文网首页
解决:cdh版本的Phoenix安装的问题

解决:cdh版本的Phoenix安装的问题

作者: Sam_L | 来源:发表于2019-02-14 17:23 被阅读0次
问题背景:

因为我安装的都是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下设置了命名空间启用,却总是提示这个错误。。。

<property>

<name>phoenix.schema.isNamespaceMappingEnabled</name>

<value>true</value>

</property>

后来我参照TracyGao01大神的帖子,查看了官网http://phoenix.apache.org/namspace_mapping.html

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
所以我找了一个相近的

<dependencies>
        <dependency>
            <groupId>org.apache.phoenix</groupId>
            <artifactId>phoenix-core</artifactId>
            <version>4.8.0-HBase-1.2</version>
        </dependency>
    </dependencies>

附一下4.8.0-cdh5.8.0安装步骤,犒劳一下这么坚持的我❤❤❤~
1、下载到win:

https://github.com/chiastic-security/phoenix-for-cloudera/tree/4.8-HBase-1.2-cdh5.8

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
Image 1.png 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
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
Image 3.png
12、进入./hbase shell ,按照之前的方法修改hbase中表SYSTEM:CATALOG名为SYSTEM.CATALOG
8、启动phoenix----->进入Phoenix的bin目录

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

bin>./sqlline.py hadoop001:2181/hbase
Image 5.png
9、测试一下:列出所有的表
!tables
Image 1.png

终于安装好啦!!!!!


❤特别特别感谢以下地址~~~
【cdh版本的phoneix安装教程】
https://www.2cto.com/net/201804/735362.html

【CDH5.8 HBase安装Phoenix---有个关于客户端 出现 hbase.table.sanity.checks 错误解决】
https://www.jianshu.com/p/6d2687cce817

【CDH版 Phoenix 安装方法---里面有个关于二级索引的配置】
https://blog.csdn.net/yuanhaiwn/article/details/81435013

【apache phoenix如何关掉namespace功能(作者TracyGao01)】
https://blog.csdn.net/u012551524/article/details/82595825

相关文章

网友评论

      本文标题:解决:cdh版本的Phoenix安装的问题

      本文链接:https://www.haomeiwen.com/subject/vlkdeqtx.html