Hbase介紹三(配置文件詳解)

該文檔是用Hbase默認(rèn)配置文件生成的,文件源是Hbase-default.xml

hbase.rootdir

這個(gè)目錄是region server的共享目錄,用來(lái)持久化HBase。URL需要是'完全正確'的,還要包含文件系統(tǒng)的scheme。例如,要表示hdfs中的'/hbase'目錄,namenode 運(yùn)行在namenode.example.org的9090端口。則需要設(shè)置為hdfs://namenode.example.org:9000/hbase。默認(rèn)情況下HBase是寫(xiě)到/tmp的。不改這個(gè)配置,數(shù)據(jù)會(huì)在重啟的時(shí)候丟失。

默認(rèn):file:///tmp/hbase-${user.name}/hbase

hbase.master.port

HBase的Master的端口.

默認(rèn):60000

hbase.cluster.distributed

HBase的運(yùn)行模式。false是單機(jī)模式,true是分布式模式。若為false,HBase和Zookeeper會(huì)運(yùn)行在同一個(gè)JVM里面。

默認(rèn):false

hbase.tmp.dir

本地文件系統(tǒng)的臨時(shí)文件夾。可以修改到一個(gè)更為持久的目錄上。(/tmp會(huì)在重啟時(shí)清楚)

默認(rèn):${Java.io.tmpdir}/hbase-${user.name}

hbase.local.dir

作為本地存儲(chǔ),位于本地文件系統(tǒng)的路徑。

默認(rèn):?${hbase.tmp.dir}/local/

hbase.master.info.port

HBase Master web 界面端口. 設(shè)置為-1 意味著你不想讓他運(yùn)行。

0.98 版本以后默認(rèn):16010 ? 以前是 60010

hbase.master.info.bindAddress

HBase Master web 界面綁定的端口

默認(rèn):0.0.0.0

hbase.client.write.buffer

HTable客戶端的寫(xiě)緩沖的默認(rèn)大小。這個(gè)值越大,需要消耗的內(nèi)存越大。因?yàn)榫彌_在客戶端和服務(wù)端都有實(shí)例,所以需要消耗客戶端和服務(wù)端兩個(gè)地方的內(nèi)存。得到的好處是,可以減少RPC的次數(shù)。可以這樣估算服務(wù)器端被占用的內(nèi)存: hbase.client.write.buffer * hbase.regionserver.handler.count

默認(rèn):2097152

hbase.regionserver.port

HBase RegionServer綁定的端口

0.98 以前默認(rèn):60020以后默認(rèn)是:16020

hbase.regionserver.info.port

HBase RegionServer web 界面綁定的端口 設(shè)置為 -1 意味這你不想與運(yùn)行 RegionServer 界面.

0.98 以前默認(rèn):60030以后默認(rèn)是:16030

hbase.regionserver.info.port.auto

Master或RegionServer是否要?jiǎng)討B(tài)搜一個(gè)可以用的端口來(lái)綁定界面。當(dāng)hbase.regionserver.info.port已經(jīng)被占用的時(shí)候,可以搜一個(gè)空閑的端口綁定。這個(gè)功能在測(cè)試的時(shí)候很有用。默認(rèn)關(guān)閉。

默認(rèn):false

hbase.regionserver.info.bindAddress

HBase RegionServer web 界面的IP地址

默認(rèn):0.0.0.0

hbase.regionserver.class

RegionServer 使用的接口。客戶端打開(kāi)代理來(lái)連接region server的時(shí)候會(huì)使用到。

默認(rèn):org.apache.Hadoop.hbase.ipc.HRegionInterface

hbase.client.pause

通常的客戶端暫停時(shí)間。最多的用法是客戶端在重試前的等待時(shí)間。比如失敗的get操作和region查詢操作等都很可能用到。

默認(rèn):1000

hbase.client.retries.number

最大重試次數(shù)。所有需重試操作的最大值。例如從root region服務(wù)器獲取root region,Get單元值,行Update操作等等。這是最大重試錯(cuò)誤的值。 ?Default: 10.

0.98 以前默認(rèn):10以后默認(rèn)是:35

hbase.bulkload.retries.number

