HBase的一个查询工具 HBase是一个NoSQL数据库, 可存储大量非关系型数据。 hbase的查询方式
- hbase shell
- java api
HBase虽然是一个数据库,但是它的查询语句非常不好用,如果能够像MySQL那样使用sql查询就好了。 现在可用的工具很多
- Hive,Tez,Impala,Shark/Spark,Phoenix等
今天主要介绍phoenix Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编 排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器 与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万 级别的行数来说,其性能量级是秒 phoenix,操作的表及数据,存储在hbase上。phoenix只是需要和Hbase进行表关联起来。然后再用工具进行一些读或写操作。
其实,可以把Phoenix只看成一种代替HBase的语法的一个工具。虽然可以用java可以用jdbc来连接phoenix,然后操作HBase,但是在生产环境中,不可以用在OLTP中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAT中,再将结果返回存储下来。
2、phoenix安装 2.1、下载phoenixphoenix与HBase版本对应关系
- phoenix 2.x - HBase 0.94.x
- phoenix 3.x - HBase 0.94.x
- phenix 4.x - HBase 0.98.1+
注意phonenix和hbase的版本关系:
解压缩
cd /opt/
tar -zxf phoenix-4.5.2-HBase-1.1-bin.tar.gz
2.2、拷贝phoenix目录下的phoenix-core-4.5.2-HBase-1.1.jar到hbase集群的各个节点的{HBASE_HOME}/lib下
注意:是phoenix-core-version-HBase-xx.jar,拷贝到hbase集群的各个节点的HBase的lib目录下。如果lib下有旧的jar, 要将原来的删掉。
拷贝:
cd /usr/local/hbase-1.1.3/bin
stop-hbase.sh
start-hbase.sh
2.4、在phoenix的bin目录下执行sqlline.py ip:2181
这里的TEST是zookeeper集群的节点的hostname,也可以用ip,端口是2181,端口也可以省略
cd /opt/phoenix-4.5.2-HBase-1.1-bin/bin
./sqlline.py TEST:2181
!tables
查询如下: