版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hr787753/article/details/79281171
先说下使用场景 :
HIve有Orc表 可以增删改 但是每一个事务执行的速度很慢 不适合于高并发的场景。
我之前mysql同步hadoop 创建了hive事务表 但是效果很差 这里另辟蹊径,将数据存入hbase 很快 建立映射 这样解决了效率问题。
概念 详解:
HIve有 内部表 和外部表 针对于HBase来说
外部表 –》HBase已经存在这张表 hive只建立映射 在hive中删除这张表 HBase不收任何影响 在Hive中创建HBase映射的外部表 前提条件 HBase存在这张表
内部表–》HBase不存在这张表 在HIve中建立HBase映射的内部表 首先HBase不能存在这张表 建立好Hive表会自动在HBase中创建同样结构的表 在Hive中删掉这张表 HBase也会自动删除
不论内部 外部 disable 表 hive查询会报错
create external table student
(id int,
name string,
age int,
sex string,
address string,
math int)
stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
with serdeproperties ("hbase.columns.mapping"="
:key,
info:name,
info:age,
info:sex,
info:address,
score:math,
score:english")
TBLPROPERTIES ("hbase.table.name" = "school:student");