如何在CDH5.14.2中安装Phoenix4.14.0

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

Fayson的github: https://github.com/fayson/cdhproject

提示:代码块部分可以左右滑动查看噢

1.文档编写目的


Fayson在前面的文章《Cloudera Labs中的Phoenix》,《如何在CDH中使用Phoenix》和《如何使用Phoenix在CDH的HBase中创建二级索引》中介绍了Cloudera Labs中的Phoenix,如何在CDH5.11.2中安装和使用Phoenix4.7,以及如何使用Phoenix4.7+CDH5.14.2建立HBase的二级索引。

我们知道Phoenix是Cloudera实验室的项目,并不提供官方支持,CDH的安装Parcel包并不默认打包Phoenix。而Cloudera实验室在2016-06-24基于CDH5.7发布Phoenix4.7后,至今再未更新Phoenix版本。虽然在Fayson在《如何使用Phoenix在CDH的HBase中创建二级索引》文章中,在CDH5.14.2也使用Phoenix4.7版本没发现问题。但Phoenix作为Apache的一个顶级项目,其实一直在持续更新的,版本更新迭代挺快,最新的是基于HBase2.0的Phoenix5.0.0-alpha。

所以如果我们想在CDH上使用新的Phoenix,去玩玩一些新的功能,该怎么办呢。其实在Phoenix每次发布的版本,在官网的下载页面都可以找到与最新的CDH版本相对应的Parcel包的。在Phoenix官方,目前最新的版本为Apache Phoenix4.14.0和CDH5.14.2,如下所示:

http://phoenix.apache.org/download.html

(可左右滑动)

本文Fayson主要介绍如何在CDH5.14.2中使用Parcel安装Phoenix4.14.0.

  • 内容概述:

1.下载与安装Apache Phoenix4.14.0

2.启用Kafka的Sentry赋权

3.Kafka的赋权测试

4.总结

  • 测试环境:

1.CM5.14.3/CDH5.14.2

2.Phoenix4.14.0

3.操作系统版本为Redhat7.4

4.采用root用户进行操作

5.集群未启用Kerberos

2.下载与安装Apache Phoenix4.14.0


1.最新的Phoenix4.14.0对应CDH的Parcel有好几个版本,请确保选择与你的CDH和OS版本对应的Parcel包,Fayson的环境是CDH5.14.2+Redhat7.4,对应Phoenix4.14.0的Parcel包下载地址为:

http://www.apache.org/dist/phoenix/apache-phoenix-4.14.0-cdh5.14.2/parcels/APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3-el7.parcel
http://www.apache.org/dist/phoenix/apache-phoenix-4.14.0-cdh5.14.2/parcels/APACHE_PHOENIX-4.14.0-cdh5.14.2.p0.3-el7.parcel.asc
http://www.apache.org/dist/phoenix/apache-phoenix-4.14.0-cdh5.14.2/parcels/manifest.json

(可左右滑动)

2.将Phoenix4.14的安装包发布到http服务

[root@ip-172-31-6-83 ~]# mv phoenix4.14/ /var/www/html
[root@ip-172-31-6-83 ~]# systemctl start httpd

(可左右滑动)

3.在Cloudera Manger中配置Phoenix4.14.0的Parcel地址,

保存更改

4.然后下载->分配->激活

5.回到主页发现HBase服务要部署客户端配置并重启。

按要求重启服务,过程略。

3.Phoenix4.14的基本操作


1.连接到Phoenix的终端,在Phoenix中建表hbase_test

cd /opt/cloudera/parcels/APACHE_PHOENIX/bin

./phoenix-sqlline.py ip-172-31-6-83.ap-southeast-1.compute.internal:2181:/hbase 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
);

(可左右滑动)

2.插入一条数据,然后进行查询。

upsert into hbase_test values('1','testname','testname1','testname2','testname3','testname4','testname5','testname6','testname7','testname8','testname9');

select * from hbase_test;

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';

(可左右滑动)

3.在hbase shell中进行检查

可以发现之前通过Phoenix创建的hbase_test表存在,并且插入的3条数据也显示正常。

4.Phoenix4.14的bulkload


1.准备一个测试csv文件用来导入Phoenix的表中,Fayson这里准备一个1.2GB,995W行,11个字段的数据文件。

[root@ip-172-31-6-83 generatedata]# cat hbase_data.csv | wc -l
9950000
[root@ip-172-31-6-83 generatedata]# du -sh hbase_data.csv
1.2G    hbase_data.csv
[root@ip-172-31-6-83 generatedata]# head hbase_data.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

(可左右滑动)

2.将准备好的csv文件put到HDFS,然后通过Phoenix自带的bulkload工具将准备好的csv文件批量导入到Phoenix的表中。

[root@ip-172-31-6-83 generatedata]# hadoop fs -mkdir /fayson 
[root@ip-172-31-6-83 generatedata]# hadoop fs -put hbase_data.csv /fayson
[root@ip-172-31-6-83 generatedata]#

(可左右滑动)

