Phoenix集成cdh操作文档
- 说明
CDH除了能够管理自生所提供的一些大数据相关服务外,还允许将第三方服务添加到CDH集群(托管在CDH上)。你需要做的就是按照一定的规则流程制作相关程序包,最后发布到CDH上。虽然过程并不困难,但是手动操作尤其是一些关键配置容易出错,往往导致最终服务无法正常在CDH上安装运行。
本文就是指导大家如何打包自己的服务,发布到CDH上,并且由CDH控制服务的运行、监控服务的基本运行状态。
- 相关配置
软件名 | 版本 | 备注 |
Cloudera-Manager | 6.2.0 | |
Phoenix | 5.0.0 | /opt/cloudera/parcels/ |
CentOS | 7 |
- 安装Phoenix
3.1 下载Phoenix的parcel包
3.2 制作软连接
ln -s /app/phoenix5.0 /var/www/html/phoenix
3.3 拷贝csd文件
将csd文件拷贝到CM安装节点的/opt/cloudera/csd目录下(如下图)
3.4 CM页面上添加Phoenix Parcel地址
点击配置,添加Phoenix Parcel地址,然后保存更改
点击下载——>分配——>激活
激活完毕后,需要重启hbase服务,部署客户端配置。至此安装集成完毕。
- 验证并简单使用Phoenix
4.1 启动Phoenix客户端
使用命令:phoenix-sqlline ZK:2181 (zk地址,填一个即可)
4.2 验证phoenix表操作
建立测试表格:
create table hbase_test ( s1 varchar not null primary key, s2 varchar, s3 varchar, s4 varchar, s5 varchar, s6 varchar, s7 varchar, s8 varchar, s9 varchar, s10 varchar, s11 varchar );
创建表格,通过!tables查看是否生成表格。
插入一条数据,然后进行查询。注意:Phoenix中没有insert语法,用upsert代替。
upsert into hbase_test values('1','testname','testname1','testname2','testname3','testname4','testname5','testname6','testname7','testname8','testname9');
upsert into hbase_test values('2','testname','testname1','testname2','testname3','testname4','testname5','testname6','testname7','testname8','testname9');
upsert into hbase_test values('3','testname','testname1','testname2','testname3','testname4','testname5','testname6','testname7','testname8','testname9');
按条件查询表格数据:
select * from hbase_test where s1='2';
进入hbase,查看并验证phoenix表格
在phoenix中执行删除,查看hbase验证。
delete from hbase_test where s1='1';
4.3 验证Phoenix bulkload
1.准备一个测试使用的CSV文件用来导入phoenix表中。
本地执行命令也可以导入CSV文件 IP为CSV所在机器(CSV文件必须和表格名称一致,否者会报错) phoenix-psql 10.18.34.45 /root/barry_test.csv 也可以加入建表语句: phoenix-psql 10.18.34.45 /root/barry_test.sql /root/barry_test.csv |
[root@xxxxxxx ~]# cat test.csv
340111200507061443,鱼言思,0,遂宁,国家机关,13004386766,15900042793,广州银行1,市场三街65号-10-8,0,1
320404198104281395,暨梅爱,1,临沧,服务性工作人员,13707243562,15004903315,广州银行1,太平角六街145号-9-5,0,3
371326195008072277,人才奇,1,黔西南,办事人员和有关人员,13005470170,13401784500,广州银行1,金湖大厦137号-5-5,1,0
621227199610189727,谷岚,0,文山,党群组织,13908308771,13205463874,广州银行1,仰口街21号-6-2,1,3
533324200712132678,聂健飞,1,辽阳,不便分类的其他劳动者,15707542939,15304228690,广州银行1,郭口东街93号-9-3,0,2
632622196202166031,梁子伯,1,宝鸡,国家机关,13404591160,13503123724,广州银行1,逍遥一街35号-14-8,1,4
440883197110032846,黎泽庆,0,宝鸡,服务性工作人员,13802303663,13304292508,广州银行1,南平广场113号-7-8,1,4
341500196506180162,暨芸贞,0,黔西南,办事人员和有关人员,13607672019,13200965831,广州银行1,莱芜二路117号-18-3,1,4
511524198907202926,滕眉,0,南阳,国家机关,15100215934,13406201558,广州银行1,江西支街52号-10-1,0,3
420205198201217829,陶秀,0,泸州,商业工作人员,13904973527,15602017043,广州银行1,城武支大厦126号-18-2,1,0
- 将准备好的csv文件put到HDFS,然后通过Phoenix自带的bulkload工具将准备好的csv文件批量导入到Phoenix的表中。
使用命令:
HADOOP_CLASSPATH=/opt/cloudera/parcels/CDH/lib/hbase/hbase-protocol-2.1.0-cdh6.2.0.jar:/opt/cloudera/parcels/CDH/lib/hbase/conf sudo -u yarn hadoop jar /opt/cloudera/parcels/PHOENIX/lib/phoenix/phoenix-5.0.0-cdh6.2.0-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -t hbase_test -i /hbase/fayson1/hbasetest.csv -z dtla1apps11,dtla1apps12,dtla1apps13:2181
执行完毕后,查询phoenix表格验证。
总结
1.使用Cloudera提供的Phoenix Parcel,可以很方便的安装Phoenix,而且Cloudera会提供正式的官方支持。
2.使用Phoenix可以对HBase进行建表,删除,更新等操作,都是以大家熟悉的SQL方式操作。
3.Phoenix提供了批量导入/导出数据的方式。批量导入只支持csv格式,分隔符为逗号。
4.Phoenix中的SQL操作,可以马上同步到HBase,通过hbase shell检查都成功
5.Phoenix提供的SQL语法较为简陋,没有insert/update,一律用upsert代替。
6.使用upsert插入数据时,只能一条一条插入,没法将全部字段值写到一个“values”后面。