本文共 2776 字,大约阅读时间需要 9 分钟。
https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration
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/89513162Hbase表 | Hive表 | 映射方法 |
---|---|---|
index1 | hbase_table1 | 列映射(单列) |
index1 | hbase_table2 | 列映射(多列) |
index1 | hbase_table3 | 列族映射 |
index1表结构
逻辑关系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的值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的值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