最大重試次數(shù)。 原子批加載嘗試的迭代最大次數(shù)。 0 永不放棄。默認(rèn): 0.

默認(rèn):?0

hbase.client.scanner.caching

當(dāng)調(diào)用Scanner的next方法,而值又不在緩存里的時(shí)候,從服務(wù)端一次獲取的行數(shù)。越大的值意味著Scanner會(huì)快一些,但是會(huì)占用更多的內(nèi)存。當(dāng)緩沖被占滿的時(shí)候,next方法調(diào)用會(huì)越來(lái)越慢。慢到一定程度,可能會(huì)導(dǎo)致超時(shí)。例如超過(guò)了hbase.regionserver.lease.period。

默認(rèn): 100

hbase.client.keyvalue.maxsize

一個(gè)KeyValue實(shí)例的最大size.這個(gè)是用來(lái)設(shè)置存儲(chǔ)文件中的單個(gè)entry的大小上界。因?yàn)橐粋€(gè)KeyValue是不能分割的,所以可以避免因?yàn)閿?shù)據(jù)過(guò)大導(dǎo)致region不可分割。明智的做法是把它設(shè)為可以被最大region size整除的數(shù)。如果設(shè)置為0或者更小,就會(huì)禁用這個(gè)檢查。默認(rèn)10MB。

默認(rèn):10485760

hbase.regionserver.lease.period

客戶端租用HRegion server 期限,即超時(shí)閥值。單位是毫秒。默認(rèn)情況下,客戶端必須在這個(gè)時(shí)間內(nèi)發(fā)一條信息,否則視為死掉。

默認(rèn):60000

hbase.regionserver.handler.count

RegionServers受理的RPC Server實(shí)例數(shù)量。對(duì)于Master來(lái)說(shuō),這個(gè)屬性是Master受理的handler數(shù)量

默認(rèn):10

hbase.regionserver.msginterval

RegionServer 發(fā)消息給 Master 時(shí)間間隔,單位是毫秒

默認(rèn):3000

hbase.regionserver.optionallogflushinterval

將Hlog同步到HDFS的間隔。如果Hlog沒(méi)有積累到一定的數(shù)量,到了時(shí)間,也會(huì)觸發(fā)同步。默認(rèn)是1秒,單位毫秒。

默認(rèn):1000

hbase.regionserver.regionSplitLimit

region的數(shù)量到了這個(gè)值后就不會(huì)在分裂了。這不是一個(gè)region數(shù)量的硬性限制。但是起到了一定指導(dǎo)性的作用,到了這個(gè)值就該停止分裂了。默認(rèn)是MAX_INT.就是說(shuō)不阻止分裂。

默認(rèn):2147483647

hbase.regionserver.logroll.period

提交commit log的間隔,不管有沒(méi)有寫(xiě)足夠的值。

默認(rèn):3600000

hbase.regionserver.hlog.reader.impl

HLog file reader 的實(shí)現(xiàn).

默認(rèn):org.apache.Hadoop.hbase.regionserver.wal.SequenceFileLogReader

hbase.regionserver.hlog.writer.impl

HLog file writer 的實(shí)現(xiàn).

默認(rèn):org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter

hbase.regionserver.nbreservationblocks

儲(chǔ)備的內(nèi)存block的數(shù)量(譯者注:就像石油儲(chǔ)備一樣)。當(dāng)發(fā)生out of memory 異常的時(shí)候,我們可以用這些內(nèi)存在RegionServer停止之前做清理操作。

默認(rèn):4

hbase.zookeeper.dns.interface

當(dāng)使用DNS的時(shí)候,Zookeeper用來(lái)上報(bào)的IP地址的網(wǎng)絡(luò)接口名字。

默認(rèn):default

hbase.zookeeper.dns.nameserver

當(dāng)使用DNS的時(shí)候,Zookeepr使用的DNS的域名或者IP 地址,Zookeeper用它來(lái)確定和master用來(lái)進(jìn)行通訊的域名.

默認(rèn):default

hbase.regionserver.dns.interface

當(dāng)使用DNS的時(shí)候,RegionServer用來(lái)上報(bào)的IP地址的網(wǎng)絡(luò)接口名字。

默認(rèn):default

hbase.regionserver.dns.nameserver

