HBase不稳定因素分析

Hbase不稳定因素分析

  • 配置问题
    • 内存配置不正确
      目前hbase内存主要如下几个配置项:
      1)HBASE_HEAPSIZE HBase RegionServer是内存贪婪性的,按照经验判断至少8~16G内存,但也不宜过大,更多内存应该分配给HBASE_OFFHEAPSIZE
      2)HBASE_OFFHEAPSIZE Hbase offheap内存为非堆内存,主要在hbase缓存数据时使用,需要配合如下配置项使用,其中hbase.bucketcache.size的配置经验值为:HBASE_OFFHEAPSIZE*1024*0.8 MB


      hbase.bucketcache.ioengine
      offheap


      hbase.bucketcache.size
      HBASE_OFFHEAPSIZE*1024*0.8

    • 磁盘配置不正确
      太少的磁盘会导致集群的IO瓶颈,所以为了获取更好的IO性能,可以增加集群硬盘数量,但是不要加的太多,否则在几点或者磁盘出现故障时复制副本会很耗时。
  • 系统问题
    • 时间服务器不同步导致集群服务无法启动
      目前regionserver节点的时间和master的时间差距大于30000ms,就是30秒时无法启动服务。此问题可以有两种解决方法:
      1)定期同步各个节点的时间
      2)可以修改集群中配置,增大时间差值(如果业务上不依赖hbase时间戳机制,可以将此值设置很大)


      hbase.master.maxclockskew
      180000
      Time difference of regionserver from master

    • hostname映射不正确,导致集群服务无法启动
      http://hbase.apache.org/book.html#trouble.zookeeper
  • Hbase内部机制问题
    • hbase major compact导致集群不稳定
      major compact时会触发hbase集群密集的IO,此时会影响集群的读写性能,可能导致部分请求超时,如果对实时性要求比较高,可以禁止major compact,等集群空闲时手动执行。
    • hbase垃圾清理时间过长,导致超时
      此问题目前已经修改hbase-env.sh文件中配置的垃圾收集器算法
    • zookeeper sesstion timeout
      • 增大zookeeper超时时间(参考如下链接)
        1)修改 $ZOOKEEPER_HOME/conf/zoo.cfg中tickTime配置

        The number of milliseconds of each tick
        tickTime=6000

        具体配置描述可参考如下链接中的信息:
        http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#sc_configuration
        2)修改$HBASE_HOME/conf/hbase-site.xml中的配置:


        zookeeper.session.timeout
        1200000


        hbase.zookeeper.property.tickTime
        6000


        http://hbase.apache.org/book.html#trouble.rs.runtime.zkexpired
      • zookeeper比Hbase Master对延迟更加敏感,推荐给zookeeper配置专用的磁盘写数据。
  • 部署操作问题
    • 集群格式化时,hbase集群格式化不干净,导致服务无法启动

你可能感兴趣的:(Hbase,hbase,内存,数据)