1. 程式人生 > >Phoenix安裝與兩種方式使用

Phoenix安裝與兩種方式使用

簡介

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

squirrel_phoenix.png

4、建立連線別名Alias

Name: any name
Driver: Phoenix
URL:jdbc:phoenix:zkNode:2181:/hbase-unsecure
User Name: anything
Password: anything

squirrel_phoenix_alias.png

5、檢視phoenix表內容

squirrel_phoenix_table_content.png

6、Sql分組聚合查詢

squirrel_phoenix_table_sql_agg2.png