當(dāng)使用DNS的時(shí)候,RegionServer使用的DNS的域名或者IP 地址,RegionServer用它來(lái)確定和master用來(lái)進(jìn)行通訊的域名.

默認(rèn):default

hbase.master.dns.interface

當(dāng)使用DNS的時(shí)候,Master用來(lái)上報(bào)的IP地址的網(wǎng)絡(luò)接口名字。

默認(rèn):default

hbase.master.dns.nameserver

當(dāng)使用DNS的時(shí)候,RegionServer使用的DNS的域名或者IP 地址,Master用它來(lái)確定用來(lái)進(jìn)行通訊的域名.

默認(rèn):default

hbase.balancer.period

Master執(zhí)行region balancer的間隔。

默認(rèn):300000

hbase.regions.slop

當(dāng)任一區(qū)域服務(wù)器有average + (average * slop)個(gè)分區(qū),將會(huì)執(zhí)行重新均衡。默認(rèn) 20% slop .

默認(rèn):0.2

hbase.master.logcleaner.ttl

Hlog存在于.oldlogdir 文件夾的最長(zhǎng)時(shí)間, 超過(guò)了就會(huì)被 Master 的線程清理掉.

默認(rèn):600000

hbase.master.logcleaner.plugins

LogsCleaner服務(wù)會(huì)執(zhí)行的一組LogCleanerDelegat。值用逗號(hào)間隔的文本表示。這些WAL/HLog cleaners會(huì)按順序調(diào)用。可以把先調(diào)用的放在前面。你可以實(shí)現(xiàn)自己的LogCleanerDelegat,加到Classpath下,然后在這里寫(xiě)下類(lèi)的全稱(chēng)。一般都是加在默認(rèn)值的前面。

默認(rèn):org.apache.hadoop.hbase.master.TimeToLiveLogCleaner

hbase.regionserver.global.memstore.upperLimit

單個(gè)region server的全部memtores的最大值。超過(guò)這個(gè)值,一個(gè)新的update操作會(huì)被掛起,強(qiáng)制執(zhí)行flush操作。

默認(rèn):0.4

hbase.regionserver.global.memstore.lowerLimit

當(dāng)強(qiáng)制執(zhí)行flush操作的時(shí)候,當(dāng)?shù)陀谶@個(gè)值的時(shí)候,flush會(huì)停止。默認(rèn)是堆大小的 35% . 如果這個(gè)值和 hbase.regionserver.global.memstore.upperLimit 相同就意味著當(dāng)update操作因?yàn)閮?nèi)存限制被掛起時(shí),會(huì)盡量少的執(zhí)行flush(譯者注:一旦執(zhí)行flush,值就會(huì)比下限要低,不再執(zhí)行)

默認(rèn):0.35

hbase.server.thread.wakefrequency

service工作的sleep間隔,單位毫秒。 可以作為service線程的sleep間隔,比如log roller.

默認(rèn):10000

hbase.server.versionfile.writeattempts

退出前嘗試寫(xiě)版本文件的次數(shù)。每次嘗試由 hbase.server.thread.wakefrequency 毫秒數(shù)間隔。

默認(rèn):?3

hbase.hregion.memstore.flush.size

當(dāng)memstore的大小超過(guò)這個(gè)值的時(shí)候,會(huì)flush到磁盤(pán)。這個(gè)值被一個(gè)線程每隔hbase.server.thread.wakefrequency檢查一下。

默認(rèn):134217728

hbase.hregion.preclose.flush.size

當(dāng)一個(gè)region中的memstore的大小大于這個(gè)值的時(shí)候,我們又觸發(fā)了close.會(huì)先運(yùn)行“pre-flush”操作,清理這個(gè)需要關(guān)閉的memstore,然后將這個(gè)region下線。當(dāng)一個(gè)region下線了,我們無(wú)法再進(jìn)行任何寫(xiě)操作。如果一個(gè)memstore很大的時(shí)候,flush操作會(huì)消耗很多時(shí)間。"pre-flush"操作意味著在region下線之前,會(huì)先把memstore清空。這樣在最終執(zhí)行close操作的時(shí)候,flush操作會(huì)很快。

默認(rèn):5242880

