一.数据导入HBase中常见方式
数据的来源:
(1)日志
(2)RDBMS
导入的方式:
.使用hbase的api put api(kettle,sqoop)
.使用HBase的API中的Put是最直接的方法,用法也很容易学习。但针对大部分情况,它并非都是最高效的方式。当需要将海量数据在规定时间内载入HBase中时,效率问题体现得尤为明显。待处理的数据量一般都是巨大的,这也许是为何我们选择了HBase而不是其他数据库的原因。在项目开始之前,你就该思考如何将所有能够很好的将数据转移进HBase,否则之后可能面临严重的性能问题。
.使用hbase内置的importtsv或者自定义mr
importtsv是tsv文件直接加载内容到hbase一个内置工具.它运行一个mapReduce job将数据文件直接写到HBase表中,或者写入一个Hbase自带格式数据文件.importtsv将数据直接加载到HBase数据表中.
. bulk load方式快速加载数据量大的数据(非常常用)
Hbase支持bulk load的入库方式,它是利用hbase数据信息按照特定的格式存储在hdfs上,在hdfs上生成持久化的HFile数据格式文件,然后上传到合适的位置.配合mapreduce完成高效便捷,而且不占有region的资源,在大数据写入时能够极大的提高写入的效率,降低了对Hbase节点的写入压力。
1.介绍Hbase自带importtsv工具默认直接加载到Hbase数据库,我们也可先生成Hfile的文件,importtsv源码参考habse-server-0.98.6-hadoop2.jar的org.apache.hadoop.hbase.mapreduce:ImportTsv类
2.通过hbase-importtsv导入数据
准备数据
select *from company
into outfile '/usr/local/datas/company.tsv'
fields termi