文章目录
HBase数据的导入和预分区
HBase数据导入
1.准备数据
创建文件data.csv
1,zhangmingyang,18
2,yunbaofeng,12
3,shirui,12
4,chenlinxue,30
5,wangren,34
6,fanxujuan,43
7,zhang,43
8,shirui,53
9,wangren,23
10,haoshiwei,12
11,mazong,14
12,laoyang,16
2.使用ImportTsv将csv文件直接导入HBase中
语法:
hbase <类名>-<分割>-<行键,列簇:列> <表名> <path>
步骤1:在Hbase中创建一张表ns1:in_table
create 'ns1:in01',{NAME=>'cf1',VERSIONS=>'3'}
hbase(main):003:0> create 'ns1:in01',{NAME=>'cf1',VERSIONS=>3}
0 row(s) in 2.6550 seconds
=> Hbase::Table - ns1:in01
步骤2:将data.csv导入到ns1:in01中
(1)当数据存放在linux本地文件系统中时,在shell中执行如下命令
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
-Dimporttsv.separator="," \
-Dimporttsv.columns=HBASE_ROW_KEY,cf1:name,cf1:age ns1:in01 \
file:///root/hbase_test/data.csv
(2)当数据存放在HDFS文件系统中时,在shell中执行如下命令
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
-Dimporttsv.separator="," \
-Dimporttsv.columns=HBASE_ROW_KEY,cf1:name,cf1:age ns1:in01 \
/hbase_test/data.csv
或者如下命令
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
-Dimporttsv.separator="," \
-Dimporttsv.columns=HBASE_ROW_KEY,cf1:name,cf1:age ns1:in01 \
hdfs://hadoop02:9000/hbase_test/data.csv
步骤3:查看ns1:in01中的数据
hbase(main):004:0> scan 'ns1:in01'
ROW COLUMN+CELL
1 column=cf1:age, timestamp=1562380331819, value=18
1 column=cf1:name, timestamp=1562380331819, value=zhangmingyang
10 column=cf1:age, timestamp=1562380331819, value=12
10 column=cf1:name, timestamp=1562380331819, value=haoshiwei
11 column=cf1:age, timestamp=1562380331819, value=14
11 column=cf1:name, timestamp=1562380331819, value=mazong
12 column=cf1:age, timestamp=1562380331819, value=16
12 column=cf1:name, timestamp=1562380331819