1.准备测试数据文件,编辑一个test文件,内容如下:
a 12 a1
b 13 a1
c 14 a2
d 15 a2
e 16 a2
2.在HDFS上创建一个目录input
hadoop fs -mkdir /input
3.将test文件上传到HDFS上的input目录下
hadoop fs -put test /input
4.在HBase中创建test表
hbase(main):013:0> create 'test','info'
5.执行数据迁移命令
hadoop jar hbase-x.x.x/lib/hbase-server-x.x.x.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY,info:a,info:b,info:c test hdfs://master:9000/input
命令格式
hadoop jar hbase-x.x.x/lib/hbase-server-x.x.x.jar importtsv -Dimporttsv.columns=a,b,c <tablename> <hdfs-inputdir>
-Dimporttsv.columns即导入的列,例如:-Dimporttsv.columns=f:a,f:b…
hdfs-inputdir即数据文件在HDFS的路径,例如:/hbase_test_input
如果使用的不是制表符\t分隔,请指定参数: -Dimporttsv.separator=','
其中 -Dimporttsv.columns=HBASE_ROW_KEY,f:a,f:b的意思是通过分隔符号分割的第一个元素作为rowkey,第二个元素作为f:a列值,第三个元素作为f:b值