背景:
业务表使用hbase存储,使用hive整合phoenix,使用sql语句进行数据查询
(如果可以的话使用网关API对外提供服务)统一接口调用,查询上线比较高效。
1、hive整合phoenix的原理
Hive支持使用HDFS之外的存储系统作为底层存储系统,其中官方明确支持HBase,Kudu,Druid和JDBC(MySQL等)。
Hive提供了相应的接口 StorageHandlers,用以实现和其他存储系统的整合。
Phoenix实现了相应的接口,可以使用Phoenix作为Hive的底层存储系统,在Hive中操作Phoenix表,并和Hive本地表进行互操作。
2、准备phoenix-hive连接器
在运行有Hive服务的所有集群节点,创建一个Hive可读的目录。例如:创建目录 /opt/hive/phoenix-hive ,复制 /opt/cloudera/parcels/PHOENIX/lib/phoenix/phoenix-5.0.0-cdh6.2.0-hive.jar 到该目录下。
3、配置Hive
编辑配置 Hive 辅助 JAR 目录 ,hive.aux.jars.path= /opt/hive/phoenix-hive
编辑配置 hive-env.sh 的 Hive 服务高级配置代码段(安全阀),添加属性:
hive.aux.jars.path=/opt/hive/phoenix-hive
4、重启 Hive
5、建表
Hive有 managed vs external 两种表,在使用Phoenix作为底层存储时,概念不变。
1)创建managed表
Hive完全管理表和数据。
drop table if exists adm.adm_exp_xxx_info_1d_full_daily;
create table adm.adm_exp_xxx_info_1d_full_daily (
row_key string,
c1 string,
c2 string,
c3 string,

本文介绍了如何将Hive与Phoenix集成,通过HiveStorageHandlers接口实现对Phoenix表的操作,包括创建managed和external表,以及配置步骤。重点在于Hive配置和Phoenix表的创建过程。
最低0.47元/天 解锁文章
838

被折叠的 条评论
为什么被折叠?



