CDH6.2.0安装phoenix5.0.0

前言

        因为公司业务需求是能根据表的某列或多列进行查询,所以考虑在HBase的基础上增加二级索引,为了实现此功能,考虑了两种解决方案:协处理器 和phoenix。

        网上文章和教学视频的分析中都说明phoenix 更合适,原因有三:

1、协处理器编程较为麻烦;

2、phoenix非常适合原关系数据库开发人员;

3、phoenix提供了较为强大的优化功能,能提升hbase的存储查询性能;

       公司配备了三台服务器(这里暂且命名为node1、node2、node3),均已安装CDH6.2.0,添加了HBase2.1和Hadoop3.0等服务,大部分的网络教学都是针对Apache Phoenix,我之前也是下载此系列版本来安装,结果错误不断;后来看到一个视频教学中提到,Apache原生的和CDH版的并不兼容,虽然在phoenix.apache.org官网中有CDH版的phoenix下载,但是至今仍是CDH5系列的,与CDH6并不兼容,特别小心!

       另一个糟心的消息是CDH已经不免费了。。。。很多文章中说的下载软件包的网址:archive.cloudera.com/phoenix 已经打不开了,不知道是不是禁用了,不过可以在CSDN上搜一搜 ,有小伙伴已经发布了,我下载了一份,只是没有试装。

这里给大家下载链接:PHOENIX-5.0.0-CDH6.2.0

这里不打算讨论Apache Phoenix的安装,只针对CDH6.2及以上版本安装phoenix5.0.0,下面直接上干货。

安装步骤

在安装之前,要清楚一件事情:

CDH的安装目录,即CDH运行目录是在/opt/cloudera/parcels/CDH-******下;jar包、bin命令、etc配置都在这个里面,大家用root登录看到的/etc、/bin。。。。都是在这个目录下文件的一个复制或者是软连接。建议大家一定要弄清楚CDH目录结构和用户的相关知识,不同的用户名下看到的目录结构是不同的。

一、下载PHOENIX软件包,解压后是其中包含四样东东:

我是先下载到本地,然后再用XFTP实现后续的上传。

二、安装CSD文件

在CDH中添加Phoenix服务之前,必须安装Custom Service Descriptor(CSD)文件。

1、将下载的PHOENIX-1.0.jar放到Master服务器上的/opt/cloudera/csd中(此文件夹在安装CDH时已经创建存在,只是为空)

2、登录ClouderaManager,点“管理”->“设置”,点击“自定义服务描述符”,查看“本地描述符存储库路径”,如图所示:

3、重启Cloudera Manager服务器。

注:上传的文件注意修改权限,否则重启后可能识别不到(我没有出现这种情况,从别人那看到这一条,如果遇见可用以下方法试试)

sudo chown cloudera-scm:cloudera-scm PHOENIX-1.0.jar && sudo chmod 644 PHOENIX-1.0.jar)

三、安装Phoenix parcel

1、将文件放入本地parcel存储库路径下,如图

 

 文件包括:

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

因为安装CDH时,已经存在manifest.json这样一个文件,则将此文件内容追加进原manifest文件中即可,以免影响其他服务,json文件行数较多,特别注意追加语法,应该是将花括号{....}的内容追加到原mainfest文件中;

2、重启Cloudera Management Service,执行systemctl restart cloudera-scm-server

3、再次进入CM,查看parcels,点击“分配”,如图所示:

4、分配完成后,点击"激活",如图所示

四、在Cloudera Manager中添加Phoenix服务(前提是已经安装了HBase服务)

安装完成后,Phoenix将出现在服务列表中,如图所示。

五、配置HBase以用于Phoenix

添加属性,选择“Hbase”->“配置”,搜索“hbase-site.xml 的 HBase 服务高级配置代码段”,单击“以XML格式查看”,并添加以下属性:

 这两条属性的含义是:

  • 将hbase.regionserver.wal.codec定义写入预写日志(“wal”)编码。

  • 设置phoenix.functions.allowUserDefinedFunctions属性启用用户自定义函数(UDF)。

<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property> 
 
<property>
 <name>phoenix.functions.allowUserDefinedFunctions</name>
 <value>true</value>
 <description>enable UDF functions</description>
</property>

 此处特别提醒:很多文章和视频中都说要添加命名空间属性,

 我之前也添加了,但报以下错误:

Phoenix 启动报错: Error: ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate

 如果遇到此问题的伙伴们可以查看下面这篇文章,能够解决此问题:

https://blog.csdn.net/weixin_43530138/article/details/98769710

六、验证Phoenix安装

登录集群主机,进入命令所在目录(/opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/bin)并在命令提示符下运行以下测试:

phoenix-psql /opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/lib/phoenix/examples/WEB_STAT.sql /opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/lib/phoenix/examples/WEB_STAT.csv /opt/cloudera/parcels/PHOENIX-5.0.0-cdh6.2.0.p0.1308267/lib/phoenix/examples/WEB_STAT_QUERIES.sql

显示成功!  

总结

1、安装过程中,最头疼的就是版本问题,首先要清楚原生的Apache Phoenix和CDH版本的Phoenix是不同的,如果Hadoop和HBase都是用的原生Apache,则Phoenix就去官网https://phoenix.apache.org/下载相应版本的进行安装,网上很多文章都强调了版本的问题,要注意!如果Hadoop、HBase等等都是通过CDH来安装的,则需要下载CDH版的Phoenix,虽然https://phoenix.apache.org/也有关于cdh版本的,但都是CDH5系列的,与CDH6并不兼容(亲测),而  https://archive.cloudera.com/phoenix已经无法打开,下载不到软件包,最后只能在网上找资源包,大家可以在我上面的链接中下载,如果是CDH6.2版本以上的听说都可以用,但6.2以下的就不能用这个包了,我也爱莫能助了;

2、要清楚CDH的目录结构和用户的概念,不管是安装Apache Phoenix还是CDH版的Phoenix,不清楚这些的话,都不知道下载的文件应该放在哪,Jar包应该放在哪,生出很多错误;

3、其他安装步骤就按照以上按部就班的做应该没有什么问题,但各人的机器不同,可能在hadoop中隐藏的一些问题会干扰安装的进行,只能去网上查找,这里特别小心广为流传的修改命名空间的问题,在我这里行不通,还不知道原因。

后续将继续学习Phoenix的编程,会继续做些笔记以供个人回溯备查,也为了和大家共同学习探讨~ 有疑问的小伙伴们欢迎留言

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值