hbase.hregion.memstore.block.multiplier

如果memstore有hbase.hregion.memstore.block.multiplier倍數(shù)的hbase.hregion.flush.size的大小,就會(huì)阻塞update操作。這是為了預(yù)防在update高峰期會(huì)導(dǎo)致的失控。如果不設(shè)上界,flush的時(shí)候會(huì)花很長(zhǎng)的時(shí)間來(lái)合并或者分割,最壞的情況就是引發(fā)out of memory異常。(譯者注:內(nèi)存操作的速度和磁盤(pán)不匹配,需要等一等。原文似乎有誤)

默認(rèn):2

hbase.hregion.memstore.mslab.enabled

體驗(yàn)特性:?jiǎn)⒂胢emStore分配本地緩沖區(qū)。這個(gè)特性是為了防止在大量寫(xiě)負(fù)載的時(shí)候堆的碎片過(guò)多。這可以減少GC操作的頻率。(GC有可能會(huì)Stop the world)(譯者注:實(shí)現(xiàn)的原理相當(dāng)于預(yù)分配內(nèi)存,而不是每一個(gè)值都要從堆里分配)

默認(rèn):true

hbase.hregion.max.filesize

最大HStoreFile大小。若某個(gè)列族的HStoreFile增長(zhǎng)達(dá)到這個(gè)值,這個(gè)Hegion會(huì)被切割成兩個(gè)。 默認(rèn): 10G.

默認(rèn):10737418240

hbase.hstore.compactionThreshold

當(dāng)一個(gè)HStore含有多于這個(gè)值的HStoreFiles(每一個(gè)memstore flush產(chǎn)生一個(gè)HStoreFile)的時(shí)候,會(huì)執(zhí)行一個(gè)合并操作,把這HStoreFiles寫(xiě)成一個(gè)。這個(gè)值越大,需要合并的時(shí)間就越長(zhǎng)。

默認(rèn):3

hbase.hstore.blockingStoreFiles

當(dāng)一個(gè)HStore含有多于這個(gè)值的HStoreFiles(每一個(gè)memstore flush產(chǎn)生一個(gè)HStoreFile)的時(shí)候,會(huì)執(zhí)行一個(gè)合并操作,update會(huì)阻塞直到合并完成,直到超過(guò)了hbase.hstore.blockingWaitTime的值

默認(rèn):7

hbase.hstore.blockingWaitTime

hbase.hstore.blockingStoreFiles所限制的StoreFile數(shù)量會(huì)導(dǎo)致update阻塞,這個(gè)時(shí)間是來(lái)限制阻塞時(shí)間的。當(dāng)超過(guò)了這個(gè)時(shí)間,HRegion會(huì)停止阻塞update操作,不過(guò)合并還有沒(méi)有完成。默認(rèn)為90s.

默認(rèn):90000

hbase.hstore.compaction.max

每個(gè)“小”合并的HStoreFiles最大數(shù)量。

默認(rèn):10

hbase.hregion.majorcompaction

一個(gè)Region中的所有HStoreFile的major compactions的時(shí)間間隔。默認(rèn)是1天。 設(shè)置為0就是禁用這個(gè)功能。

默認(rèn):86400000

hbase.storescanner.parallel.seek.enable

允許 StoreFileScanner 并行搜索 StoreScanner, 一個(gè)在特定條件下降低延遲的特性。

默認(rèn):?false

hbase.storescanner.parallel.seek.threads

并行搜索特性打開(kāi)后,默認(rèn)線程池大小。

默認(rèn):?10

hbase.mapreduce.hfileoutputformat.blocksize

MapReduce中HFileOutputFormat可以寫(xiě) storefiles/hfiles. 這個(gè)值是hfile的blocksize的最小值。通常在HBase寫(xiě)Hfile的時(shí)候,bloocksize是由table schema(HColumnDescriptor)決定的,但是在mapreduce寫(xiě)的時(shí)候,我們無(wú)法獲取schema中blocksize。這個(gè)值越小,你的索引就越大,你隨機(jī)訪問(wèn)需要獲取的數(shù)據(jù)就越小。如果你的cell都很小,而且你需要更快的隨機(jī)訪問(wèn),可以把這個(gè)值調(diào)低。

