本文主要包含hbase数据导入,hbase批量导入数据,mysql数据导入hbase,hbase数据迁移,spark读取hbase数据等服务器相关知识,网友希望可以进行参考
HBase数据导入的几种操作,hbase数据导入几种
数据导入有如下几种方式:
1.利用HBase提供的ImportTsv将csv文件导入到HBase
2.利用HBase提供的completebulkload将数据导入到HBase
3.利用HBase提供的Import将数据导入到HBase
利用ImportTsv将csv文件导入到HBase
命令:
格式:hbase [类] [分隔符] [行键,列族] [表] [导入文件]
bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=","
-Dimporttsv.columns=HBASE_ROW_KEY,cf hbase-tb1-001 /simple.csv
simple.csv内容如下:
1,"Tony"
2,"Ivy"
3,"Tom"
4,"Spark"
5,"Storm"
eg:
创建文件
[root@hadoop1 datamove]# cat simple.csv
1,"Tony"
2,"Ivy"
3,"Tom"
4,"Spark"
5,"Storm"
上传文件
[root@hadoop1 datamove]# hdfs dfs -put simple.csv /liguodong
[root@hadoop1 datamove]# hdfs dfs -ls /liguodong
Found 5 items
-rw-r--r-- 3 root supergroup 45 2015-07-06 11:13 /liguodong/simple.csv
创建表
hbase(main):001:0> create 'hbase-tb1-001','cf'
0 row(s) in 3.1120 seconds
=> Hbase::Table - hbase-tb1-001
执行mapreduce
[root@hadoop1 datamove]# hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=","
-Dimporttsv.columns=HBASE_ROW_KEY,cf hbase-tb1-001 /liguodong/simple.csv
查看是否成功导入
hbase(main):003:0> scan 'hbase-tb1-001'
ROW COLUMN+CELL
1 column=cf:, timestamp=1436152834178, value="Tony"
2 column=cf:, timestamp=1436152834178, value="Ivy"
3 column=cf:, timestamp=1436152834178, value="Tom"
4 column=cf:, timestamp=1436152834178, value="Spark"
5 column=cf:, timestamp=1436152834178, value="Storm"
5 row(s) in 0.1490 seconds
利用completebulkload将数据导入到HBase
HBase支持bulkload的入库方式,它是利用hbase的数据信息按照特定格式存储在hdfs内这一原理,直接在HDFS中生成持久化的HFile数据格式文件,然后上传至合适位置,即完成巨量数据快速入库的办法。配和mapreduce完成,高效便捷,而且不占用region资源,增添负载,在大数据量写入时,能极大的提高写入效率,并降低对HBase节点的写入压力。
通过使用先生成HFile,然后再BulkLoad到HBase的方式来替代之前直接调用HTableOutputFormat的方法有如下的好处:
1、消除了对HBase集群的插入压力
2、提高了Job的运行速度,降低了Job的执行时间
利用completebulkload将数据导入到HBase
1、先通过lmportTsv生成HFile
命令:
hbase [类] [分隔符] [输出存储路径] [行键,列族] [表] [导入原始数据文件]
bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.bulk.output=/hfile_tmp
-Dimporttsv.columns=HBASE_ROW_KEY,cf hbase-tbl-002 /simple.csv
2、通过completebulkload将数据导入表hbase-tbl-002
命令:
hadoop jar lib/hbase-server-0.96.0.jar completebulkload
/hfile_tmp hbase-tbl-002
eg:
[root@hadoop1 datamove]# hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator=","
-Dimporttsv.bulk.output=/liguodong/hfile_tmp -Dimporttsv.columns=HBASE_ROW_KEY,cf hbase-tbl-002 /liguodong/simple.csv
以上的指令,它会主动创建表hbase-tbl-002和文件夹hfile_tmp。
[root@hadoop1 datamove]# hdfs dfs -ls /liguodong
drwxr-xr-x - root supergroup 0 2015-07-06 11:54 /liguodong/hfile_tmp
[root@hadoop1 datamove]# hdfs dfs -ls -R /liguodong/hfile_tmp
-rw-r--r-- 3 root supergroup 0 2015-07-06 11

