hive hbase关联表,增量导入的方式的实战

拥有回忆 提交于 2020-08-14 10:30:53

1.创建hbase表
create 'lyj:lyja','cf1'

2.写入数据
put 'lyj:lyja','1','cf1:name','zhangsan'
put 'lyj:lyja','1','cf1:age','lisi'

3.查询hbase 表权限 (**给hive授权hbase表的操作权限否则不能操作hbase中的数据**)
user_permission 'lyj:lyja'

4.在hbase中先授权给hive用户
su hbase
hbase shell
grant 'hive','RWXCA','lyja'

5.创建hive hbase 外部表

CREATE EXTERNAL TABLE lyja(
key string,
name string,
age string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
("hbase.columns.mapping" = ":key,cf1:name,cf1:age")
TBLPROPERTIES("hbase.table.name" = "lyja");

6.准备数据

2,wangwu2,320

3,lisi2,110

7.上传数据到hdfs

hdfs dfs -put test.cvs /tmp/

8.批量导入---将hdfs数据导入到hbase(不会删除hdfs上的数据)

hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,cf1:name,cf1:age lyj:lyja /tmp/test.cvs

9.使用程序jdbc查询数据库数据(select * from tableA where modifytime>'nowTime')并调用hbase api将数据写入到hbase中,这样就可以保证增量导入数据到hbase,可以通过hive对数据进行ETL处理

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!