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目录下,进行解压
[root@hadoop01 software]# pwd
/home/software
[root@hadoop01 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
[root@hadoop01 software]# tar -xf apache-phoenix-4.8.1-HBase-0.98-bin.tar.gz
[root@hadoop01 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
[root@hadoop01 software]# rm apache-phoenix-4.8.1-HBase-0.98-bin.tar.gz
rm:是否删除普通文件 "apache-phoenix-4.8.1-HBase-0.98-bin.tar.gz"?yes
[root@hadoop01 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
[root@hadoop01 software]# mv apache-phoenix-4.8.1-HBase-0.98-bin/ phoenix-4.8.1-HBase-0.98-bin/
[root@hadoop01 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
[root@hadoop01 software]#
  • 将Phoenix安装目录下对应的jar包拷贝到HBase的lib目录下

[root@hadoop01 phoenix-4.8.1-HBase-0.98-bin]# pwd
/home/software/phoenix-4.8.1-HBase-0.98-bin
[root@hadoop01 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
[root@hadoop01 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/
  • 配置环境变量,并使环境变量生效
[root@hadoop01 phoenix-4.8.1-HBase-0.98-bin]# vim /etc/profile

[root@hadoop01 phoenix-4.8.1-HBase-0.98-bin]# source /etc/profile

四、启动

  • 启动Zookeeper(Hadoop01、Hadoop02、Hadoop03)
[root@hadoop01 bin]# pwd
/home/software/zookeeper/bin
[root@hadoop01 bin]# cd /home/software/zookeeper/bin/
[root@hadoop01 bin]# pwd
/home/software/zookeeper/bin
[root@hadoop01 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/software/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@hadoop01 bin]#
  • 启动Hadoop(Hadoop01)
[root@hadoop01 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
[root@hadoop01 bin]#
  • 启动HBase(Hadoop01)
[root@hadoop01 bin]# pwd
/home/software/hbase/bin
[root@hadoop01 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
[root@hadoop01 bin]#
  • 启动Phoenix(Hadoop01)

[root@hadoop01 bin]# pwd
/home/software/phoenix-4.8.1-HBase-0.98-bin/bin
[root@hadoop01 bin]# ll
总用量 144
drwxrwxr-x 4 1000 1000  4096 9月  23 2016 config
-rw-rw-r-- 1 1000 1000 32440 9月  23 2016 daemon.py
-rwxrwxr-x 1 1000 1000  1881 9月  23 2016 end2endTest.py
-rw-rw-r-- 1 1000 1000  1621 9月  23 2016 hadoop-metrics2-hbase.properties
-rw-rw-r-- 1 1000 1000  3056 9月  23 2016 hadoop-metrics2-phoenix.properties
-rw-rw-r-- 1 1000 1000  1084 9月  23 2016 hbase-site.xml
-rw-rw-r-- 1 1000 1000  2583 9月  23 2016 log4j.properties
-rwxrwxr-x 1 1000 1000  5120 9月  23 2016 performance.py
-rwxrwxr-x 1 1000 1000  3249 9月  23 2016 pherf-cluster.py
-rwxrwxr-x 1 1000 1000  2729 9月  23 2016 pherf-standalone.py
-rwxrwxr-x 1 1000 1000  2116 9月  23 2016 phoenix_sandbox.py
-rwxrwxr-x 1 1000 1000  9354 9月  23 2016 phoenix_utils.py
-rwxrwxr-x 1 1000 1000  2739 9月  23 2016 psql.py
-rwxrwxr-x 1 1000 1000  7746 9月  23 2016 queryserver.py
-rw-rw-r-- 1 1000 1000  1820 9月  23 2016 readme.txt
-rw-rw-r-- 1 1000 1000  1687 9月  23 2016 sandbox-log4j.properties
-rwxrwxr-x 1 1000 1000  4315 9月  23 2016 sqlline.py
-rwxrwxr-x 1 1000 1000  5426 9月  23 2016 sqlline-thin.py
-rwxrwxr-x 1 1000 1000  6895 9月  23 2016 tephra
-rw-rw-r-- 1 1000 1000  2037 9月  23 2016 tephra-env.sh
-rwxrwxr-x 1 1000 1000  6884 9月  23 2016 traceserver.py

扫描二维码关注公众号,回复: 4639002 查看本文章

[root@hadoop01 bin]# ./sqlline.py hadoop01,hadoop02,hadoop03:2181
Setting property: [incremental, false]
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix:hadoop01,hadoop02,hadoop03:2181 none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:hadoop01,hadoop02,hadoop03:2181
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/software/phoenix-4.8.1-HBase-0.98-bin/phoenix-4.8.1-HBase-0.98-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/software/hadoop-2.7.1/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
18/12/07 15:10:02 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Connected to: Phoenix (version 4.8)
Driver: PhoenixEmbeddedDriver (version 4.8)
Autocommit status: true
Transaction isolation: TRANSACTION_READ_COMMITTED
Building list of tables and columns for tab-completion (set fastconnect to true to skip)...
86/86 (100%) Done
Done
sqlline version 1.1.9
0: jdbc:phoenix:hadoop01,hadoop02,hadoop03:21>

至此,Phoenix启动完成!

猜你喜欢

转载自blog.csdn.net/Johnson8702/article/details/84873208