使用importtsv命令加载数据

来源:互联网 发布:网络安全隐患 编辑:程序博客网 时间:2024/06/06 04:51

原文: http://debugo.com/importtsv-load-data/?utm_source=tuicool&utm_medium=referral


Bulkload是向HBase批量加载数据的方式,它会直接将数据进行准备和并加载成HFile,并直接讲文件插入到RegionServer中,这比通过一个MapReduce/Spark作业来加载性能高得多。详细的流程如下:
1. 抽取数据并形成固定格式的文件,比如csv。
2. 将数据转换称为HFile。这需要一个MapReduce作业,可以自己来实现Map方法来,HBase来完成后面的Reducer操作。最后,每一个region的HFile将会在输出目录被创建出来。
3. 将生成的HFile加载到HBase中,并在所有的regionserver上注册它们,即完成Complete Bulkload阶段。

下面我们生成一个实验数据集:

首先我们在HBase创建需要load进入的表:

下面我们使用HBase中的importtsv类来处理。Importtsv作业接收下面几个参数:
-Dimporttsv.skip.bad.lines=false – 若遇到无效行则失败
-Dimporttsv.separator=| – 文件中代替tabs的分隔符
-Dimporttsv.columns=HBASE_ROW_KEY,city 输入行的格式
-Dimporttsv.timestamp=currentTimeAsLong – 导入时使用指定的时间戳
-Dimporttsv.mapper.class=my.Mapper – 使用用户指定的Mapper类来代替默认的
-Dimporttsv.bulk.output=/user/yarn/output 作业的输出目录
先创建出输出目录,并上传数据。

下面我们开始执行completeBulkload的操作,将生成的HFile注册到regionserver中。其中第一个参数是HFile的输出目录,第二个参数是加载进的表名。

进入HBase shell,检查bulkload的数据

更多的信息请参见:
http://blog.cloudera.com/blog/2013/09/how-to-use-hbase-bulk-loading-and-why/

http://www.cnblogs.com/mumuxinfei/p/3823367.html

0 0
原创粉丝点击