HBase数据导入的几种操作
来源:互联网 发布:女仆装淘宝网 编辑:程序博客网 时间:2024/06/04 20:00
数据导入有如下几种方式:
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.csv1,"Tony"2,"Ivy"3,"Tom"4,"Spark"5,"Storm"上传文件[root@hadoop1 datamove]# hdfs dfs -put simple.csv /liguodong[root@hadoop1 datamove]# hdfs dfs -ls /liguodongFound 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 /liguodongdrwxr-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:54 /liguodong/hfile_tmp/_SUCCESSdrwxr-xr-x - root supergroup 0 2015-07-06 11:54 /liguodong/hfile_tmp/cf-rw-r--r-- 3 root supergroup 1196 2015-07-06 11:54 /liguodong/hfile_tmp/cf/e20e3fe899de47a88ca476e05da2c9d7hbase(main):008:0> scan 'hbase-tbl-002'ROW COLUMN+CELL0 row(s) in 0.0310 seconds将数据导入表hbase-tbl-002[root@hadoop1 datamove]# hadoop jar /opt/cloudera/parcels/CDH/lib/hbase/hbase-server-0.98.6-cdh5.3.4.jar completebulkload /liguodong/hfile_tmp hbase-tbl-002
利用Import将数据导入到HBase
1、HBase export工具导出的数据的格式是sequence file。
比如,在执行完命令bin/hbase org.apache.hadoop.hbase.mapreduce.Export hbase-tbl-002 /test-output
后,hbase会启动一个MapReduce作业,作业完成后会在hdfs上面会生成sequence file格式的数据文件。
2、对于这类Sequence file格式的数据文件,HBase是可以通过Import工具直接将它导入到HBase的表里面的。
执行命令: bin/hbase org.apache.hadoop.hbase.mapreduce.Import hbase-tbl-003 /test-output
随后hbase会启动一个MapReduce作业,然后表test会成功入数据。
导出到hdfs[root@hadoop1 lib]# hbase org.apache.hadoop.hbase.mapreduce.Export hbase-tb1-001 /liguodong/test-output创建新表hbase(main):010:0> create 'hbase-tb1-003','cf'0 row(s) in 0.4290 seconds=> Hbase::Table - hbase-tb1-003导入到hbase[root@hadoop1 lib]# hbase org.apache.hadoop.hbase.mapreduce.Import hbase-tb1-003 /liguodong/test-output验证hbase(main):011:0> scan 'hbase-tb1-003'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.0580 seconds
- HBase数据导入的几种操作
- HBase的几种导入数据的方式
- hbase导入数据几种方式
- HBase数据的导入导出
- HBase数据的导入导出
- Hbase的completebulkload导入数据
- HBase的数据导入方式
- hbase 数据的导入导出
- hbase java api操作导入数据
- HBase Shell 操作命令&&使用Sqoop将数据导入HBase
- 数据导入HBase最常用的三种方式
- Hive 数据导入HBase的2种方法详解
- HBase数据备份恢复的几种机制总结
- java 操作hbase的数据
- HBase数据的导入和导出
- hbase数据的导入与导出
- HDFS 上的数据导入到Hbase
- HBase数据的导入和导出
- 《C语言及程序设计》实践项目——敲了哪一个键?
- 【Linux】进程间通信之管道pipe与FIFO
- 【转】加班与加薪的秘密:一位华为工程师的经验分享
- UML关系(泛化,实现,依赖,关联(聚合,组合))
- Mysql日期时间类型(DATE,DATETIME,TIMESTAMP)和函数及与linux系统时间之间的转换(UNIX_TIMESTAMP、FROM_UNIXTIME)
- HBase数据导入的几种操作
- imshow和image两个显示函数的区别
- 安卓查看进程和服务等
- PS CC 2014 把一个图层输出为文件的方法
- Linux下的C编程
- ROS学习手记 - 4 理解ROS中的基本概念_ROS_Topics
- 【斯坦福---机器学习】复习笔记之牛顿方法
- HTML5实现IP Camera网页输出
- lock,Monitor,Mutex的区别