hadoop 2.2。X配置参数说明:hbase-site.xml

& lt; !——我的2013年8月19日12:45:45祝辞

, & lt; configuration>

,,& lt; property>

,,& lt; name> hbase.rpc.engine

,,& lt; value> org.apache.hadoop.hbase.ipc.WritableRpcEngine

, & lt;/property>

,,& lt; property>

,,& lt; name> hbase.hregion.max.filesize

,,& lt; value> 10737418240 & lt;/value>

& lt; !——默认值:256:说明:在当前ReigonServer上单个Reigon的最大存储空间,单个地区超过该值时,这个地区会被自动分裂成更小的地区。——在

, & lt;/property>

,,& lt; property>

,,& lt; name> hbase.rootdir

,,& lt; value> hdfs://hadoop01:8020/应用程序/hbase/data

, & lt;/property>

,,& lt; property>

,,& lt; name> hfile.block.cache.size

,,& lt; value> 0.40 & lt;/value>

& lt; !——默认值:0.2:说明:storefile的读缓存占用堆的大小百分比,0.2表示20%。该值直接影响数据读的性能

调优:当然是越大越好,如果写比读少很多,开到0.4 - -0.5也没问题。如果读写较均衡,0.3左右。如果写比读多,果断默认吧。

设置这个值的时,同时要参考hbase.regionserver.global.memstore。upperLimit,该值是memstore占堆的最大百分比,

两个参数一个影响读,一个影响写。如果两值加起来超过80 - 90%,会有伯父的风险,谨慎设置。——在

, & lt;/property>

,,& lt; property>

,,& lt; name> hbase.regionserver.global.memstore.upperLimit

,,& lt; value> 0.4 & lt;/value>

& lt; !——默认值:0.4/0.35 upperlimit说明:hbase.hregion.memstore.flush。尺寸这个参数的作用是当单个地区内所有的memstore大小总和超过指定值时,刷新该地区的所有memstore。

RegionServer的冲洗是通过将请求添加一个队列,模拟生产消费模式来异步处理的。那这里就有一个问题,当队列来不及消费,产生大量积压请求时,可能会导致内存陡增,最坏的情况是触发伯父。

,这个参数的作用是防止内存占用过大,当ReigonServer内所有地区的memstores所占用内存总和达到堆的40%时,HBase会强制块所有的更新并冲洗这些地区以释放所有memstore占用的内存。——在

, & lt;/property>

,,& lt; property>

,,& lt; name> hbase.regionserver.global.memstore.lowerLimit

,,& lt; value> 0.38 & lt;/value>

& lt; !——lowerLimit说明:同upperLimit,只不过lowerLimit在所有地区的memstores所占用内存达到堆的35%时,不冲洗所有的memstore。它会找一个memstore内存占用最大的地区,做个别冲水,此时写更新还是会被block.lowerLimit算是一个在所有地区强制平导致性能降低前的补救措施。

在日志中,表现为“* *内存刷新线程醒来高于较低的水。"

调优:这是一个堆内存保护参数,默认值已经能适用大多数场景。

,,参数调整会影响读写,如果写的压力大导致经常超过这个阀值,则调小读缓存hfile.block.cache。堆大小增大该阀值,或者余量较多时,不修改读缓存大小。

,,如果在高压情况下,也没超过这个阀值,那么建议你适当调小这个阀值再做压测,确保触发次数不要太多,然后还有较多堆余量的时候,调大hfile.block.cache.size提高读性能。——在

, & lt;/property>

, & lt; property>

,,& lt; name> hbase.hregion.memstore.block.multiplier

,,& lt; value> 2 & lt;/value>

& lt; !——默认值:2:说明:当一个区域里的memstore占用内存大小超过hbase.hregion.memstore.flush。大小两倍的大小时,阻止该地区的所有请求,进行冲洗,释放内存。

调优:这个参数的默认值还是比较靠谱的。如果你预估你的正常应用场景(不包括异常)不会出现突发写或写的量可控,那么保持默认值即可。

如果正常情况下,你的写请求量就会经常暴长到正常的几倍,那么你应该调大这个倍数并调整其他参数值,比如hfile.block.cache.size和hbase.regionserver.global.memstore。upperLimit/lowerLimit,以预留更多内存,防止HBase服务器OOM.——在

, & lt;/property>

,,& lt; property>

,,& lt; name> dfs.support.append

,,& lt; value> true

, & lt;/property>

,,& lt; property>

,,& lt; name> hbase.zookeeper.quorum

,,& lt; value> hadoop04、hadoop05 hadoop06, hadoop07

, & lt;/property>

,,& lt; property>

,,& lt; name> zookeeper.session.timeout

,,& lt; value> 60000 & lt;/value>

& lt; !——默认:180000:管理员会话超时时间,单位是毫秒——在

, & lt;/property>

,,& lt; property>

,,& lt; name> hbase.superuser

hadoop 2.2。X配置参数说明:hbase-site.xml