背景描述:
phoenix基於hbase的SQL層,映射hbase的表,也可以映射視圖(VIEW)
部署安裝比較簡單
映射表和視圖的區別:
映射表:
在Phoenix建表錯誤不易更改;
刪除會連同hbase源數據一起刪;
表映射,可以查詢和更改hbase數據
視圖映射:
在Phoenix創建hbase表的視圖;
只提供查詢功能;
有問題隨時可以刪除視圖重建;
注:初次使用Phoenix,了解淺顯,僅以部署安裝為主,其余不多做描述。
架構描述:
zookeeper+hadoop+hbase 集群,部署在5個節點上。
phoenix客戶端 : 部署在5個節點的任意一節點上,映射hbase中表,便於執行SQL查詢。
squirrel sql client : 圖形化工具,可以查看兼容JDBC的數據庫,類似SQLyog,navicat工具
部署安裝:
下載地址:http://mirrors.hust.edu.cn/apache/phoenix/
選擇格式:phoenix-[version]-bin.tar 與hbase版本對應:apache-phoenix-4.11.0-HBase-1.2-bin.tar.gz
兩個概念:
phoenix server : HBase region server and maste (hbase集群所有節點)
phoenix client :部署phoenix 的機器節點(該節點可以部署在任何機器上)
涉及IP地址:
phoinix server:
hbase集群:
Hmaster:172.21.10.1~2
Hregion:172.21.10.3~5
phoenix client:
172.21.10.2 (任意機器)
zookeeper集群:
172.21.10.3~5
phoenix 連接hbase :
是通過訪問zookeeper地址:
$ sqlline.py 172.21.10.3,172.21.10.4,172.21.10.5:2181 #phoenix部署在任意節點時
Linux 操作步驟:
(1)解壓
cd /data
tar -xf apache-phoenix-4.11.0-HBase-1.2-bin.tar.gz
cd apache-phoenix-4.11.0-HBase-1.2-bin
ls #可以看到很多jar包
(2)有用jar包
phoenix-4.11.0-HBase-1.2-server.jar
#復制到hbase所有節點的:/usr/local/hbase/lib 目錄下
phoenix-4.11.0-HBase-1.2-client.jar
#復制到phoenix client的CLASSPATH目錄下面:(需要在/etc/profile中設置環境變量)
#本節點的CLASSPATH:/data/data/apache-phoenix-4.11.0-HBase-1.2-bin
#所有的jar包都在這個路徑下,所以不必復制了
phoenix-4.11.0-HBase-1.2-client.jar
phoenix-4.11.0-HBase-1.2-thin-client.jar
phoenix-core-4.11.0-HBase-1.2.jar
#這3個jar包:SQuirrel圖形工具所必須的。需要復制到安裝目錄下的lib目錄下面。
#暫時不用管,安裝SQuirrel時再復制。
(3)設置phoenix環境變量
在/etc/profile中添加:
export PHOENIX_HOME=/data/apache-phoenix-4.11.0-HBase-1.2-bin
export PHOENIX_CLASSPATH=$PHOENIX_HOME
export PATH=$PATH:$PHOENIX_HOME/bin
執行source /etc/profile 生效
(4)附權
phoenix目錄及復制到所有節點上/usr/local/hbase/lib下的jar包都需要hadoop.hadoop權限
chown -R hadoop.hadoop /data/apache-phoenix-4.11.0-HBase-1.2-bin
chown -R hadoop.hadoop /usr/local/hbase/lib/phoenix-*
(5)phoenix連接hbase的sqlline.py是基於Python編寫的
路徑: /data/apache-phoenix-4.11.0-HBase-1.2-bin/bin/sqlline.py
sqlline.py腳本中:import argparse 需要argparse模塊,現網機器上默認沒有這個模塊包,需要單獨下載
argparse模塊包下載地址:
https://pypi.python.org/pypi/argparse/#downloads
argparse安裝:
tar -xf argparse-1.4.0.tar.gz
cd argparse-1.4.0
python setup.py install
(6)重啟hbase
stop-hbase.sh
start-hbase.sh
登錄測試

建表測試:
在hbase創建表:
>create 'phoenix','info'
插入數據:
> put 'phoenix', 'row001','info:name','phoenix'
>put'phoenix','row002','info:name','hbase'
在phoenix中建相同結構的表:
create table "phoenix"("row" varchar primary key, "info"."name" varchar);
在phoenix中查詢表:表名要用 "" 引起來

--ok