第8章 基本性能调整

本章内容:

  • 设置Hadoop分散磁盘I/O
  • 使用网络拓扑结构脚本使Hadoop可感知机架
  • noatimenodiratime方式装载磁盘
  • vm.swappiness 设为0以避免交换
  • Java GC和HBase堆的设置
  • 使用压缩
  • 管理合并
  • 管理区域分割

性能是HBase集群最吸引人的行为特性之一。对于管理员来说,性能调整是一项具有挑战性的工作,因为它不仅需要对HBase有深刻的理解,而且还要对Hadoop、Java虚拟机的垃圾回收JVM GC)以及操作系统的那些重要调节参数都有深刻的理解。

图8-1所示的就是一个典型HBase集群的结构。

图8-1 典型HBase集群的结构

集群通常包含如下几个组件:ZooKeeper集群、HBase主节点、区域服务器、Hadoop分布式文件系统(HDFS)和HBase客户端。

ZooKeeper集群为整个HBase集群提供了协调服务,负责处理主节点选择、根区域服务器查找、节点注册等事务。主节点并不承担什么繁重的任务。它的任务是进行区域分配及故障转移、日志分割和负载均衡。区域服务器负责存储具体的区域:处理对于所托管区域的I/O请求、将内存中的数据存储(MemStore)写到HDFS中、对区域进行分割与合并。HDFS是HBase存储数据文件(StoreFile)和预写日志(WAL)的地方。我们通常会让HBase区域服务器与HDFS的DataNode运行在同一台机器上,但这也不是必须的。

HBase客户端提供了可访问HBase集群的API。要与集群通信,客户端必须先找到保存了指定行键范围数据的区域服务器,这就是所谓的“区域查找”(region ...

Get HBase管理指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.