默認(rèn):65536

hfile.block.cache.size

分配給HFile/StoreFile的block cache占最大堆(-Xmx setting)的比例。默認(rèn)0.25意思是分配25%,設(shè)置為0就是禁用,但不推薦。

默認(rèn):0.25

hbase.hash.type

哈希函數(shù)使用的哈希算法。可以選擇兩個(gè)值:: murmur (MurmurHash) 和 jenkins (JenkinsHash). 這個(gè)哈希是給 bloom filters用的.

默認(rèn):murmur

hfile.block.index.cacheonwrite

在index寫(xiě)入的時(shí)候允許put無(wú)根(non-root)的多級(jí)索引塊到block cache里,默認(rèn)是false;

hfile.index.block.max.size:在多級(jí)索引的樹(shù)形結(jié)構(gòu)里,如果任何一層的block index達(dá)到這個(gè)配置大小,則block寫(xiě)出,同時(shí)

替換上新的block,默認(rèn)是131072;

hfile.format.version

新文件的HFile 格式版本,設(shè)置為1來(lái)測(cè)試向后兼容,默認(rèn)是2;

io.storefile.bloom.block.size

一個(gè)聯(lián)合布隆過(guò)濾器的單一塊(chunk)的大小,這個(gè)值是一個(gè)逼近值,默認(rèn)是131072;

hfile.block.bloom.cacheonwrite

對(duì)于組合布隆過(guò)濾器的內(nèi)聯(lián)block開(kāi)啟cache-on-write,默認(rèn)是false

hbase.rs.cacheblocksonwrite

當(dāng)一個(gè)HFile block完成時(shí)是否寫(xiě)入block cache,默認(rèn)是false

hbase.rpc.server.engine

hbase 做rpc server的調(diào)度管理類(lèi),實(shí)現(xiàn)自org.apache.hadoop.ipc.RpcServerEngine,默認(rèn)是org.apache.hadoop.hbase.ipc.ProtobufRpcServerEngine

hbase.ipc.client.tcpnodelay

默認(rèn)是true,具體就是在tcp socket連接時(shí)設(shè)置 no delay

hbase.master.keytab.file

HMaster server驗(yàn)證登錄使用的kerberos keytab 文件路徑。(譯者注:HBase使用Kerberos實(shí)現(xiàn)安全)

默認(rèn):

hbase.master.kerberos.principal

例如. "hbase/_HOST@EXAMPLE.COM". HMaster運(yùn)行需要使用 kerberos principal name. principal name 可以在: user/hostname@DOMAIN 中獲取. 如果 "_HOST" 被用做hostname portion,需要使用實(shí)際運(yùn)行的hostname來(lái)替代它。

默認(rèn):

hbase.regionserver.keytab.file

HRegionServer驗(yàn)證登錄使用的kerberos keytab 文件路徑。

默認(rèn):

hbase.regionserver.kerberos.principal

例如. "hbase/_HOST@EXAMPLE.COM". HRegionServer運(yùn)行需要使用 kerberos principal name. principal name 可以在: user/hostname@DOMAIN 中獲取. 如果 "_HOST" 被用做hostname portion,需要使用實(shí)際運(yùn)行的hostname來(lái)替代它。在這個(gè)文件中必須要有一個(gè)entry來(lái)描述 hbase.regionserver.keytab.file

默認(rèn):

hadoop.policy.file

RPC服務(wù)器做權(quán)限認(rèn)證時(shí)需要的安全策略配置文件,在Hbase security開(kāi)啟后使用,默認(rèn)是habse-policy.xml;

hbase.superuser

Hbase security 開(kāi)啟后的超級(jí)用戶配置,一系列由逗號(hào)隔開(kāi)的user或者group;

hbase.auth.key.update.interval

Hbase security開(kāi)啟后服務(wù)端更新認(rèn)證key的間隔時(shí)間:默認(rèn)是86400000毫秒;

hbase.auth.token.max.lifetime

Hbase security開(kāi)啟后,認(rèn)證token下發(fā)后的生存周期,默認(rèn)是604800000毫秒

zookeeper.session.timeout

