如果hbase表有某个列族有40个字段,怎么能提高写的速度

 我来答
di...0@sina.com
2016-11-29 · 超过211用户采纳过TA的回答
知道小有建树答主
回答量:534
采纳率:0%
帮助的人:351万
展开全部
ulkload确实不太合适,可以采取下面方法:
 1. 避免region split
  不得不说,region split是提升写性能的一大障碍。减少region split次数可以从两方面入手。首先是预分配region。
  预分配region
  不在此重复region split的原理,请参见 cn/s/blog_9cee0fd901018vu2.html。按数据量,row key的规则预先设计并分配好region,可以大幅降低region split的次数, 甚至不split。这点非常重要。
  适当提升hbase.hregion.max.filesize
  提升region的file容量也可以减少split的次数。具体的值需要按照你的数据量,region数量,row key分布等情况具体考量。一般来说,3~4G是不错的选择。

  2. 均匀分布每个Region Server的写压力
  之前也提到了RPC Handler的概念。好的Data Loader需要保证每个RPC Handlder都有活干,每个handler忙,但不至超载。注意region的压力不能过大,否则会导致反复重试,并伴有超时异常(可以提高超时的时间设置)。
  如何保证每个Region Server的压力均衡呢?这和region 数量,startKey设计, client数据插入顺序有关。
  一般来说,简单的数据插入程序应该是多线程实现。让每个线程负责一部分的row key范围,而row key范围又和region相关,所以可以在数据插入时,程序控制每个region的压力,不至于有些region闲着没事干。
  那么,如何设计row key呢?举个比较实际的例子,如果有张HBase表来记录每天某城市的通话记录, 常规思路下的row key是由电话号码 + yyyyMMddHHmmSS + ... 组成。按电话号码的规律来划分region。但是这样很容易导致数据插入不均匀(因为电话通话呈随机性)。但是,如果把电话号码倒序,数据在region层面的分布情况就大有改观。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式