問(wèn)題背景:
因?yàn)槲野惭b的都是cdh5.7.0系列版本挤巡,Phoenix官網(wǎng)上沒(méi)有cdh5.7.0版本死宣,所以就看大神們都使用的是cdh5.8.0版本~, 版本一定要對(duì)上噢~
但是安裝好后運(yùn)行./sqlline.py的時(shí)候就是一直報(bào)錯(cuò):
先是報(bào)這2個(gè)錯(cuò)
Caused by: java.net.SocketTimeoutException:
java.net.ConnectException: 拒絕連接
改了好多地方可是還是報(bào)錯(cuò)娇唯,真是尷尬。。。
后來(lái)終于自己找到了原因:
如果你安裝都沒(méi)有問(wèn)題的話终惑,一到啟動(dòng)phoenix的時(shí)候就報(bào)錯(cuò):就要試試不要解壓在你設(shè)定好的目錄下,就直接解壓就行门扇,不要-C到指定文件夾雹有!
然后開(kāi)始用java api 對(duì)phoenix做測(cè)試操作:
結(jié)果又報(bào)錯(cuò):
Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.isNamespaceMappingEnabled enabled
按照各位大神的操作偿渡,我在hbase-site.xml下設(shè)置了命名空間啟用,卻總是提示這個(gè)錯(cuò)誤霸奕。卸察。。
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
后來(lái)我參照TracyGao01大神的帖子铅祸,查看了官網(wǎng)http://phoenix.apache.org/namspace_mapping.html
重要的是這句話:
if set once, should not be rollback. Old client will not work after this property is enabled.
如果設(shè)置一次坑质,就不應(yīng)該回滾。啟用此屬性后临梗,舊客戶端將無(wú)法工作涡扼。
解決方法如下:
1、刪除在hbase和phoenix的hbase-site.xml下設(shè)置的關(guān)于命名空間啟用的設(shè)置盟庞。
2吃沪、重啟hbase,進(jìn)入hbase shell
3什猖、按照下面步驟進(jìn)行操作
修改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、運(yùn)行我自己的IDEA的測(cè)試不狮,就成功的取到了表里的值啦~
暫時(shí)沒(méi)有bug啦~~~
?特別提醒:
pom引用的時(shí)候降铸,版本不要太高,雖然我的是cdh的
mvn倉(cāng)庫(kù)里找不到4.8.0-cdh5.8.0
所以我找了一個(gè)相近的
<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安裝步驟摇零,犒勞一下這么堅(jiān)持的我???~
1推掸、下載到win:
https://github.com/chiastic-security/phoenix-for-cloudera/tree/4.8-HBase-1.2-cdh5.8
2、下載完畢后驻仅,解壓到你自己創(chuàng)建好的win本地目錄
E:\phoenix/phoenix-for-cloudera-4.8-HBase-1.2-cdh5.8
3谅畅、打開(kāi)CMD,進(jìn)入目錄進(jìn)行編譯---編譯時(shí)間較長(zhǎng)噪服,耐心等待...
(一定要加上-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
編譯成功~
4毡泻、將編譯好的phoenix-4.8.0-cdh5.8.0.tar.gz復(fù)制到服務(wù)器指定目錄下
5、直接就地解壓 (不要-C)
tar -zxvf phoenix-4.8.0-cdh5.8.0.tar.gz
6粘优、因?yàn)槲业氖莻畏植际降某鹞叮挥幸粋€(gè)regionServer所以將指定的phoenix-4.8.0-cdh5.8.0-server.jar復(fù)制到Hbase的lib文件夾下,只拷貝到一個(gè)節(jié)點(diǎn)下就可以了敬飒,如果你是集群邪铲,當(dāng)然每一個(gè)節(jié)點(diǎn)都要拷貝一個(gè)過(guò)去~
7、將hbase>conf里的hbase-site.xml 復(fù)制到phoenix-4.8.0-cdh5.8.0的 bin 下无拗,覆蓋已有的hbase-site.xml
8带到、啟動(dòng)hdfs
sbin>./start-dfs.sh
9隘膘、啟動(dòng)zookeeper
bin>./zkServer.sh start
10锄贷、啟動(dòng)hbase
bin>./start-hbase.sh
11丢郊、檢查進(jìn)程 jps
12秸弛、進(jìn)入./hbase shell ,按照之前的方法修改hbase中表SYSTEM:CATALOG名為SYSTEM.CATALOG
8搪搏、啟動(dòng)phoenix----->進(jìn)入Phoenix的bin目錄
./sqlline.py 服務(wù)器名:zookeeper端口
bin>./sqlline.py hadoop001:2181/hbase
9狭握、測(cè)試一下:列出所有的表
!tables
終于安裝好啦7枘纭B勐!4涯邸恃疯!
?特別特別感謝以下地址~~~
【cdh版本的phoneix安裝教程】
https://www.2cto.com/net/201804/735362.html
【CDH5.8 HBase安裝Phoenix---有個(gè)關(guān)于客戶端 出現(xiàn) hbase.table.sanity.checks 錯(cuò)誤解決】
http://www.reibang.com/p/6d2687cce817
【CDH版 Phoenix 安裝方法---里面有個(gè)關(guān)于二級(jí)索引的配置】
https://blog.csdn.net/yuanhaiwn/article/details/81435013
【apache phoenix如何關(guān)掉namespace功能(作者TracyGao01)】
https://blog.csdn.net/u012551524/article/details/82595825