ZooKeeper 會(huì)話超時(shí).HBase把這個(gè)值傳遞改zk集群,向他推薦一個(gè)會(huì)話的最大超時(shí)時(shí)間。詳見(jiàn)http://hadoop.apache.org/zookeeper/docs/current/zookeeperProgrammers.html#ch_zkSessions "The client sends a requested timeout, the server responds with the timeout that it can give the client. "。 單位是毫秒

默認(rèn):180000

zookeeper.znode.parent

ZooKeeper中的HBase的根ZNode。所有的HBase的ZooKeeper會(huì)用這個(gè)目錄配置相對(duì)路徑。默認(rèn)情況下,所有的HBase的ZooKeeper文件路徑是用相對(duì)路徑,所以他們會(huì)都去這個(gè)目錄下面。

默認(rèn):/hbase

zookeeper.znode.rootserver

ZNode 保存的 根region的路徑. 這個(gè)值是由Master來(lái)寫(xiě),client和regionserver 來(lái)讀的。如果設(shè)為一個(gè)相對(duì)地址,父目錄就是 ${zookeeper.znode.parent}.默認(rèn)情形下,意味著根region的路徑存儲(chǔ)在/hbase/root-region-server.

默認(rèn):root-region-server

zookeeper.znode.acl.parent

root znode的acl,默認(rèn)acl;

hbase.coprocessor.region.classes

逗號(hào)分隔的Coprocessores列表,會(huì)被加載到默認(rèn)所有表上。在自己實(shí)現(xiàn)了一個(gè)Coprocessor后,將其添加到Hbase的classpath并加入全限定名。也可以延遲加載,由HTableDescriptor指定;

hbase.coprocessor.master.classes

由HMaster進(jìn)程加載的coprocessors,逗號(hào)分隔,全部實(shí)現(xiàn)org.apache.hadoop.hbase.coprocessor.MasterObserver,同coprocessor類(lèi)似,加入classpath及全限定名;

hbase.zookeeper.quorum

Zookeeper集群的地址列表,用逗號(hào)分割。例如:"host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".默認(rèn)是localhost,是給偽分布式用的。要修改才能在完全分布式的情況下使用。如果在hbase-env.sh設(shè)置了HBASE_MANAGES_ZK,這些ZooKeeper節(jié)點(diǎn)就會(huì)和HBase一起啟動(dòng)。

默認(rèn):localhost

hbase.zookeeper.peerport

ZooKeeper節(jié)點(diǎn)使用的端口。詳細(xì)參見(jiàn):http://hadoop.apache.org/zookeeper/docs/r3.1.1/zookeeperStarted.html#sc_RunningReplicatedZooKeeper

默認(rèn):2888

hbase.zookeeper.leaderport

ZooKeeper用來(lái)選擇Leader的端口,詳細(xì)參見(jiàn):http://hadoop.apache.org/zookeeper/docs/r3.1.1/zookeeperStarted.html#sc_RunningReplicatedZooKeeper

默認(rèn):3888

hbase.zookeeper.useMulti

Instructs HBase to make use of ZooKeeper's multi-update functionality. This allows certain ZooKeeper operations to complete more quickly and prevents some issues with rare Replication failure scenarios (see the release note of HBASE-2611 for an example). IMPORTANT: only set this to true if all ZooKeeper servers in the cluster are on version 3.4+ and will not be downgraded. ZooKeeper versions before 3.4 do not support multi-update and will not fail gracefully if multi-update is invoked (see ZOOKEEPER-1495).

Default:?false

hbase.zookeeper.property.initLimit

ZooKeeper的zoo.conf中的配置。 初始化synchronization階段的ticks數(shù)量限制

默認(rèn):10

hbase.zookeeper.property.syncLimit

ZooKeeper的zoo.conf中的配置。 發(fā)送一個(gè)請(qǐng)求到獲得承認(rèn)之間的ticks的數(shù)量限制

默認(rèn):5

hbase.zookeeper.property.dataDir

ZooKeeper的zoo.conf中的配置。 快照的存儲(chǔ)位置

默認(rèn):${hbase.tmp.dir}/zookeeper

hbase.zookeeper.property.clientPort

ZooKeeper的zoo.conf中的配置。 客戶端連接的端口

默認(rèn):2181

