永发信息网

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

答案:1  悬赏:10  手机版
解决时间 2021-11-25 06:33
  • 提问者网友:欺烟
  • 2021-11-24 10:52
如果hbase表有某个列族有40个字段,怎么能提高写的速度
最佳答案
  • 五星知识达人网友:平生事
  • 2021-11-24 11:19
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层面的分布情况就大有改观。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