Hive架构图:
一般用户接口采用命令行操作,
hive与hbase整合之后架构图:
使用场景
场景一:通过insert语句,将文件或者table中的内容加入到hive中,由于hive和hbase已经整合,因此也会加入到hbase当中
场景二:hbase不支持join或者gruop等,可以通过这种方式,让hbase支持sql语句等
场景三,使用Hbase加载数据,然后用Hive查询数据,这样既有了Hbase的高速读写数据,也有了Hive的sql语句方便查询:
部署hive整合hbase环境:
先把Hbase中的lib包考入hive里的lib中,这样就不需要再配置环境变量:
进入hive命令行,在hive中创建一个能直接管理Hbase的表:
查询发现xyz创建完毕:
创建插入数据表:
创建文件准备插入hive的poke表:
数据插入poke表,并且利用poke表插入之前创建的Hive和Hbase关联表:
而后利用poke表,将poke表中的数据插入hbase_table_1测试表中:
查询hbase的xyz表,发现数据已经插入,此时hive中的hbase_table_1表和hbase中的xyz表已经完成映射
在hive中删除表hbase_table_1的同时hbase中的xyz表也会删除
之后模拟在hive中创建一个外部表与hbase相关联:
先在hbase中创建一个user表:
之后在hive中创建hbase关联外部表:
hbase中插入数据:
此时hive表中数据也同时加载了:
以这种方式关联映射的hive表,在删除之后并不会删除hbase中的表: