1.创建hive的hbase的映射表(我使用的是阿里云大数据平台,hbase的相关jar以及配置文件已经拷贝到hive相应的目录下面,该步骤省略)
CREATE EXTERNAL TABLE `xxxxxxxxx`(
`keyid` string COMMENT 'from deserializer',
`action` string COMMENT 'from deserializer')
ROW FORMAT SERDE
'org.apache.hadoop.hive.hbase.HBaseSerDe'
STORED BY
'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (
'hbase.columns.mapping'=':key,info:action',
'serialization.format'='1')
TBLPROPERTIES (
'hbase.table.name'='xxxxxxxxx',
'transient_lastDdlTime'='1602294488')
2.表写shell脚本实现hbase的批量删除操作
#!/bin/bash
# 该shell脚本实现删除前四天的所有数据
date=$(date -d "4 day ago" +%Y-%m-%d)
echo ${date}
#用hivesql,查出需要删除的数据,并且拼接hbase shell删除命令,逐条删除,重定向覆盖到del_temp.txt
hive -e "select concat('deleteall \'xxxxxxxxx\',\'',keyid,'\'') from test.xxxxxxxxxwhere keyid like '${date}%'" > del_temp.txt
# 重定向追加一个exit,这样在下一条语句执行完毕,就可以退出hbase shell了
echo 'exit' >> del_temp.txt
# 到hbase shell里面执行删除语句
hbase shell ./del_temp.txt
exit
操作如此丝滑,就像用了飘柔。。。。。。。
文章最后Congratulations to the Lakers, goodbye to Kobe, goodbye to my youth。。。。。