1. 程式人生 > 其它 >中配置hbase_企業十大應用-Hbase-配置詳解

中配置hbase_企業十大應用-Hbase-配置詳解

技術標籤:中配置hbase

26f12346ca7d9d06c8d39824500d2484.png

版本:0.94-cdh4.2.1

hbase-site.xml配置

hbase.tmp.dir

  • 本地檔案系統tmp目錄,一般配置成local模式的設定一下,但是最好還是需要設定一下,因為很多檔案都會預設設定成它下面的
  • 線上配置
hbase.tmp.dir/mnt/dfs/11/hbase/hbase-tmp
  • 預設值:
  • ${java.io.tmpdir}/hbase-${user.name}
  • 寫到系統的/tmp目錄

hbase.rootdir

  • HBase叢集中所有RegionServer共享目錄,用來持久化HBase的資料,一般設定的是hdfs的檔案目錄,如hdfs://namenode.example.org:9000/hbase
  • 線上配置
hbase.rootdirhdfs://mycluster/hbase
  • 預設值:
  • ${hbase.tmp.dir}/hbase

hbase.cluster.distributed

  • 叢集的模式,分散式還是單機模式,如果設定成false的話,HBase程序和Zookeeper程序在同一個JVM程序。
  • 線上配置為true
  • 預設值:false

hbase.zookeeper.quorum

  • zookeeper叢集的URL配置,多個host中間用逗號(,)分割
  • 線上配置
hbase.zookeeper.quoruminspurXXX.xxx.xxx.org,inspurXXX.xxx.xxx.org,inspurXXX.xxx.xxx.org,inspurXXX.xxx.xxx.org,inspurXXX.xxx.xxx.org
  • 預設值: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/[email protected]
  • 預設:無

hbase.regionserver.keytab.file

  • regionserver keytab檔案路徑
  • 線上配置:/home/hadoop/etc/conf/hbase.keytab
  • 預設值:無

hbase.master.kerberos.principal

  • master的kerberos認證的主體名稱(由三部分組成:服務或使用者名稱稱、例項名稱以及域名)
  • 線上配置:hbase/[email protected]
  • 預設:無

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 HOMEexport 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 "