前言

常见的将数据导入HBase的方式大概有以下几种:

a)使用HBase put API

b)使用Bulkload tool

c)使用import功能

d)从Hive导入

本文主要演示使用importTSV的方式将TSV文件导入HBase的表中。

1、创建上传TSV文件

TSV的全称是 Tab Separated Values File,也就是制表符分隔的文本文件。我们出于演示,可以在本地直接创建一个简单的文件student.tsv

10001	zhangsan	35	male	beijing	0109876543
10002	lisi	32	male	shanghia	0109876563
10003	zhaoliu	35	female	hangzhou	01098346543
10004	qianqi	35	male	shenzhen	01098732543

分别对应我们的ROWKEY、姓名、年龄、性别、地点、电话

在本地创建好后我们需要上传到HDFS上,首先提前创建一个目录

{HADOOP_HOME}/bin/hdfs dfs -mkdir -p /user/root/hbase/importtsv

上传刚才的文件到指定目录

{HADOOP_HOME}/bin/hdfs dfs -put student.tsv /user/root/habse/importtsv

数据的准备工作完成。

2、在HBase上创建表

进入目录bin/start-hbase.sh启动HBase,bin/hbase shell进入命令行,键入命令:

create 'student','info'

其中student是表名,info是列簇。

3、执行数据导入

在此之前,请大家保证配置好了hbase与hadoop的集成,如果没有,添加环境变量。

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_HOME/lib/*

因为我们执行的import跑的是MapReduce程序,需要hadoop能够找到hbase相应jar包,所以将HBASE下的lib添加进HADOOP_CLASSPATH

完成后启动程序:

${HADOOP_HOME}/bin/yarn jar \
${HBASE_HOME}/lib/hbase-server-0.98.6-cdh5.3.6.jar importtsv \
-Dimporttsv.columns=HBASE_ROW_KEY,\
info:name,info:age,info:sex,info:address,info:phone \
student \
hdfs://hadoop:9000/user/root/hbase/importtsv

最后一行的hdfs地址请大家自行修改成自己的。

在这里插入图片描述
观察命令行可以看到MapReduce的job执行完毕,进入yarn web页面
在这里插入图片描述
看到SUCCEEDED

最后进入HBase的Shell查看我们原先的空表:
在这里插入图片描述
数据导入成功。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