使用phoenix連線hbase
阿新 • • 發佈:2018-11-10
hbase本身不支援SQL查詢,為了實現這個功能,引入了phoenix,通過它可以實現hbase的sql查詢。這裡記錄下如何配置並使用phoenix來操作hbase。
1. 下載地址
phoenix下載地址:http://apache.fayea.com/phoenix/。
注意:phoenix和hbase之前存在版本對應關係,我使用的hbase版本是1.1.3,所以我下載的phoenix版本是apache-phoenix-4.14.0-HBase-1.1-bin.tar.gz。
2. 配置phoenix
(1). 解壓檔案 tar -zxvf apache-phoenix-4.14.0-HBase-1.1-bin.tar.gz
(2). 拷貝phoenix-4.14.0-HBase-1.1-client.jar和phoenix-core-4.14.0-HBase-1.1.jar 這兩個檔案到hbase的lib目錄下。
注意:如果hbase是叢集模式部署,需要拷貝這兩個檔案到每個hbase的lib目錄下。
(3). 複製hbase-site.xml檔案到phoenix的bin目錄下
apache-phoenix-4.14.0-HBase-1.1-bin/bin
(4). 重啟hbase服務(必須重啟hbase服務,否則phoenix將不能正常啟動)
sh stop-hbase.sh
sh start-hbase.sh
3. 啟動phoenix
進入到phoenix的bin目錄下,執行命令./sqlline.py host:port
,其中host是主機名,port為zookeeper埠
如上圖所示,已進入phoenix的控制檯。
4. 用法簡介
(1). !tables
命令可以檢視有哪些表,注意:只能查詢到通過phoenix建立的表,通過hbase建立的表無法看到
(2). 建立檢視,將hbase上的表對映到phoenix中
#首先在hbase上建立一個表student,包含一個列簇info hbase(main):004:0> create "student","info" 0 row(s) in 2.6890 seconds => Hbase::Table - student #向student表中插入一行資料 hbase(main):009:0> put "student","001","info:name","tom" 0 row(s) in 0.0250 seconds hbase(main):010:0> put "student","001","info:age","23" 0 row(s) in 0.0090 seconds #接下來,進入phoenix的控制檯,建立student的檢視 0: jdbc:phoenix:node3:2181> create view "student"(rid varchar primary key,"info"."name" varchar,"info"."age" varchar); #查詢 0: jdbc:phoenix:node3:2181> select * from "student"; +------+-------+------+ | RID | name | age | +------+-------+------+ | 001 | tom | 23 | +------+-------+------+ 1 row selected (0.326 seconds)