需求:将HDFS中的每行以tab分隔的测试数据,使用importtsv导入到HBase的表中、
在HBase中创建一个表:
create 'student','info'
准备的数据
1001 zhangsan 35 male beijing 010876623
1002 lisi 31 male hangzhou 010876223
1003 zhaoliu 23 female shanghai 010874623
1004 qianqi 31 male taiyuan 0102376623
export HBASE_HOME=/opt/cdh-5.5.0/hbase-1.0.0-cdh5.5.0
export HADOOP_HOME=/opt/cdh-5.5.0/hadoop-2.6.0-cdh5.5.0
HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp` $HADOOP_HOME/bin/hadoop jar ${HBASE_HOME}lib/hbase-server-1.0.0-cdh5.5.0.jar
如果嫌麻烦,可以将两个export加入到环境变量profile文件中并生效,然后直接使用最后一句命令
${HBASE_HOME}lib/hbase-server-1.0.0-cdh5.5.0.jar这个hbase下的包中提供了很多功能,如下
CellCounter: Count cells in HBase table
completebulkload: Complete a bulk data load.
copytable: Export a table from local cluster to peer cluster
export: Write table data to HDFS.
import: Import data written by Export.
importtsv: Import data in TSV format.
rowcounter: Count rows in HBase table
我们可以使用importtsv来导入以TAB为分隔符格式的数据,如下
将位于hdfs://BPF:9000/user/bpf/hbase/importTSV下的student.tsv数据导入到HBase的student表中
HADOOP_CLASSPATH=`${HBASE_HOME}/bin/hbase mapredcp`:${HBASE_HOME}/conf $HADOOP_HOME/bin/yarn jar ${HBASE_HOME}/lib/hbase-server-1.0.0-cdh5.5.0.jar importtsv -Dimporttsv.columns='HBASE_ROW_KEY,info:name,info:age,info:sex,info:address,info:phone' student hdfs://BPF:9000/user/bpf/hbase/importTSV
查看student表,观察数据
scan 'student'