How To Use Hbase Bulk Loading

最近在学习hbase,学到利用如何将数据导入到hbase中,采用的方式是批量导入:bulk load的方法,中间出现了一些问题,下面将执行的步骤记录一下,以供日后查阅: 说明:导入的方式是将csv文件的内容导入到hbase中。

1、首先是将csv文件上传到hdfs上。 hadoop fs -put simple.csv /user/username/ 上面的步骤是将simple.csv文件上传到hdfs中的/user/name中.说明:数据的间隔是制表符,若是逗号间隔符需要指定间隔符

2、通过hbase shell 界面创建相应的表

(1)进入shell界面: hbase shell

(2)创建表:create 'tablename','columnfamily'

3、通过mapreduce作业,生成Hfile文件

执行:hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,columnfamily -Dimporttsv.bulk.output=/hfile_tmp tablename /user/username/simple.csv (默认间隔符是制表符)

或者 hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,columnfamily -Dimporttsv.bulk.output=/hfile_tmp tablename -Dimporttsv.separator=, /user/username/simple.csv

4、此时mapreduce执行成功后,会在hdfs上生成一个目录,该目录就是上面的命令行指定的目录(如:-Dimporttsv.bulk.output=/hfile_tmp)。

但是该目录的权限是属于当前用户的,因此需要修改他的权限。

sudo -u hdfs hdfs dfs -chown -R hbase:hbase /hfile_tmp

5、执行最后一步,批量导入

hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles /hfile_tmp mytable

上一篇:Sqoop学习之路 (一)


下一篇:使用 Redis 实现排行榜功能 (转载 https://segmentfault.com/a/1190000002694239)