博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hbase表映射Hive表三种方法
阅读量:3877 次
发布时间:2019-05-23

本文共 2776 字,大约阅读时间需要 9 分钟。

文章目录

一、准备

1.1 官方文档

https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration

1.2 依赖服务

Hive3.1.1:https://blog.csdn.net/qq_39680564/article/details/89714184

Hbase2.1.0:https://blog.csdn.net/qq_39680564/article/details/89515459
hadoop3.0.3:https://blog.csdn.net/qq_39680564/article/details/89513162

二、表映射

Hbase表 Hive表 映射方法
index1 hbase_table1 列映射(单列)
index1 hbase_table2 列映射(多列)
index1 hbase_table3 列族映射

index1表结构

在这里插入图片描述
逻辑关系
在这里插入图片描述

2.1 列映射(单列)

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");

在Hive库中创建一个hbase_table_1表,列名为key、value

映射Hbase库中的index1表的cf0:indexId列
key、value为hive表的列名可修改
string为该字段的字符类型可修改

hive库中的表:

hive> show tables;OKhbase_table_1Time taken: 0.03 seconds, Fetched: 1 row(s)hive> select * from hbase_table_1;11	1113	119696	100990111	11990_11aa_aza	11Time taken: 1.266 seconds, Fetched: 5 row(s)

第一列为rowkey的值

第二列为cf0:indexId的值
没有展示cf0:muMac的值

2.2 列映射(多列)

Hive建表语句

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");

在Hive库中创建一个hbase_table_2表,列名为key、indexId、muMac

映射Hbase库中的index1表的cf0:indexId与cf0:muMac列
key、indexId、muMac为hive表的列名可修改
string为该字段的字符类型可修改

hive库中的表:

hive> show tables;OKhbase_table_1hbase_table_2Time taken: 0.02 seconds, Fetched: 2 row(s)hive> select * from hbase_table_2;OK11	11	NULL13	11	NULL9696	100	NULL9901	NULL	uzzu990111	11	NULLNULL	11	NULLTime taken: 0.144 seconds, Fetched: 6 row(s)

第一列为rowkey的值

第二列为cf0:indexId的值
第三列为cf0:muMac的值

2.3 列族映射

Hive建表语句

CREATE EXTERNAL TABLE hbase_table_3(value map
,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");

在Hive库中创建一个hbase_table_3表,列名为value map、row_key

映射Hbase库中的index1表的cf0:列名
key、indexId、muMac为hive表的列名可修改
string为该字段的字符类型可修改

hive库中的表:

hive> show tables;OKhbase_table_1hbase_table_2hbase_table_3Time taken: 0.922 seconds, Fetched: 3 row(s)hive> select * from hbase_table_3;{
"indexId":"11"} 11{
"indexId":"11"} 13{
"indexId":"100"} 9696{
"muMac":"uzzu"} 9901{
"indexId":"11"} 990111{
"indexId":"11"} 990_11aa_azaTime taken: 1.469 seconds, Fetched: 6 row(s)

第一列为键值对

第二列为rowkey的值

三、总结

方法 建表语句 可视化
单列映射 简单 友好
多列映射 复杂(列多) 友好
列族映射 简单 不友好

推荐hive的可视化连接工具dbeaver:

https://blog.csdn.net/qq_39680564/article/details/89945195
在这里插入图片描述

你可能感兴趣的文章
同步/异步与阻塞非阻塞的关系
查看>>
epoll模型讲解/源码分析
查看>>
ELF格式与bss段
查看>>
java继承 long和float小记点
查看>>
记录几点在开发中遇到的问题 2015-7-28 (会更新)
查看>>
网银在线的异步操作代码示意图
查看>>
火狐Firefox浏览器安装Selenium_IDE的步骤以及其使用规则
查看>>
记录运行代码的时间长短
查看>>
关于yii2的一些知识的学习笔述
查看>>
用纯php实现MVC框架,文件目录模仿yii2
查看>>
新开发的体重管理项目----用纯php模仿yii2框架建立的
查看>>
JavaScript面向对象编程指南 的笔记
查看>>
在 2016 年做 PHP 开发是一种什么样的体验?(一)
查看>>
PHP获取客户端的IP
查看>>
从头开始学习yii2---1.搭建yii2开发环境
查看>>
从头开始学习yii2---3.语言包的配置
查看>>
yii2-表单验证的一些规则
查看>>
索引相关问题
查看>>
php面试可能会被问道的技术题汇总
查看>>
php面试题1-线程和进程的区别(顺带提下协程)
查看>>