HBase的SQL驅動---Phoenix
一、Phoenix簡介
Apache Phoenix是HBase的SQL驅動,是構建在Apache HBase之上的一個SQL中間層。Phoenix完全使用Java編寫,程式碼位於GitHub上,並且提供了一個客戶端可嵌入JDBC驅動。Phoenix使得HBase支援通過JDBC的方式進行訪問,並將你的SQL查詢轉成HBase的掃描和相應的動作。Phoenix並不是想HBase那樣用於map-reduce job的,而是通過標準化的語言來訪問HBase資料的。
二、Phoenix和HBase版本的對應關係
Phoenix 2.x —— HBase 0.94.x
Phoenix 3.x —— HBase 0.94.x
Phoenix 4.x —— HBase 0.98.1+
本案例中的HBase使用的版本是0.98.17,因此選用的Phoenix版本是4.8.1
三、Phoenix的安裝
- 將壓縮包上傳到/home/software目錄下,進行解壓
[[email protected] software]# pwd /home/software [[email protected] software]# ll 總用量 198304 -rw-r--r-- 1 root root 203045474 12月 7 14:16 apache-phoenix-4.8.1-HBase-0.98-bin.tar.gz drwxr-xr-x 12 10021 10021 4096 12月 3 16:51 hadoop-2.7.1 drwxr-xr-x 8 root root 4096 12月 4 10:59 hbase drwxr-xr-x 8 uucp 143 4096 3月 15 2017 jdk1.8 drwxr-xr-x 12 1000 1000 4096 12月 3 14:16 zookeeper [ [[email protected] software]# ll 總用量 198308 drwxrwxr-x 4 1000 1000 4096 9月 23 2016 apache-phoenix-4.8.1-HBase-0.98-bin -rw-r--r-- 1 root root 203045474 12月 7 14:16 apache-phoenix-4.8.1-HBase-0.98-bin.tar.gz drwxr-xr-x 12 10021 10021 4096 12月 3 16:51 hadoop-2.7.1 drwxr-xr-x 8 root root 4096 12月 4 10:59 hbase drwxr-xr-x 8 uucp 143 4096 3月 15 2017 jdk1.8 drwxr-xr-x 12 1000 1000 4096 12月 3 14:16 zookeeper [ rm:是否刪除普通檔案 "apache-phoenix-4.8.1-HBase-0.98-bin.tar.gz"?yes [[email protected] software]# ll 總用量 20 drwxrwxr-x 4 1000 1000 4096 9月 23 2016 apache-phoenix-4.8.1-HBase-0.98-bin drwxr-xr-x 12 10021 10021 4096 12月 3 16:51 hadoop-2.7.1 drwxr-xr-x 8 root root 4096 12月 4 10:59 hbase drwxr-xr-x 8 uucp 143 4096 3月 15 2017 jdk1.8 drwxr-xr-x 12 1000 1000 4096 12月 3 14:16 zookeeper [[email protected] software]# mv apache-phoenix-4.8.1-HBase-0.98-bin/ phoenix-4.8.1-HBase-0.98-bin/ [[email protected] software]# ll 總用量 20 drwxr-xr-x 12 10021 10021 4096 12月 3 16:51 hadoop-2.7.1 drwxr-xr-x 8 root root 4096 12月 4 10:59 hbase drwxr-xr-x 8 uucp 143 4096 3月 15 2017 jdk1.8 drwxrwxr-x 4 1000 1000 4096 9月 23 2016 phoenix-4.8.1-HBase-0.98-bin drwxr-xr-x 12 1000 1000 4096 12月 3 14:16 zookeeper [[email protected] software]# |
- 將Phoenix安裝目錄下對應的jar包拷貝到HBase的lib目錄下
[[email protected] phoenix-4.8.1-HBase-0.98-bin]# pwd /home/software/phoenix-4.8.1-HBase-0.98-bin [[email protected] phoenix-4.8.1-HBase-0.98-bin]# ll 總用量 222240 drwxrwxr-x 3 1000 1000 4096 9月 23 2016 bin drwxrwxr-x 3 1000 1000 4096 9月 23 2016 examples -rw-rw-r-- 1 1000 1000 144042 9月 23 2016 LICENSE -rw-rw-r-- 1 1000 1000 10176 9月 23 2016 NOTICE -rw-rw-r-- 1 1000 1000 92615360 9月 23 2016 phoenix-4.8.1-HBase-0.98-client.jar -rw-rw-r-- 1 1000 1000 61409126 9月 23 2016 phoenix-4.8.1-HBase-0.98-hive.jar -rw-rw-r-- 1 1000 1000 6620831 9月 23 2016 phoenix-4.8.1-HBase-0.98-queryserver.jar -rw-rw-r-- 1 1000 1000 24744193 9月 23 2016 phoenix-4.8.1-HBase-0.98-server.jar -rw-rw-r-- 1 1000 1000 27996147 9月 23 2016 phoenix-4.8.1-HBase-0.98-thin-client.jar -rw-rw-r-- 1 1000 1000 3853630 9月 23 2016 phoenix-core-4.8.1-HBase-0.98.jar -rw-rw-r-- 1 1000 1000 2204415 9月 23 2016 phoenix-core-4.8.1-HBase-0.98-sources.jar -rw-rw-r-- 1 1000 1000 1831557 9月 23 2016 phoenix-core-4.8.1-HBase-0.98-tests.jar -rw-rw-r-- 1 1000 1000 34775 9月 23 2016 phoenix-flume-4.8.1-HBase-0.98.jar -rw-rw-r-- 1 1000 1000 23162 9月 23 2016 phoenix-flume-4.8.1-HBase-0.98-sources.jar -rw-rw-r-- 1 1000 1000 23295 9月 23 2016 phoenix-flume-4.8.1-HBase-0.98-tests.jar -rw-rw-r-- 1 1000 1000 118890 9月 23 2016 phoenix-hive-4.8.1-HBase-0.98.jar -rw-rw-r-- 1 1000 1000 79884 9月 23 2016 phoenix-hive-4.8.1-HBase-0.98-sources.jar -rw-rw-r-- 1 1000 1000 40072 9月 23 2016 phoenix-hive-4.8.1-HBase-0.98-tests.jar -rw-rw-r-- 1 1000 1000 156914 9月 23 2016 phoenix-pherf-4.8.1-HBase-0.98.jar -rw-rw-r-- 1 1000 1000 2682120 9月 23 2016 phoenix-pherf-4.8.1-HBase-0.98-minimal.jar -rw-rw-r-- 1 1000 1000 111744 9月 23 2016 phoenix-pherf-4.8.1-HBase-0.98-sources.jar -rw-rw-r-- 1 1000 1000 58648 9月 23 2016 phoenix-pherf-4.8.1-HBase-0.98-tests.jar -rw-rw-r-- 1 1000 1000 41471 9月 23 2016 phoenix-pig-4.8.1-HBase-0.98.jar -rw-rw-r-- 1 1000 1000 27848 9月 23 2016 phoenix-pig-4.8.1-HBase-0.98-sources.jar -rw-rw-r-- 1 1000 1000 43362 9月 23 2016 phoenix-pig-4.8.1-HBase-0.98-tests.jar -rw-rw-r-- 1 1000 1000 22776 9月 23 2016 phoenix-queryserver-4.8.1-HBase-0.98.jar -rw-rw-r-- 1 1000 1000 16532 9月 23 2016 phoenix-queryserver-4.8.1-HBase-0.98-sources.jar -rw-rw-r-- 1 1000 1000 24969 9月 23 2016 phoenix-queryserver-4.8.1-HBase-0.98-tests.jar -rw-rw-r-- 1 1000 1000 16021 9月 23 2016 phoenix-queryserver-client-4.8.1-HBase-0.98.jar -rw-rw-r-- 1 1000 1000 12770 9月 23 2016 phoenix-queryserver-client-4.8.1-HBase-0.98-sources.jar -rw-rw-r-- 1 1000 1000 10333 9月 23 2016 phoenix-queryserver-client-4.8.1-HBase-0.98-tests.jar -rw-rw-r-- 1 1000 1000 80504 9月 23 2016 phoenix-spark-4.8.1-HBase-0.98.jar -rw-rw-r-- 1 1000 1000 23706 9月 23 2016 phoenix-spark-4.8.1-HBase-0.98-sources.jar -rw-rw-r-- 1 1000 1000 96504 9月 23 2016 phoenix-spark-4.8.1-HBase-0.98-tests.jar -rw-rw-r-- 1 1000 1000 16355 9月 23 2016 phoenix-tracing-webapp-4.8.1-HBase-0.98.jar -rw-rw-r-- 1 1000 1000 2275587 9月 23 2016 phoenix-tracing-webapp-4.8.1-HBase-0.98-runnable.jar -rw-rw-r-- 1 1000 1000 11720 9月 23 2016 phoenix-tracing-webapp-4.8.1-HBase-0.98-sources.jar -rw-rw-r-- 1 1000 1000 8068 9月 23 2016 phoenix-tracing-webapp-4.8.1-HBase-0.98-tests.jar -rw-rw-r-- 1 1000 1000 794 9月 23 2016 README [[email protected] phoenix-4.8.1-HBase-0.98-bin]# cp phoenix-4.8.1-HBase-0.98-client.jar phoenix-4.8.1-HBase-0.98-server.jar /home/software/hbase/lib/ |
- 配置環境變數,並使環境變數生效
[[email protected] phoenix-4.8.1-HBase-0.98-bin]# vim /etc/profile |
[[email protected] phoenix-4.8.1-HBase-0.98-bin]# source /etc/profile |
四、啟動
- 啟動Zookeeper(Hadoop01、Hadoop02、Hadoop03)
[[email protected] bin]# pwd /home/software/zookeeper/bin [[email protected] bin]# cd /home/software/zookeeper/bin/ [[email protected] bin]# pwd /home/software/zookeeper/bin [[email protected] bin]# ./zkServer.sh start ZooKeeper JMX enabled by default Using config: /home/software/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [[email protected] bin]# |
- 啟動Hadoop(Hadoop01)
[[email protected] bin]# start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh 18/12/07 15:02:04 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting namenodes on [hadoop01 hadoop02] hadoop02: starting namenode, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-namenode-hadoop02.out hadoop01: starting namenode, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-namenode-hadoop01.out hadoop01: starting datanode, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-datanode-hadoop01.out hadoop02: starting datanode, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-datanode-hadoop02.out hadoop03: starting datanode, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-datanode-hadoop03.out Starting journal nodes [hadoop01 hadoop02 hadoop03] hadoop03: starting journalnode, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-journalnode-hadoop03.out hadoop02: starting journalnode, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-journalnode-hadoop02.out hadoop01: starting journalnode, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-journalnode-hadoop01.out 18/12/07 15:02:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting ZK Failover Controllers on NN hosts [hadoop01 hadoop02] hadoop01: starting zkfc, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-zkfc-hadoop01.out hadoop02: starting zkfc, logging to /home/software/hadoop-2.7.1/logs/hadoop-root-zkfc-hadoop02.out starting yarn daemons starting resourcemanager, logging to /home/software/hadoop-2.7.1/logs/yarn-root-resourcemanager-hadoop01.out hadoop03: starting nodemanager, logging to /home/software/hadoop-2.7.1/logs/yarn-root-nodemanager-hadoop03.out hadoop02: starting nodemanager, logging to /home/software/hadoop-2.7.1/logs/yarn-root-nodemanager-hadoop02.out hadoop01: starting nodemanager, logging to /home/software/hadoop-2.7.1/logs/yarn-root-nodemanager-hadoop01.out [[email protected] bin]# |
- 啟動HBase(Hadoop01)
[[email protected] bin]# pwd /home/software/hbase/bin [[email protected] bin]# ./start-hbase.sh starting master, logging to /home/software/hbase/logs/hbase-root-master-hadoop01.out hadoop01: starting regionserver, logging to /home/software/hbase/bin/../logs/hbase-root-regionserver-hadoop01.out hadoop03: starting regionserver, logging to /home/software/hbase/bin/../logs/hbase-root-regionserver-hadoop03.out hadoop02: starting regionserver, logging to /home/software/hbase/bin/../logs/hbase-root-regionserver-hadoop02.out [[email protected] bin]# |
- 啟動Phoenix(Hadoop01)
[[email protected] bin]# pwd [[email protected] bin]# ./sqlline.py hadoop01,hadoop02,hadoop03:2181 |
至此,Phoenix啟動完成!