转载: http://www.cnblogs.com/nexiyi/p/hbase_config_94.html
版本: 0.94-cdh4.2.1
hbase-site.xml 配置
hbase.tmp.dir
本地文件系统 tmp 目录, 一般配置成 local 模式的设置一下, 但是最好还是需要设置一下, 因为很多文件都会默认设置成它下面的
线上配置
- <property>
- <name>hbase.tmp.dir</name>
- <value>/mnt/dfs/11/hbase/hbase-tmp</value>
- </property>
默认值:
${java.io.tmpdir}/hbase-${user.name}
写到系统的 / tmp 目录
hbase.rootdir
HBase 集群中所有 RegionServer 共享目录, 用来持久化 HBase 的数据, 一般设置的是 hdfs 的文件目录, 如 hdfs://namenode.example.org:9000/hbase
线上配置
- <property>
- <name>hbase.rootdir</name>
- <value>hdfs://mycluster/hbase</value>
- </property>
默认值:
- ${
- hbase.tmp.dir
- }/hbase
- hbase.cluster.distributed
集群的模式, 分布式还是单机模式, 如果设置成 false 的话, HBase 进程和 Zookeeper 进程在同一个 JVM 进程.
线上配置为 true
默认值: false
hbase.zookeeper.quorum
zookeeper 集群的 URL 配置, 多个 host 中间用逗号 (,) 分割
线上配置
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>inspurXXX.xxx.xxx.org,inspurXXX.xxx.xxx.org,inspurXXX.xxx.xxx.org,inspurXXX.xxx.xxx.org,inspurXXX.xxx.xxx.org</value>
- </property>
默认值: localhost
hbase.zookeeper.property.dataDir
ZooKeeper 的 zoo.conf 中的配置. 快照的存储位置
线上配置:/home/hadoop/zookeeperData
默认值:${hbase.tmp.dir}/zookeeper
zookeeper.session.timeout
客户端与 zk 连接超时时间
线上配置: 1200000(20min)
默认值: 180000(3min)
hbase.zookeeper.property.tickTime
Client 端与 zk 发送心跳的时间间隔
线上配置: 6000(6s)
默认值: 6000
hbase.security.authentication
HBase 集群安全认证机制, 目前的版本只支持 kerberos 安全认证.
线上配置: kerberos
默认值: 空
hbase.security.authorization
HBase 是否开启安全授权机制
线上配置: true
默认值: false
hbase.regionserver.kerberos.principal
regionserver 的 kerberos 认证的主体名称(由三部分组成: 服务或用户名称, 实例名称以及域名)
线上配置: hbase/_HOST@HADOOP.xxx.xxx.COM
默认: 无
hbase.regionserver.keytab.file
regionserver keytab 文件路径
线上配置:/home/hadoop/etc/conf/hbase.keytab
默认值: 无
hbase.master.kerberos.principal
master 的 kerberos 认证的主体名称(由三部分组成: 服务或用户名称, 实例名称以及域名)
线上配置: hbase/_HOST@HADOOP.xxx.xxx.COM
默认: 无
hbase.master.keytab.file
master keytab 文件路径
线上配置:/home/hadoop/etc/conf/hbase.keytab
默认值: 无
hbase.regionserver.handler.count
regionserver 处理 IO 请求的线程数
线上配置: 50
默认配置: 10
hbase.regionserver.global.memstore.upperLimit
RegionServer 进程 block 进行 flush 触发条件: 该节点上所有 region 的 memstore 之和达到 upperLimit*heapsize
线上配置: 0.45
默认配置: 0.4
hbase.regionserver.global.memstore.lowerLimit
RegionServer 进程触发 flush 的一个条件: 该节点上所有 region 的 memstore 之和达到 lowerLimit*heapsize
线上配置: 0.4
默认配置: 0.35
hbase.client.write.buffer
客户端写 buffer, 设置 autoFlush 为 false 时, 当客户端写满 buffer 才 flush
线上配置: 8388608(8M)
默认配置: 2097152(2M)
hbase.hregion.max.filesize
单个 ColumnFamily 的 region 大小, 若按照 ConstantSizeRegionSplitPolicy 策略, 超过设置的该值则自动 split
线上配置: 107374182400(100G)
默认配置: 21474836480(20G)
hbase.hregion.memstore.block.multiplier
超过 memstore 大小的倍数达到该值则 block 所有写入请求, 自我保护
线上配置: 8(内存够大可以适当调大一些, 出现这种情况需要客户端做调整)
默认配置: 2
hbase.hregion.memstore.flush.size
memstore 大小, 当达到该值则会 flush 到外存设备
线上配置: 104857600(100M)
默认值: 134217728(128M)
hbase.hregion.memstore.mslab.enabled
是否开启 mslab 方案, 减少因内存碎片导致的 Full GC, 提高整体性能
线上配置: true
默认配置: true
hbase.regionserver.maxlogs
regionserver 的 hlog 数量
线上配置: 128
默认配置: 32
hbase.regionserver.hlog.blocksize
hlog 大小上限, 达到该值则 block, 进行 roll 掉
线上配置: 536870912(512M)
默认配置: hdfs 配置的 block 大小
hbase.hstore.compaction.min
进入 minor compact 队列的 storefiles 最小个数
线上配置: 10
默认配置: 3
hbase.hstore.compaction.max
单次 minor compact 最多的文件个数
线上配置: 30
默认配置: 10
hbase.hstore.blockingStoreFiles
当某一个 region 的 storefile 个数达到该值则 block 写入, 等待 compact
线上配置: 100(生产环境可以设置得很大)
默认配置: 7
hbase.hstore.blockingWaitTime
block 的等待时间
线上配置: 90000(90s)
默认配置: 90000(90s)
hbase.hregion.majorcompaction
触发 major compact 的周期
线上配置: 0(关掉 major compact)
默认配置: 86400000(1d)
hbase.regionserver.thread.compaction.large
large compact 线程池的线程个数
线上配置: 5
默认配置: 1
hbase.regionserver.thread.compaction.small
small compact 线程池的线程个数
线上配置: 5
默认配置: 1
hbase.regionserver.thread.compaction.throttle
compact(major 和 minor)请求进入 large 和 small compact 线程池的临界点
线上配置: 10737418240(10G)
默认配置: 2 * this.minFilesToCompact * this.region.memstoreFlushSize
hbase.hstore.compaction.max.size
minor compact 队列中 storefile 文件最大 size
线上配置: 21474836480(20G)
默认配置: Long.MAX_VALUE
hbase.rpc.timeout
RPC 请求 timeout 时间
线上配置: 300000(5min)
默认配置: 60000(10s)
hbase.regionserver.region.split.policy
split 操作默认的策略
线上配置: org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy(采取老的策略, 自己控制 split)
默认配置: org.apache.hadoop.hbase.regionserver.IncreasingToUpperBoundRegionSplitPolicy(在 region 没有达到 maxFileSize 的前提下, 如果 fileSize 达到 regionCount * regionCount * flushSize 则进行 split 操作)
hbase.regionserver.regionSplitLimit
单台 RegionServer 上 region 数上限
线上配置: 150
默认配置: 2147483647
hbase-env.sh 配置
指定系统运行环境
- export JAVA_HOME=/usr/lib/jvm/java-6-sun/ #JDK HOME
- export HBASE_HOME=/home/hadoop/cdh4/hbase-0.94.2-cdh4.2.1 # HBase 安装目录
- export HBASE_LOG_DIR=/mnt/dfs/11/hbase/hbase-logs #日志输出路径
JVM 参数调优
- export HBASE_OPTS="-verbose:gc -XX:+PrintGCDetails -Xloggc:${HBASE_LOG_DIR}/hbase-gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime \
- -server -Xmx20480m -Xms20480m -Xmn10240m -Xss256k -XX:SurvivorRatio=4 -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=15 -XX:ParallelGCThreads=16 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSMaxAbortablePrecleanTime=5000 "
来源: http://www.bubuko.com/infodetail-2979034.html