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处理
来源:oschina
链接:https://my.oschina.net/u/937111/blog/4290420