由于目前公司大量的数据存储在HBase中,各个业务线需要对HBase进行即时查询,但是又不方便实现自己的基于HBase Client的API的数据访问实现,他们希望能够像Hive对HDFS中的数据进行ETL一样,可以对HBase中的数据进行SQL操作
我们最初考虑的方式是Hive On HBase,这样主要思想是将数据存储在HBase中,设置一张Hive表,关联HBae中的数据,具体原理如
http://www.blogjava.net/ivanwan/archive/2011/01/10/342685.html
但是现在我们通过
http://www.infoq.com/cn/news/2013/02/Phoenix-HBase-SQL
http://blog.csdn.net/colorant/article/details/8645081
发觉,HBase Phoenix实际上可能更快,所以我们决定选型HBase Phoenix,并在CDH5.0.2中进行安装,实际安装过程中非常简单
通过执行
#whereis hbase hbase: /usr/bin/hbase /etc/hbase /usr/lib/hbase
将phoenix-4.2.0-server.jar 拷贝到每个节点的/usr/lib/hbase/lib中,重启HBase集群
并选择一个机器作为客户端,加入phoenix-4.2.0-client.jar,设置环境变量
PHOENIX_HOME=/usr/local/phoenix-4.2.0-bin/ CLASSPATH=.$PHOENIX_HOME/phoenix-4.2.0-client.jar
然后在客户端启动
./sqlline.py locahost即可
详情参见
http://phoenix.apache.org/download.html
时间: 2024-11-07 14:35:03