Hive实战处理(二十三)hive整合phoenix

时间:2024-01-10 00:59:52 标签:  hbase  hive  hive  hbase  

背景:
业务表使用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,
c4 string,
c5 string,
c6 string,
c7 string
)
STORED BY ‘org.apache.phoenix.hive.PhoenixStorageHandler’ --插件,可以使用Apache Hive命令行访问Phoenix表。
TBLPROPERTIES (
“phoenix.table.name” = “Phoenix表名”, – Phoenix表名
“phoenix.zookeeper.quorum” = “ip1,ip2,ip3”, --指定HBase的ZooKeeper父节点
“phoenix.zookeeper.znode.parent” = “/hbase-unsecure”,
“phoenix.zookeeper.client.port” = “2181”, --指定ZooKeeper端口
“phoenix.rowkeys” = “row_key”,
“phoenix.column.mapping” = “row_key:row_key,c1:c1,c2:c2,c3:c3,c4:c4,c5:c5,c6:c6,c7:c7”,
“phoenix.table.options” = “SALT_BUCKETS=10, DATA_BLOCK_ENCODING=‘PREFIX_TREE’, COMPRESSION =‘SNAPPY’”,
“phoenix.upsert.batch.size” =“1000”);

2)创建external表
Hive只管理表的元数据。在创建external表之前,Phoenix表必须已经存在。

drop table if exists adm.adm_exp_xxx_info_1d_full_daily;
create external table adm.adm_exp_xxx_info_1d_full_daily (
row_key string,
c1 string,
c2 string,
c3 string,
c4 string,
c5 string,
c6 string,
c7 string
)
STORED BY ‘org.apache.phoenix.hive.PhoenixStorageHandler’ --插件,可以使用Apache Hive命令行访问Phoenix表。
TBLPROPERTIES (
“phoenix.table.name” = “Phoenix表名”, – Phoenix表名
“phoenix.zookeeper.quorum” = “ip1,ip2,ip3”, --指定HBase的ZooKeeper父节点
“phoenix.zookeeper.znode.parent” = “/hbase-unsecure”,
“phoenix.zookeeper.client.port” = “2181”, --指定ZooKeeper端口
“phoenix.rowkeys” = “row_key”,
“phoenix.column.mapping” = “row_key:row_key,c1:c1,c2:c2,c3:c3,c4:c4,c5:c5,c6:c6,c7:c7”,
“phoenix.table.options” = “SALT_BUCKETS=10, DATA_BLOCK_ENCODING=‘PREFIX_TREE’, COMPRESSION =‘SNAPPY’”,
“phoenix.upsert.batch.size” =“1000”);

来源:https://blоg.сsdn.nеt/shееp8521/аrtiсlе/dеtаils/135388860

智能推荐

标签:hbase  hive  

标签:hbase  hive  大数据  

数据定义、数据插入、数据查询实验跳过 目

标签:Hive高手之路  大数据  hive  数据仓库  

一、背景 发现一个10.19号的任务下午还没跑完&

标签:hive  hive  hadoop  数据仓库  

 api和sql特

标签:hive  flink  sql  

哈喽,大家好,最近工作中遇到很多日期处理问题,比较头疼&#

标签:hive  hive  hadoop  数据仓库  

一、获取月份第一天/最后一天

标签:hive  大数据  hive  sql  spark  

猜你喜欢

背景HDFS 小文件过多会对hadoop 扩展性以及稳定性造成影响, 因为要在namenode 上存储维护大量元信息.大量的小文件也会导致很差的查询分析性能,因为查询引擎执行查询时需要进行太多次文件的打开/读取/关闭.小文件解决思路通常能想到的方案就是通过Spark API 对文件目录下的小文件进行读取,然后通过Spark的算子repartition操作进行合并小文件,repartition 分区数通过输入文件的总大小和期望输出文件的大小通过预计算而得。总体流程如下:

标签:离线  文件  hive  spark  hdfs  

任务描述 在之前的实训中,我们已经知道了

标签:hive  大数据  hadoop  

继续上节代码,补充了replace_func函数,

标签:sql  数据库  hive  hadoop  

Hive是建立在 Hadoop 上的数据仓库基础构架。可以将SQL查询转换为MapReduce的jo

标签:hive  hadoop  大数据  

一、Hadoop三大发行版本 Hadoop三大发行版本:Apache、Clouder

标签:大数据技术入门到21天通关  大数据  hive  hadoop  数据仓库  hdfs  

目录综述1.严格模式1.1 参数设置1.2 查看参数1.3 严格模式限制内容及对应参数设置2.实际操作2.1 分区表查询时必须指定分区2.2 order by必须指定limit2.3 限制笛卡尔积3.搭配使用3.1 参数3.2 搭配使用案例综述在同样的集群运行环境中,hive调优有两种方式,即参数调优和sql调优。本

标签:模式  系列之  HiveSQL  hive  

SpringBoot+Shiro+mybatis整合1. 使用Springboot版本2.0.4 与shiro的版本   引入springboot和shiro依赖

标签:实战  SpringBoot  Shiro  mybatis  

一、Opencv和PCL 下面是opencv和pcl的特点、区别和联系的详细对比

标签:图像处理  计算机视觉  人工智能  

标签:Hadoop集群  hadoop  hive  

相关问题

相关文章

热门文章

推荐文章

相关标签