hadoop组件---hbase--使用importtsv和Bulk load导入hbase的shell脚本
1、将数据文件放到hdfs
数据文件 /tmp/user.txt hadoop fs -mkdir -p /tmp/input/user hadoop fs -copyFromLocal /tmp/user.txt /tmp/input/user 或 hadoop fs -put /tmp/user.txt /tmp/input/user
2、使用importtsv将数据文件转化为HFile文件
将需要导入habse的数据转化为hbase的HFile文件
选项:
-Dimporttsv.separator=',' 表示HDFS数据各列之间使用“,”作为分隔符
-Dimporttsv.bulk.output=/hadoop/output/user 表示生成HFile文件
-Dimporttsv.columns=HBASE_ROW_KEY,info:age,info:sex user /tmp/input/user
表示将源HDFS数据拆分为HBASE_ROW_KEY,info:age,info:sex这四列,user表示插入到HBase的目标表, /tmp/input/user表示数据在HDFS上的路径。
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.bulk.output=/tmp/output/user -Dimporttsv.separator=',' -Dimporttsv.columns=HBASE_ROW_KEY,info:age,info:sex user /tmp/input/user
注意检查HFile文件是否挂载成功
hadoop fs -ls /tmp/output/user/
3、将HFile注册到hbase中
指定HFile文件路径和hbase的表名称进行导入数据到habse的user表中
hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /tmp/output/user user
4、删除hdfs中间文件
haddop fs -rm -r /tmp/input/user
haddop fs -rm -r /tmp/output/user

浙公网安备 33010602011771号