hadoop2.2.0 和 hbase0.94.12 平台使用phoenix

来源:互联网 发布:大数据 风险管理 编辑:程序博客网 时间:2024/04/28 07:20

phoenix使hbase的数据可以通过sql语句进行操作,提供查询对话框和类jdbc的java中间件,非常方便。

phoenix 的wiki:https://github.com/forcedotcom/phoenix/wiki

phoenix的github:https://github.com/forcedotcom/phoenix

目前,phoenix不支持hbase0.96版本,推荐版本是hbase0.94.12版本。但是,估计到2014年的二月份的中旬会发布支持hbase0.96的port-0.96版本,可以关注一下。

https://github.com/forcedotcom/phoenix/issues/349

所以,目前只能使用0.94版的hbase进行测试一下。

我们使用的hadoop是2.2.0版本的,直接使用从apache下载的hbase0.94版本不支持hadoop2.2.0

所以,需要自己重新编译一下。源码从svn上下载,svn上有各种版本,我们就用phoenix推荐的版本吧。

svn co http://svn.apache.org/repos/asf/hbase/tags/0.94.12/ hbase-0.94.12
编译源码,支持hadoop2.0版本:

mvn package -DskipTests -Dhadoop.profile=2.0
编译完成,部署hbase:

1、解压hbase-0.94.12.tar.gz,设置HBASE_HOME

2、将${HBASE_HOME}/lib 的hadoop-*.jar 删除,将$HADOOP_HOME/share/hadoop 下的jar包拷贝到$HBASE_HOME/lib 目录下。否则,会报下面的错误:

java.io.IOException: Failed on local exception: com.google.protobuf.InvalidProtocolBufferException: Message missing required fields:

3、将${HBASE_HOME}/lib/protobuf-java-2.4.0a.jar 删除,否则报下面的错误:

java.lang.VerifyError: class org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$AppendRequestProto overrides final method getUnknownFields.()Lcom/google/protobuf/UnknownFieldSet;

4、将$HADOOP_HOME/etc/hadoop/ 下的core-site.xml 和 hdfs-site.xml文件拷贝到$HBASE_HOME/conf 目录下

5、解压phoenix-2.2.1-install.tar,将phoenix-2.2.1.jar拷贝到所有regionserver的$HBASE_HOME/lib目录下,将$HBASE_HOME/conf 文件拷贝到phoenix下。

至此,整个环境部署完毕,测试一下:

sqlline.sh localhost
如果出现下面提示,说明成功连接到hbase:

2013-12-26 15:40:14,229 INFO  [main-EventThread] zookeeper.ClientCnxn: EventThread shut down36/36 (100%) Done

开始 sql on hbase

sql语法:http://forcedotcom.github.io/phoenix/





0 0
原创粉丝点击