CDH集成Phoenix

最近刚开始操作HBase,HBase官方提供了语言访问的API,但是公司业务里有需要进行执行SQL的操作。

所以API的方式不能满足了,故采用了嫁接Phoenix的方式来进行操作。

这里记录一下CDH安装自定义Parcel-Phoenix的过程。

1 下载Parcel包

由于Cloudera官网关闭了Cloudera-Phoenix的下载,所以这里只能自己从网上去找资源,我们CDH集群用的是6.3.2,所以采用跟下面这个包(是我们公司大佬给我发的),它支持CDH6.2及其以上版本

1
2
3
链接:https://pan.baidu.com/s/1pLGklj0AUG84iDHMshIz6g 
提取码:6666
--来自百度网盘超级会员V4的分享

2 本地Parcel包安装

2.1 安装并启动Apache http

安装Apache http

1
yum install -y httpd

启动Apache http

1
systemctl start httpd

设置自启动Apache http

1
systemctl enable httpd

2.2 上传Parcel包

2.2.1 初始化文件夹

1
2
3
cd  /var/www/html
mkdir -p phoenix/PHOENIX-5.0.0-cdh6.2.0/parcels/
cd /var/www/html/phoenix/PHOENIX-5.0.0-cdh6.2.0/parcels

2.2.2 上传包

将下面三个文件一起上传 PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel,PHOENIX-5.0.0-cdh6.2.0.p0.1308267-el7.parcel.sha,manifest.json

2.2.3 检验是否成功

访问http://你的服务器IP/phoenix/PHOENIX-5.0.0-cdh6.2.0/parcels/,看是否如下。

3 CDH添加Phoenix

弄好之后,应该如下图,出现了一个Phoenix Parcel的选项,后面按钮应该是下载->分配->激活,挨个点一下就可以。

注意:下载的时候,有可能会出现没有权限的问题,我直接给这个parcel777了,然后就好了,没所谓。

4 HBase配置phoenix开启命名空间和二级索引

1
2
3
4
5
6
7
8
9
10
11
12
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>phoenix.schema.isNamespaceMappingEnabled</name>
<value>true</value>
</property>

上面最后一个配置是我后面加的,下面图里没截,后续我发现不开这个的话,外部JDBC没法访问

然后又发现配置了这个还是没法通过JDBC访问,心态小炸,请谷大哥出马后得出下面解决方案。

需要把Hbase的配置文件hbase-site.xml复制到项目的resource目录下,就可以了

hbase配置文件目录/etc/hbase/conf/hbase-site.xml

5 重启HBase

这时候会提示HBase有过期的配置,重启一下就好了。

6 审判时刻

1
2
cd /opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/bin/
./phoenix-sqlline 127.0.0.1:2181

下图这样表示成功

7 躺板板

红伞伞白杆杆,吃完一起躺板板

躺板板埋山山,亲朋都来吃饭饭

饭饭里有红伞伞,吃完全村埋山山,来年长满红伞伞

联系博主,加入【羊山丨交流社区】

联系博主


本博客所有文章除特别声明外,均为原创。版权归博主小马所有。任何团体、机构、媒体、网站、公众号及个人不得转载。如需转载,请联系博主(关于页面)。如其他团体、机构、媒体、网站、博客或个人未经博主允许擅自转载使用,请自负版权等法律责任!