12.2.4 HBase配置
关于HBase的所有配置参数,用户可以通过查看conf/hbase-default.xml文件获知。每个参数通过property节点来区分,其配置方式与Hadoop的相同:name字段表示参数名,value字段表示对应参数的值,description字段表示参数的描述信息,相当于注释的作用。
配置参数的格式如下所示:
<configuration>
……
<property>
<name>配置参数</name>
<value>配置参数对应取值</value>
<description>描述信息</description>
</property>
……
</configuration>
因此,如果要对HBase进行配置,修改conf/hbase-default.xml文件或conf/hbase-site.xml文件中的property节点即可(被<property></peoperty>所包含的部分)。
限于篇幅,下面我们只针对比较重要的几个参数做简单的介绍。
(1)hbase. client.write.buffer
通过此参数设置写入缓冲区的数据大小,以字节为单位,默认写入缓冲区的数据大小为2MB。服务器通过此缓冲区可以加快处理的速度,但是此值如果设置得过大势必加重服务器的负担,因此一定要根据实际情况进行设置。
(2)hbase. master.meta.thread.rescanfrequency
Haster会扫描ROOT和META表的时间间隔,以毫秒为单位,默认值为60 000毫秒。此值不宜设置得过小,尤其当存储数据较多的时候,否则频繁地扫描ROOT和META表将严重影响系统的性能。
(3)hbase. regionserver.handler.count
客户端向服务器请求服务时,服务器先将客户端的请求连接放入一个队列中,然后服务器通过轮询的方式对其进行处理。这样每一个请求就会产生一个线程。此值要根据实际情况设置,建议设置得大一些。该值指出RegionServer上等待处理请求的实例数目,默认为10。在服务器端写数据缓存所消耗的内存大小为:hbase.client.write.buffer*hbase.regionserver.handler.count。
(4)hbase. hregion.max.filesize
通过此参数可以设置Hregion中Stove文件的最大值,以字节为单位。当表中的列族超过此值时,文件将被分割。其默认大小为256MB。
(5)hfile. block.cache.size
该参数表示HFile/StoreFile缓存所占Java虚拟机堆大小的百分比,默认值为0.2,即20%。将其值设置为0表示禁用此选项。
(6)hbase. regionserver.global.memstore.upperLimit
该参数表示在Region服务器中所有的memstore所占用的Java虚拟机比例的最大值,默认值为0.4,即40%。当memstore所占用的空间超过此值时,更新操作将被阻塞,并且所有的内容将被强制写出。
(7)hbase. hregion.memstore.flush.size
如果memstore缓存的内容大小超过此参数所设置的值,那么它将被写到磁盘上。该参数的默认值为64MB。
另外,在配置文档中还有很多关于ZooKeeper配置的参数,如zookeeper.session.timeoout、以hbase.zookeeper开头的参数以及以hbase.zookeeper.property开头的一些参数。限于篇幅这里不再赘述,关于ZooKeeper更详细的配置见第15章。