HBase BulkLoad

1. 数据导入流程

一般数据存放在关系型数据库,Oracle、MySQL中。如果数据量不大,少于30G,量少于5000万条,可以用Sqoop 直接 Oracle -> HBase。
量大的话,HBase 性能会严重影响,建议
1、Sqoop Oracle -> HDFS;
2、HDFS -> HFile;
3、HFile -> HBase;

2. Sqoop Oracle->HBase

3. Sqoop Oracle->HDFS

4. HDFS->HFile

4.1. 使用说明

Usage: importtsv -Dimporttsv.columns=a,b,c <tablename> <inputdir>

4.2. 例子

4.3. 经验

分隔符:Dimporttsv.separator 如果不指定,默认就是 \t
HBASE_ROW_KEY 必须在,对应每一行第一个字段

5. HFile->HBase

5.1. 例子

5.2. 遇到的问题

5.3. 解决方案

直接在HBase源码中去搜索 hfiles to family 定位到

继续看 maxFilesPerRegionPerFamily 赋值过程

maxFilesPerRegionPerFamily = conf.getInt(MAX_FILES_PER_REGION_PER_FAMILY, 32);

从上看到,直接去配置文件中去搜索该配置,如果找不到,默认就是32,而 MAX_FILES_PER_REGION_PER_FAMILY 是下面这个配置。

public static final String MAX_FILES_PER_REGION_PER_FAMILY
= "hbase.mapreduce.bulkload.max.hfiles.perRegion.perFamily";

最终直接在 hbase-site.xml 中加入该配置,我当前的 HFile有90多个,直接配置成256解决。

原创文章,转载请注明: 转载自LoserZhao – 诗和远方[ http://www.loserzhao.com/ ]

本文链接地址: http://www.loserzhao.com/bigdata/hbase-bulkload.html

文章的脚注信息由WordPress的wp-posturl插件自动生成

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

使用新浪微博登陆