Phoenix安裝與兩種方式使用
阿新 • • 發佈:2019-02-10
簡介
HBase、Hive都是構建在HDFS之上,而Phoenix則是構建在HBase之上,基於HBase的API,讓我們能夠以SQL的方式,更高效專業的與HBase互動。
基於Phoenix,除了Phoenix命令列,也可以通過視覺化介面SQuirrel來操作HBase中Phoenix Tables。
Phoenix官網:https://phoenix.apache.org/language/index.html 官網中Phoenix 語法、資料型別、函式、Join操作、子查詢等寫的非常清楚,可多參考官網。
Phoenix安裝
1、Phoenix節點規劃
HOST | 角色 |
---|---|
node1 | ZooKeeper、HMaster、HRegionServer |
node2 | ZooKeeper、HRegionServer |
node3 | ZooKeeper、HRegionServer、HBase Client、Phoenix(待安裝) |
node4 | HRegionServer、HBase Client |
2、下載解壓Phoenix
#官網下載phoenix:http://phoenix.apache.org/download.html
#選擇適合hbase版本的Phoenix,這裡hbase版本1.1.2
[root@node3 ~]# wget http://mirrors.hust.edu.cn/apache/phoenix/apache-phoenix-4.13.1-HBase-1.1/bin/apache-phoenix-4.13.1-HBase-1.1-bin.tar.gz
#解壓
[root@node3 ~]# tar -zxvf apache-phoenix-4.13.1-HBase-1.1-bin.tar.gz
3、移除jar包
移除HBase region server和master server lib目錄中先前版本的phoenix-*-server.jar包
[root@node1 ~]# mv /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar.bk
[root@node2 ~]# mv /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar.bk
[root@node3 ~]# mv /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar.bk
[root@node4 ~]# mv /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar /usr/hdp/2.6.4.0-91/hbase/lib/phoenix-server.jar.bk
4、拷貝jar包
拷貝phoenix中phoenix-*-server.jar到HBase所有region server 和 master server lib目錄
#拷貝到node1 region server 和 master server lib
[root@node3 ~]# scp apache-phoenix-4.13.1-HBase-1.1-bin/phoenix-*-server.jar root@node1:/usr/hdp/2.6.4.0-91/hbase/lib
#拷貝到node2 region server lib
[root@node3 ~]# scp apache-phoenix-4.13.1-HBase-1.1-bin/phoenix-*-server.jar root@node2:/usr/hdp/2.6.4.0-91/hbase/lib
#拷貝到node3 region server lib
[root@node3 ~]# cp apache-phoenix-4.13.1-HBase-1.1-bin/phoenix-*-server.jar /usr/hdp/2.6.4.0-91/hbase/lib
#拷貝到node4 region server lib
[root@node3 ~]# scp apache-phoenix-4.13.1-HBase-1.1-bin/phoenix-*-server.jar root@node4:/usr/hdp/2.6.4.0-91/hbase/lib
5、拷貝hbase-site.xml到phoenix bin目錄
[root@node3 bin]# cp /usr/hdp/2.6.4.0-91/hbase/conf/hbase-site.xml .
6、重啟HBase
通過Phoenix 命令列使用HBase
1、進入命令列
[root@node3 bin]# pwd
/root/apache-phoenix-4.13.1-HBase-1.1-bin/bin
#node2是ZooKeeper其中一個節點,埠預設2181
[root@node3 bin]# python sqlline.py node2
2、Phoenix 命令
Phoenix語法:https://phoenix.apache.org/language/index.html
#檢視所有命令
help
#建立表 可指定表空間
create table if not exists student.baseInfo(
id integer not null primary key,
name varchar,
age integer,
gender boolean default false
);
#查看錶結構
!desc student.baseInfo;
#插入資料
upsert into student.baseInfo (id,name,age,gender) values(1,'A',5,false);
upsert into student.baseInfo (id,name,age,gender) values(2,'B',5,false);
upsert into student.baseInfo (id,name,age,gender) values(3,'A',5,true);
upsert into student.baseInfo (id,name,age,gender) values(4,'A',5,false);
upsert into student.baseInfo (id,name,age,gender) values(5,'A',5,true);
upsert into student.baseInfo (id,name,age,gender) values(6,'B',5,false)
#檢視資料
select * from student.baseInfo;
+-----+-------+------+---------+
| ID | NAME | AGE | GENDER |
+-----+-------+------+---------+
| 1 | A | 5 | false |
| 2 | B | 5 | false |
| 3 | A | 5 | true |
| 4 | A | 5 | false |
| 5 | A | 5 | true |
| 6 | B | 5 | false |
+-----+-------+------+---------+
#更新資料
upsert into student.baseInfo (id,name,age,gender) values(1,'A',16,false);
#再檢視更新的資料
select * from student.baseInfo where id=1;
+-----+-------+------+---------+
| ID | NAME | AGE | GENDER |
+-----+-------+------+---------+
| 1 | A | 16 | false |
+-----+-------+------+---------+
#聚合統計排序
select gender,sum(age) as sumAge,count(id) as countID from student.baseInfo group by gender order by countID desc;
+---------+---------+----------+
| GENDER | SUMAGE | COUNTID |
+---------+---------+----------+
| false | 31 | 4 |
| true | 10 | 2 |
+---------+---------+----------+
通過SQuirrel SQL Client訪問HBase中Phoenix Table
1、下載安裝SQuirreL SQL Client
#下載
http://squirrel-sql.sourceforge.net/
#安裝
java -jar squirrel-sql-snapshot-20180226_2207-standard.jar
2、複製phoenix-hbase-client jar到SQuirrel lib目錄
phoenix-4.13.1-HBase-1.1-client.jar
3、新增驅動Dirver
Name:Phoenix
Example URL: jdbc:phoenix:zkNode
Class Name:org.apache.phoenix.jdbc.PhoenixDriver
4、建立連線別名Alias
Name: any name
Driver: Phoenix
URL:jdbc:phoenix:zkNode:2181:/hbase-unsecure
User Name: anything
Password: anything