前期准备,hadoop需要开启MapReduce
第一种方法
一、操作步骤
1、创建tsv文件,文件格式如下
abc|siaogi
sss|gaiogo
2、将tsv文件put到hdfs中./bin/hdfs dfs -put a.tsv /tmp/a.tsv
3、使用ImportTsv来进行导入1
./bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator='|' -Dimporttsv.columns=HBASE_ROW_KEY,cf:a t /tmp/a.tsv
如果使用客户端,在hbase的conf下面建了一个yarn-site.xml1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.resourcemanager.address</name>
<value>hostname:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hostname:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hostname:8031</value>
</property>
</configuration>
把这些拷进去就可以了1
sudo -uhadoop ./bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,contact_info:pc user_tag1 /home/q/user_tag/user_test.tsv
二、线上导入的案例命令
表结构为create 'algo_router:user_tag',{NAME => 'contact_info'},{NAME => 'contact_tag'}
导入语句为1
./bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,contact_info:rate,contact_info:price,contact_tag:tag 'algo_router:user_tag' /temp/user_tag.tsv
第二种方法(先生成HFILE文件再导入)
假设datatsv,数据如下
row1,a,c
row2,c,d
生成HFILE文件1
./bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=',' -Dimporttsv.columns=HBASE_ROW_KEY,cf:c1,cf:c2 -Dimporttsv.bulk.output=/output table_pucong hdfs://mycluster:8020/tmp/datatsv
执行完结果显示1
2
3
4./bin/hdfs dfs -ls /output
Found 2 items
rw-rr- 1 hadoop supergroup 0 2015-08-10 22:08 /output/_SUCCESS
drwxr-xr-x - hadoop supergroup 0 2015-08-10 22:08 /output/cf
将生成的FILE文件转移成hbase的table1
./bin/hbase org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles hdfs://mycluster:8020/output table_pucong