[root@ip-172-31-6-83 ~]# HADOOP_CLASSPATH=/opt/cloudera/parcels/CDH/lib/hbase/hbase-protocol-1.2.0-cdh5.14.2.jar:/opt/cloudera/parcels/CDH/lib/hbase/conf hadoop jar /opt/cloudera/parcels/APACHE_PHOENIX/lib/phoenix/phoenix-4.14.0-cdh5.14.2-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -t hbase_test -i /fayson/hbase_data.csv

(可左右滑动)

3.在Phoenix和hbase shell中分别查询确认数据入库成功。

select * from HBASE_TEST limit 10;

scan 'HBASE_TEST',{LIMIT => 1}

(可左右滑动)

5.Phoenix4.14的二级索引测试


1.按照如下语句建立覆盖索引

CREATE INDEX index1_hbase_test ON hbase_test(s6) INCLUDE(s2)

(可左右滑动)

提示要对HBase进行一些配置才能执行该语句。

2.将以下配置增加到hbase-site.xml,通过Cloudera Manager搜索HBase服务的“hbase-site.xml 的 HBase 服务高级配置代码段(安全阀)”。

<property>
  <name>hbase.regionserver.wal.codec</name>
  <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>

(可左右滑动)

保存更改,然后重启HBase。

3.再次执行建立覆盖索引的语句

CREATE INDEX index1_hbase_test ON hbase_test(s6) INCLUDE(s2);

(可左右滑动)

覆盖索引建立成功

4.执行查询语句测试索引性能。

select s6 from hbase_test where s6='13505503576';
select s2 from hbase_test where s6='13505503576';

(可左右滑动)

发现都是毫秒级返回,覆盖索引建立成功并生效。

5.建立本地索引

create local index index2_hbase_test on hbase_test (s7);

(可左右滑动)

6.在查询项中不包含索引字段的条件下,一样查询比较快速。

select s2 from hbase_test where s7='13500591348';
select * from hbase_test where s7='13500591348';

(可左右滑动)

可以发现这2个查询语句返回时间都在毫秒级,而如果不建立索引,查询时间为35S以上。

6.总结


1.Apache Phoenix最新的4.14.0可以通过Parce方式比较方便的安装在最新的CDH5.14.2,基本SQL操作,bulkload以及二级索引功能均测试成功。

2.虽然Cloudera在Phoenix4.7.0以后,没有官方再推出与新版的Phoenix集成的Parcel包。但是Apache Phoenix一直保持跟随CDH的步伐,从Apache Phoenix主页可以看到CDH5.11/5.12/5.13/5.14的各个OS的Parcel包均有下载。

参考:

http://phoenix.apache.org/download.html

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

原文发布于微信公众号 - Hadoop实操(gh_c4c535955d0f)

原文发表时间:2018-06-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SAP最佳业务实践

SAP最佳业务实践:MM–交货与库存调拨(134)-1业务概览

用途 由 MRP自动或由采购员手动将请求的物料从一个工厂转储到另一个工厂(在同一公司代码)。 优点 提供工厂的已订购物料库存和在途库存的透明视图 有效处理...

4226
来自专栏Android源码框架分析

Android进程保活-自“裁”或者耍流氓

本篇文章是后台杀死系列的最后一篇,主要探讨一下进程的保活,Android本身设计的时候是非常善良的,它希望进程在不可见或者其他一些场景下APP要懂得主动释放,可...

6011
来自专栏加米谷大数据

Impala介绍

Impala 是一个高性能分析数据库,可针对存储在 Apache Hadoop 集群中的 PB 级数据进行闪电般快速的分布式 SQL 查询。Impala 还是一...

2513
来自专栏一只程序汪的自我修养

半个小时教你写一个装(bi)逼(she)之地图搜租房

首先需要一个Python3环境,怎么准备我就不多说了,实在不会的出门右转看一下廖雪峰老师的博客.

43010
来自专栏Hadoop实操

Hortonworks正式发布HDP3.0

7月13日,Hortonworks在其官网宣布发布HDP3.0,包括Ambari2.7和SmartSense1.5。包括下载仓库与配套文档都正式GA。

7773
来自专栏SDNLAB

OpenDaylight控制器MD-SAL解析

一.前言 OpenDaylight开源控制器是业界当前比较流行的SDN控制器,其受到业界关注的主要原因是其具有良好的适应性,可适配不同的南向接口以控制现网各种各...

53610
来自专栏Jerry的SAP技术分享

SAP标准培训课程C4C10学习笔记(四)第四单元

FAQs for Installed Base Management in SAP Cloud for Service

1185
来自专栏智能计算时代

「大数据系列」Ignite:基于内存分布式数据库和缓存和处理平台

3062
来自专栏Jerry的SAP技术分享

SAP CRM和C4C数据同步的两种方式概述:SAP PI和HCI

SAP Cloud for Customer(C4C)和SAP其他传统产品进行数据同步的方式,如下图所示,可以使用SAP Netweaver Process I...

1092
来自专栏Jerry的SAP技术分享

那些年我用过的SAP IDE

而我在SAP做的所有开发都用的是IDE而不是text editor,看来我也免不了处于鄙视链末端的结局了。

5994

扫码关注云+社区

领取腾讯云代金券