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

背景:
业务表使用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”);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/605632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图灵日记之java奇妙历险记--抽象类和接口

目录 抽象类概念抽象类语法 接口概念规则使用特性实现多个接口接口的继承接口使用实例Clonable接口和深拷贝抽象类和接口的区别 Object类 抽象类 概念 在面向对象的概念中,所有对象都是通过类来描述的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够…

SD-WAN:提升连锁零售企业异地组网稳定性

连锁零售企业往往拥有众多分布在不同地区的分支机构和零售店,为保证企业高效运转,各地区之间的网络连接必须稳定可靠。但基于各地网络基础设施的不同和网络延迟、带宽等限制,异地组网往往并不稳定。在这背景下,SD-WAN成为连锁零售…

第6章-用户标签体系与用户画像

目录 标签体系 标签分类 业务指标 OSM模型 北极星指标 北极星指标拆解</

拼多多详情API开启运营比价新纪元

随着互联网的快速发展&#xff0c;电商行业正在迅速崛起&#xff0c;拼多多作为一家新兴的电商平台&#xff0c;凭借其独特的营销策略和创新的商业模式&#xff0c;成为了电商行业的一匹黑马。在拼多多的成功背后&#xff0c;其详情API接口营销起到了至关重要的作用。本文将详细…

UV贴图和展开初学者指南

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 介绍 这正是本文的主题——UV贴图——登上舞台的时候。大多数 3D 建…

在win10和Linux上配置SSH 无密码登录

文章目录 一、用途二、在本地机器上使用ssh-keygen产生公钥私钥对1&#xff09;在Linux (或macOS) 上产生SSH公私钥的方法2&#xff09;在win10上产生SSH公私钥的方法a&#xff09;检查windows 本地是否安装有sshb&#xff09;在本地生成SSH密钥对&#xff08;公钥和私钥&#…

基于Java SSM框架实现时间管理系统项目【项目源码+论文说明】

基于java的SSM框架实现时间管理系统演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于时间管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了时间管理…

SQL Server从0到1——提权

xp_cmdshell提权 xp_cmdshell在前面写webshell已经讲解过了&#xff0c;在这里不在重复 sp_oacreate提权 启用&#xff1a; EXEC sp_configure show advanced options, 1; RECONFIGURE WITH OVERRIDE; EXEC sp_configure Ole Automation Procedures, 1; RECONFIGURE WITH OV…

【设计模式之美】SOLID 原则之一:怎么才算是单一原则、如何取舍单一原则

文章目录 一. 如何判断类的职责是否足够单一&#xff1f;二. 类的职责是否设计得越单一越好&#xff1f; 开始学习一些经典的设计原则&#xff0c;其中包括&#xff0c;SOLID、KISS、YAGNI、DRY、LOD 等。 本文主要学习单一职责原则的相关内容。 单一职责原则的定义&#xff1a…

MySQL运维实战(3.1) MySQL官方客户端使用介绍

作者&#xff1a;俊达 引言 MySQL是MySQL安装包默认的客户端&#xff0c;该客户端程序通常位于二进制安装包的bin目录中&#xff0c;或者通过rpm安装包安装mysql-community-client&#xff0c;是数据库管理系统的重要组成部分。MySQL客户端不仅仅是一个简单的软件工具&#x…

程序员必知!中介者模式的实战应用与案例分析

中介者模式通过引入中介类降低对象间耦合度&#xff0c;在电商平台中&#xff0c;卖家、买家、物流公司和支付平台原本需复杂交互&#xff0c;在引入“交易中介”类后&#xff0c;各角色只需与中介交互&#xff0c;由中介协调各方操作&#xff0c;从而简化了交互流程&#xff0…

APP加固技术及其应用

文章目录 引言 APP加固的概念 APP加固的方案 APP加固在实际开发中的应用 总结 引言 在移动应用开发过程中&#xff0c;APP加固技术起到了非常重要的作用。APP加固是将apk文件进行混淆加密&#xff0c;以防止别人反编译获取我们的源码和资源文件。目前市场上主流的APP加固…

手写一个加盐加密算法(java实现)

目录 前言 什么是MD5&#xff1f;&#xff1f; 加盐算法 那别的人会不会跟你得到相同的UUID&#xff1f; 如何使用盐加密&#xff1f; 代码实现 前言 对于我们常见的登录的时候需要用到的组件&#xff0c;加密是一个必不可少的东西&#xff0c;如果我们往数据库存放用户…

零售EDI:Petco EDI对接指南

Petco 始于1965年&#xff0c;是一家美国宠物零售商&#xff0c;提供各种宠物产品和服务以及某些类型的活体小动物。起初Petco只是一家邮购兽医用品公司&#xff0c;后发展为一家成熟的宠物食品和供应链的公司。Petco与其供应商之间是如何传输业务数据的呢&#xff1f; 通过EDI…

C/C++使用过程中的溢出问题

内容&#xff1a;在C/C程序里有一类非常典型的问题&#xff0c;那就是&#xff1a;溢出问题。现在分别来分析一下常见的数组溢出&#xff0c;整数溢出&#xff0c;缓冲区溢出&#xff0c;栈溢出和指针溢出等。 目录 1、数组溢出 2、整数溢出 3、缓冲区溢出 4、栈溢出 5、…

【docker笔记】DockerFile

DockerFile Docker镜像结构的分层 镜像不是一个单一的文件&#xff0c;而是有多层构成。 容器其实是在镜像的最上面加了一层读写层&#xff0c;在运行容器里做的任何文件改动&#xff0c;都会写到这个读写层。 如果删除了容器&#xff0c;也就是删除了其最上面的读写层&…

科技感十足界面模板

科技感界面 在强调简洁的科技类产品相关设计中&#xff0c;背景多数分为&#xff1a;颜色或写实图片两种。 颜色很好理解&#xff0c;大多以深色底为主。强调一种神秘感和沉稳感&#xff0c;同时可以和浅色的文字内容形成很好的对比。 而图片背景的使用&#xff0c;就要求其…

Java Stream:让你的集合操作如丝般顺滑

Stream API是一种基于流&#xff08;stream&#xff09;的API&#xff0c;它提供了一种简洁而高效的处理集合和数组的方法。使用Stream API可以将集合和数组中的数据进行过滤、转换和聚合等操作&#xff0c;同时避免了使用传统的for循环或迭代器的冗长代码. kotlin 可参考Kotl…

构建高效PythonWeb:GraphQL+Sanic

1.1 简介&#xff1a;在当今快速发展的技术时代&#xff0c;Web应用的性能和灵活性变得越来越重要。在众多技术中&#xff0c;GraphQL和Sanic以其独特的优势脱颖而出。GraphQL&#xff0c;作为一个强大的数据查询语言&#xff0c;为前端和后端之间的通信提供了极大的灵活性。而…

【现代密码学】笔记2 -- 完善保密性《introduction to modern cryphtography》现代密码学原理与协议

【现代密码学】笔记2--完善保密性《introduction to modern cryphtography》 写在最前面2 完善保密性的介绍2.1 定义和基本属性加密方案的组成密钥产生算法 (Gen)加密算法 (Enc)解密算法 (Dec)概率分布独立性 完美保密加密3. 回顾加密词法4. 完美保密&#xff08;**Perfect Sec…