hbase.zookeeper.property.maxClientCnxns

ZooKeeper的zoo.conf中的配置。 ZooKeeper集群中的單個(gè)節(jié)點(diǎn)接受的單個(gè)Client(以IP區(qū)分)的請(qǐng)求的并發(fā)數(shù)。這個(gè)值可以調(diào)高一點(diǎn),防止在單機(jī)和偽分布式模式中出問(wèn)題。

默認(rèn):300

hbase.rest.port

HBase REST server的端口

默認(rèn):8080

hbase.rest.readonly

定義REST server的運(yùn)行模式。可以設(shè)置成如下的值: false: 所有的HTTP請(qǐng)求都是被允許的 - GET/PUT/POST/DELETE. true:只有GET請(qǐng)求是被允許的

默認(rèn):false

hbase.defaults.for.version.skip

Set to true to skip the 'hbase.defaults.for.version' check. Setting this to true can be useful in contexts other than the other side of a maven generation; i.e. running in an ide. You'll want to set this boolean to true to avoid seeing the RuntimException complaint: "hbase-default.xml file seems to be for and old version of HBase (\${hbase.version}), this version is X.X.X-SNAPSHOT"

Default:?false

是否跳過(guò)hbase.defaults.for.version的檢查,默認(rèn)是false;

hbase.coprocessor.abortonerror

Set to true to cause the hosting server (master or regionserver) to abort if a coprocessor throws a Throwable object that is not IOException or a subclass of IOException. Setting it to true might be useful in development environments where one wants to terminate the server as soon as possible to simplify coprocessor failure analysis.

Default:?false

如果coprocessor加載失敗或者初始化失敗或者拋出Throwable對(duì)象,則主機(jī)退出。設(shè)置為false會(huì)讓系統(tǒng)繼續(xù)運(yùn)行,但是coprocessor的狀態(tài)會(huì)不一致,所以一般debug時(shí)才會(huì)設(shè)置為false,默認(rèn)是true;

hbase.online.schema.update.enable

Set true to enable online schema changes. This is an experimental feature. There are known issues modifying table schemas at the same time a region split is happening so your table needs to be quiescent or else you have to be running with splits disabled.

Default:?false

設(shè)置true來(lái)允許在線schema變更,默認(rèn)是true;

hbase.table.lock.enable

Set to true to enable locking the table in zookeeper for schema change operations. Table locking from master prevents concurrent schema modifications to corrupt table state.

Default:?true

設(shè)置為true來(lái)允許在schema變更時(shí)zk鎖表,鎖表可以組織并發(fā)的schema變更導(dǎo)致的表狀態(tài)不一致,默認(rèn)是true;

dfs.support.append

Does HDFS allow appends to files? This is an hdfs config. set in here so the hdfs client will do append support. You must ensure that this config. is true serverside too when running hbase (You will have to restart your cluster after setting it).

Default:?true

hbase.thrift.minWorkerThreads

The "core size" of the thread pool. New threads are created on every connection until this many threads are created.

Default:?16

線程池的core size,在達(dá)到這里配置的量級(jí)后,新線程才會(huì)再新的連接創(chuàng)立時(shí)創(chuàng)建,默認(rèn)是16;

hbase.thrift.maxWorkerThreads

The maximum size of the thread pool. When the pending request queue overflows, new threads are created until their number reaches this number. After that, the server starts dropping connections.

Default:?1000

顧名思義,最大線程數(shù),達(dá)到這個(gè)數(shù)字后,服務(wù)器開(kāi)始drop連接,默認(rèn)是1000;

hbase.thrift.maxQueuedRequests

The maximum number of pending Thrift connections waiting in the queue. If there are no idle threads in the pool, the server queues requests. Only when the queue overflows, new threads are added, up to hbase.thrift.maxQueuedRequests threads.

Default:?1000

Thrift連接隊(duì)列的最大數(shù),如果線程池滿,會(huì)先在這個(gè)隊(duì)列中緩存請(qǐng)求,緩存上限就是該配置,默認(rèn)是1000;

hbase.offheapcache.percentage

The amount of off heap space to be allocated towards the experimental off heap cache. If you desire the cache to be disabled, simply set this value to 0.

Default:?0

