hbase映射为hive表(转载+整理+自己验证)
本文是对[1][2]的整理以及在新版本上的验证
-----------------------------------------------------------------------------------------
环境版本
大数据组件 | 版本 |
Hadoop | 3.1.2 |
Zookeeper | 3.6.0 |
Hbase | 2.2.4 |
Hive | 3.0.0 |
-------------------------------------------------
实验前提:
启动HDFS集群
启动Zookeeper集群
启动Hbase集群
启动Hive的metastore和hiveserver2
-------------------------------------------------
Hive建表 | hbase中插入数据 | 查询hive | |
hbase->hive内表 |
CREATE TABLE member( |
put'member','scutshuxue','info:age','24' put'member','scutshuxue','address:contry','china' |
select * from member; |
hbase->hive外表 |
CREATE EXTERNAL TABLE student( |
create 'student','m_id','address','info' put'student','scutshuxue','info:age','24' |
select * from student; |
调试tips:
Hive用beeline建表的时候可能会卡住,这个时候可以退出beeline>引擎,采用老的hive>引擎
注意:
上述表格中的任何一条命令,如果超过8秒(我的是5秒,普通的4核8线程电脑),一般是由于故障卡住了,不要盲目等待。
如果hive的metastore清空,想要重新操作,那么上述过程中,必须先清除hbase中的数据,清除过程以[3]为准
#------------------列映射---------------------------------
上半部分是全部数据从hbase映射到hive,
如果只想映射一部分数据呢?列映射来了!
列映射表格关系(根据不同映射需求,hbase->hive)
Hbase表 | Hive表 | 映射方法 |
---|---|---|
index1 | hbase_table1 | 列映射(单列) |
index1 | hbase_table2 | 多列映射 |
index1 | hbase_table3 | 列簇映射 |
index1表结构以及实验数据
Hbase表名:index1 | ||
Row Key | 列簇(column family):cf0 | |
cf0:indexId | cf0:muMac | |
11 | 11 | |
13 | 11 | |
9696 | 100 | |
9901 | uzzu | |
990111 | 11 | |
990_11aa_aza | 11 |
hbase操作 | |
建立index1 | create "index1","cf0" |
传入数据操作 |
create "index1","cf0" scan 'index1' put 'index1',9696,'cf0:indexId',100 put 'index1',9901,'cf0:muMac','uzzu' |
Hive操作 | 查询语句 | |
单列映射 |
CREATE EXTERNAL TABLE hbase_table_1(key string, value string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES("hbase.columns.mapping" = "cf0:indexId") TBLPROPERTIES("hbase.table.name" = "index1", "hbase.mapred.output.outputtable" = "index1"); |
select * from hbase_table_1; |
多列映射 |
CREATE EXTERNAL TABLE hbase_table_2(key int, indexId string, muMac string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = "cf0:indexId,cf0:muMac") TBLPROPERTIES("hbase.table.name" = "index1", "hbase.mapred.output.outputtable" = "index1"); |
select * from hbase_table_2; |
列簇映射 |
CREATE EXTERNAL TABLE hbase_table_3(value map<string,string>,row_key string) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = "cf0:,:key") TBLPROPERTIES("hbase.table.name" = "index1", "hbase.mapred.output.outputtable" = "index1"); |
select * from hbase_table_3; |
hbase_table_1结果:
+--------------------+----------------------+
| hbase_table_1.key | hbase_table_1.value |
+--------------------+----------------------+
| 11 | 11 |
| 13 | 11 |
| 9696 | 100 |
| 990111 | 11 |
| 990_11aa_aza | 11 |
+--------------------+----------------------+
hbase_table_2结果:
+--------------------+------------------------+----------------------+
| hbase_table_2.key | hbase_table_2.indexid | hbase_table_2.mumac |
+--------------------+------------------------+----------------------+
| 11 | 11 | NULL |
| 13 | 11 | NULL |
| 9696 | 100 | NULL |
| 9901 | NULL | uzzu |
| 990111 | 11 | NULL |
| NULL | 11 | NULL |
+--------------------+------------------------+----------------------+
hbase_table_3结果:
+----------------------+------------------------+
| hbase_table_3.value | hbase_table_3.row_key |
+----------------------+------------------------+
| {"indexId":"11"} | 11 |
| {"indexId":"11"} | 13 |
| {"indexId":"100"} | 9696 |
| {"muMac":"uzzu"} | 9901 |
| {"indexId":"11"} | 990111 |
| {"indexId":"11"} | 990_11aa_aza |
+----------------------+------------------------+
#------------------列映射---------------------------------
Reference:
[1]hive:hbase表映射到hive中
[2]Hbase表映射Hive表三种方法
[3]HBase表创建、删除、清空
hbase映射为hive表(转载+整理+自己验证)相关推荐
- Hbase中的列式表映射到hive的外表
在做数据ETL中,可能原始数据在列式存储Hbase中,这个时候,如果我们想清洗数据,可以考虑把Hbase表映射为Hive的外表,然后使用Hive的HQL来清除处理数据,具体过程参考下面例子: 步骤 1 ...
- Hive 与 Hbase表映射(内部表与外部表),Hbase常用命令
应用场景 1.将ETL操作的数据存入HBase 2.Hbase作为Hive的数据源 构建低延迟的数据仓库 Hive表映射至Hbase Hbase上有表 -> 外部表 创建Hive表映射HBase ...
- Hbase表映射Hive表三种方法
文章目录 一.准备 1.1 官方文档 1.2 依赖服务 二.表映射 2.1 列映射(单列) 2.2 列映射(多列) 2.3 列族映射 三.总结 一.准备 1.1 官方文档 https://cwiki. ...
- hive建立内部表映射hbase_Hive 建外链表到 Hbase(分内部表、外部表两种方式)
一. Hive 建内部表,链到hbase :特点:Hive drop表后,Hbase 表同步删除 drop table if exists hbase_kimbo_test1; CREATE TABL ...
- Hive表操作及管理
转载请注明出处:http://blog.csdn.net/u012842205/article/details/72765667 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映 ...
- 【遇见Doris】Doris基于Hive表的全局字典设计与实现
感谢7月25日来参加 Doris 与 Dolphin Scheduler 合作举办的线上 Meetup 的小伙伴们,现在为大家带来 Meetup 的内容. 本次 Meetup 请到了来自百度.奇安信. ...
- 【原创】大叔经验分享(65)spark读取不到hive表
spark 2.4.3 spark读取hive表,步骤: 1)hive-site.xml hive-site.xml放到$SPARK_HOME/conf下 2)enableHiveSupport Sp ...
- date类型_06076.1.0如何将ORC格式且使用了DATE类型的Hive表转为Parquet表
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图. Fayson的github: https://github.com/fayson/cdhproject 提示 ...
- hive 表的常用操作
使用load 方式加载数据到Hive 表中,注意分区表加载数据的特殊性 如何保存HiveQL 查询结果:保存到表中,保存到本地文件(注意指定列分隔符) 常见查询练习,如group by.having. ...
最新文章
- 【目标检测】yolo系列:从yolov1到yolov5之YOLOv3详解及复现
- c语言中ai是什么,AICODE在C语言教学中应用研究.doc
- html 如何改变图片形状,图形变换的三种方式是什么?
- android 自动化测试_Android自动化测试探索之代码覆盖率统计
- 101个MySQL调试和优化技巧
- 19.简报配置(Newsletter Configuration)
- Windows XP Embedded 官方下载地址
- c++ string取子串_LeetCode第三题 “无重复字符的最长子串” 从低效率到高效率
- mysql在网页上显示乱码_计算机毕设答辩时网页报错怎么办
- windows下cmd批量复制文件
- 经典算法大全之费式数列
- 电力能耗监测在山东青岛机场的应用
- 详解汽车外饰行业如何利用MES系统进行生产防错?
- 15--jQuery插件大全-- 使用jsoup爬取酷我音乐和微博热搜数据
- 工具篇:这可能是全 GitHub 最牛逼的抢票神器!
- ClickHouse 来自战斗民族的OLAP利器
- 1196 找到特殊的四位数
- Java新手小白入门篇 项目 - 深海杀手
- C#--集合添加数据(ArrayList and list)
- c语言单片机定时器的应用程序,51单片机定时器中断程序(C语言)
热门文章
- Netty中ByteBuf 的零拷贝
- codevs 1779 单词的划分
- WP8.1开发中关于如何显示.gif格式动态格式图片方法
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术05--运算符重载
- [Linux]进程(十二)--task_struct结构体
- Exceptions(小节)
- [转]VS2010中水晶报表安装应用及实例
- 第一个 Metro程序(空白应用程序)
- MSSQL数据库C#操作类(SQLHELPER类的修改版)
- JS----javascript原型和原型链