JVM參數(shù)-XX:MaxDirectMemorySize的百分比值,默認(rèn)是0,即不開(kāi)啟堆外分配;

hbase.data.umask.enable

Enable, if true, that file permissions should be assigned to the files written by the regionserver

Default:?false

開(kāi)啟后,文件在regionserver寫(xiě)入時(shí)會(huì) 有權(quán)限相關(guān)設(shè)定,默認(rèn)是false不開(kāi)啟;

hbase.data.umask

File permissions that should be used to write data files when hbase.data.umask.enable is true

Default:?000

開(kāi)啟上面一項(xiàng)配置后,文件的權(quán)限umask,默認(rèn)是000

hbase.metrics.showTableName

Whether to include the prefix "tbl.tablename" in per-column family metrics. If true, for each metric M, per-cf metrics will be reported for tbl.T.cf.CF.M, if false, per-cf metrics will be aggregated by column-family across tables, and reported for cf.CF.M. In both cases, the aggregated metric M across tables and cfs will be reported.

Default:?true

是否為每個(gè)指標(biāo)顯示表名前綴,默認(rèn)是true;

hbase.metrics.exposeOperationTimes

Whether to report metrics about time taken performing an operation on the region server. Get, Put, Delete, Increment, and Append can all have their times exposed through Hadoop metrics per CF and per region.

Default:?true

是否進(jìn)行關(guān)于操作在使用時(shí)間維度的指標(biāo)報(bào)告,比如GET PUT DELETE INCREMENT等,默認(rèn)是true;

hbase.master.hfilecleaner.plugins

A comma-separated list of HFileCleanerDelegate invoked by the HFileCleaner service. These HFiles cleaners are called in order, so put the cleaner that prunes the most files in front. To implement your own HFileCleanerDelegate, just put it in HBase's classpath and add the fully qualified class name here. Always add the above default log cleaners in the list as they will be overwritten in hbase-site.xml.

Default:?org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner

HFile的清理插件列表,逗號(hào)分隔,被HFileService調(diào)用,可以自定義,默認(rèn)org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner

hbase.regionserver.catalog.timeout

Timeout value for the Catalog Janitor from the regionserver to META.

Default:?600000

regionserver的Catalog Janitor訪問(wèn)META的超時(shí)時(shí)間,默認(rèn)是600000;

hbase.master.catalog.timeout

Timeout value for the Catalog Janitor from the master to META.

Default:?600000

Catalog Janitor從master到META的超時(shí)時(shí)間,我們知道這個(gè)Janitor是定時(shí)的去META掃描表目錄,來(lái)決定回收無(wú)用的regions,默認(rèn)是600000;

hbase.config.read.zookeeper.config

Set to true to allow HBaseConfiguration to read the zoo.cfg file for ZooKeeper properties. Switching this to true is not recommended, since the functionality of reading ZK properties from a zoo.cfg file has been deprecated.

Default:?false

讓hbaseconfig去讀zk的config,默認(rèn)false,也不支持開(kāi)啟,這個(gè)功能很搞笑~~個(gè)人觀點(diǎn);

hbase.snapshot.enabled

Set to true to allow snapshots to be taken / restored / cloned.

Default:?true

是否允許snapshot被使用、存儲(chǔ)和克隆,默認(rèn)是true;

hbase.rest.threads.max

The maximum number of threads of the REST server thread pool. Threads in the pool are reused to process REST requests. This controls the maximum number of requests processed concurrently. It may help to control the memory used by the REST server to avoid OOM issues. If the thread pool is full, incoming requests will be queued up and wait for some free threads. The default is 100.

Default:?100

REST服務(wù)器線程池的最大線程數(shù),池滿的話新請(qǐng)求會(huì)自動(dòng)排隊(duì),限制這個(gè)配置可以控制服務(wù)器的內(nèi)存量,預(yù)防OOM,默認(rèn)是100;

hbase.rest.threads.min

The minimum number of threads of the REST server thread pool. The thread pool always has at least these number of threads so the REST server is ready to serve incoming requests. The default is 2.

Default:?2

同上類(lèi)似,最小線程數(shù),為了確保服務(wù)器的服務(wù)狀態(tài),默認(rèn)是2;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容