溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

HBase常用參數(shù)有哪些

發(fā)布時(shí)間:2021-12-08 14:44:58 來源:億速云 閱讀:178 作者:小新 欄目:云計(jì)算

小編給大家分享一下HBase常用參數(shù)有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1. 通用和master配置

hbase.rootdir
默認(rèn): file:///tmp/hbase-${user.name}/hbase
region server的數(shù)據(jù)根目錄,用來持久化HBase。例如,要表示hdfs中的’/hbase’目錄,namenode 運(yùn)行在debugo01的8020端口,則需要設(shè)置為hdfs:// debugo01:8020/hbase。這個(gè)是必須要設(shè)置的項(xiàng)目,默認(rèn)值本地文件系統(tǒng)的/tmp只能在單機(jī)模式使用。
hbase.master.port
默認(rèn): 60000
HBase的Master服務(wù)端口。
hbase.cluster.distributed
默認(rèn): false
HBase的運(yùn)行模式。false是單機(jī)模式,true是分布式模式。若為false,HBase和Zookeeper會(huì)運(yùn)行在同一個(gè)JVM里面。
hbase.tmp.dir
本地的臨時(shí)目錄。需要注意的是默認(rèn)的/tmp會(huì)在重啟時(shí)清空。
默認(rèn): /tmp/hbase-${user.name}
hbase.master.info.port
默認(rèn): 60010
HBase Master web UI的端口. 設(shè)置為-1 則不運(yùn)行web UI。
hbase.master.info.bindAddress
默認(rèn): 0.0.0.0
HBase Master web UI綁定的IP
hbase.master.dns.interface
當(dāng)使用DNS的時(shí)候,Master用來上報(bào)的IP地址的網(wǎng)絡(luò)接口名字。
默認(rèn): default
hbase.master.dns.nameserver
當(dāng)使用DNS的時(shí)候,RegionServer的DNS域名或者IP 地址,Master用它來確定用來進(jìn)行通訊的域名.
默認(rèn): default
hbase.snapshot.enabled
是否啟用snapshot功能。
默認(rèn)值:true
hbase.balancer.period
Master執(zhí)行region balancer的間隔。
默認(rèn): 300000
hbase.master.logcleaner.ttl
Hlog存在于.oldlogdir 文件夾的最長(zhǎng)時(shí)間, 超過了就會(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下,然后在這里寫下類的全稱。一般都是加在默認(rèn)值的前面。
默認(rèn): org.apache.hadoop.hbase.master.TimeToLiveLogCleaner
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.coprocessor.master.classes
Master所使用的協(xié)處理器類名。多個(gè)類的情況下使用逗號(hào)分割。比如使用org.apache.hadoop.hbase.security.access.AccessController提供了安全管控能力。
默認(rèn): null。
hbase.rpc.engine
HBase使用的rpc引擎類。一般使用帶安全驗(yàn)證的org.apache.hadoop.hbase.ipc. SecureRpcEngine類
默認(rèn): null。

2. RegionServer相關(guān)

hbase.regionserver.port
默認(rèn): 60020
HBase RegionServer綁定的端口
hbase.regionserver.info.port
默認(rèn): 60030
HBase RegionServer web 界面綁定的端口。設(shè)置為-1 則不運(yùn)行web UI
hbase.regionserver.info.port.auto
默認(rèn): false
RegionServer是否在當(dāng)hbase.regionsever.info.port已經(jīng)被占用的時(shí)候,可以搜一個(gè)空閑的端口綁定。默認(rèn)關(guān)閉。
hbase.regionserver.info.bindAddress
默認(rèn): 0.0.0.0
HBase RegionServer web 界面的IP地址
hbase.regionserver.class
默認(rèn): org.apache.hadoop.hbase.ipc.HRegionInterface
RegionServer接口類??蛻舳嗽谶B接region server的時(shí)候會(huì)使用到。
hbase.regionserver.lease.period
默認(rèn): 60000
客戶端租用HRegion server 期限,即超時(shí)閥值。單位是毫秒。默認(rèn)情況下,客戶端必須在這個(gè)時(shí)間內(nèi)發(fā)一條信息,否則視為死掉。
hbase.regionserver.handler.count
默認(rèn): 10
RegionServers受理的RPC Server實(shí)例數(shù)量。對(duì)于Master來說,這個(gè)屬性是Master受理的handler數(shù)量
hbase.regionserver.msginterval
默認(rèn): 3000
RegionServer 發(fā)消息給 Master 時(shí)間間隔,單位是毫秒
hbase.regionserver.optionallogflushinterval
默認(rèn): 1000
將Hlog同步到HDFS的間隔。如果Hlog沒有積累到一定的數(shù)量,到了時(shí)間,也會(huì)觸發(fā)同步。默認(rèn)是1秒,單位毫秒。
hbase.regionserver.regionSplitLimit
默認(rèn): 2147483647
region的數(shù)量到了這個(gè)值后就不會(huì)在分裂了。這不是一個(gè)region數(shù)量的硬性限制。但是起到了一定指導(dǎo)性的作用。默認(rèn)是MAX_INT(不限制)。
hbase.regionserver.logroll.period
默認(rèn): 3600000
提交commit log的間隔,不管有沒有寫足夠的值。
hbase.regionserver.hlog.enabled
默認(rèn):true
是否啟用WAL
hbase.regionserver.wal.enablecompression
默認(rèn):false
是否對(duì)日志壓縮
hbase.regionserver.hlog.reader.impl
默認(rèn): org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader
HLog file reader 的實(shí)現(xiàn).
hbase.regionserver.hlog.writer.impl
默認(rèn): org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter
HLog file writer 的實(shí)現(xiàn).
hbase.regionserver.thread.splitcompactcheckfrequency
默認(rèn): 20000
region server 多久執(zhí)行一次split/compaction 檢查.
hbase.regionserver.nbreservationblocks
默認(rèn): 4
儲(chǔ)備的內(nèi)存block的數(shù)量(譯者注:就像石油儲(chǔ)備一樣)。當(dāng)發(fā)生out of memory 異常的時(shí)候,我們可以用這些內(nèi)存在RegionServer停止之前做清理操作。
hbase.regionserver.dns.interface
默認(rèn): default
當(dāng)使用DNS的時(shí)候,RegionServer用來上報(bào)的IP地址的網(wǎng)絡(luò)接口名字。
hbase.regionserver.dns.nameserver
默認(rèn): default
當(dāng)使用DNS的時(shí)候,RegionServer使用的DNS的域名或者IP 地址,RegionServer用它來確定和master用來進(jìn)行通訊的域名.
hbase.regions.slop
默認(rèn): 0
當(dāng)任一regionserver有average + (average * slop)個(gè)region是會(huì)執(zhí)行Rebalance
hbase.regionserver.global.memstore.upperLimit
默認(rèn): 0.4
單個(gè)region server的全部memtores的最大值。超過這個(gè)值,一個(gè)新的update操作會(huì)被掛起,強(qiáng)制執(zhí)行flush操作。
hbase.regionserver.global.memstore.lowerLimit
默認(rèn): 0.35
當(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í)行)
hbase.coprocessor.regionserver.classes
Master所使用的協(xié)處理器類名。多個(gè)類的情況下使用逗號(hào)分割。比如使用org.apache.hadoop.hbase.security.access.AccessController提供了安全管控能力。
默認(rèn): null。

3. Client相關(guān)參數(shù)

hbase.client.write.buffer
默認(rèn): 2097152
HTable客戶端的寫緩沖的默認(rèn)大小。因?yàn)榫彌_在客戶端和服務(wù)端需要申請(qǐng)空間,需要消耗客戶端和服務(wù)端兩個(gè)地方的內(nèi)存。較大的buffer,可以減少RPC的次數(shù),從而提高性能。估算服務(wù)器端被占用的內(nèi)存: hbase.client.write.buffer * hbase.regionserver.handler.count
hbase.client.pause
默認(rèn): 1000
客戶端操作失敗后的重試暫停時(shí)間。
hbase.client.retries.number
默認(rèn): 10
客戶端失敗后的最大重試次數(shù)。例如region查詢,get,Update等操作。
hbase.client.scanner.caching
默認(rèn): 1
當(dāng)調(diào)用Scanner的next方法,而值又不在緩存里的時(shí)候,從服務(wù)端一次獲取的行數(shù)。越大的值意味著Scanner會(huì)快一些,但是會(huì)占用更多的內(nèi)存。當(dāng)緩沖被占滿的時(shí)候,next方法調(diào)用會(huì)越來越慢。慢到一定程度,可能會(huì)導(dǎo)致超時(shí)。例如超過了hbase.regionserver.lease.period。
hbase.client.keyvalue.maxsize
默認(rèn): 10485760
一個(gè)KeyValue實(shí)例的最大size.這個(gè)是用來設(shè)置存儲(chǔ)文件中的單個(gè)entry的大小上界。因?yàn)橐粋€(gè)KeyValue是不能分割的,所以可以避免因?yàn)閿?shù)據(jù)過大導(dǎo)致region不可分割。明智的做法是把它設(shè)為可以被最大region size整除的數(shù)。如果設(shè)置為0或者更小,就會(huì)禁用這個(gè)檢查。默認(rèn)10MB。

4. ZooKeeper相關(guān)

hbase.zookeeper.dns.interface
當(dāng)使用DNS的時(shí)候,Zookeeper用來上報(bào)的IP地址的網(wǎng)絡(luò)接口名字。
默認(rèn): default
hbase.zookeeper.dns.nameserver
默認(rèn): default
當(dāng)使用DNS的時(shí)候,Zookeepr使用的DNS的域名或者IP 地址,Zookeeper用它來確定和master用來進(jìn)行通訊的域名.
zookeeper.session.timeout
默認(rèn): 180000
ZooKeeper 會(huì)話超時(shí).HBase把這個(gè)值傳遞改zk集群,向他推薦一個(gè)會(huì)話的最大超時(shí)時(shí)間。單位是毫秒。
zookeeper.znode.parent
默認(rèn): /hbase
ZooKeeper中的HBase的根ZNode。所有的HBase的ZooKeeper會(huì)用這個(gè)目錄配置相對(duì)路徑。默認(rèn)情況下,所有的HBase的ZooKeeper文件路徑是用相對(duì)路徑,所以他們會(huì)都去這個(gè)目錄下面。
zookeeper.znode.rootserver
默認(rèn): root-region-server
ZNode 保存的根region的路徑. 這個(gè)值是由Master來寫,client和regionserver 來讀的。如果設(shè)為一個(gè)相對(duì)地址,父目錄就是 ${zookeeper.znode.parent}.默認(rèn)情形下,意味著根region的路徑存儲(chǔ)在/hbase/root-region-server.
hbase.zookeeper.quorum
默認(rèn): localhost
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)。
hbase.zookeeper.peerport
默認(rèn): 2888
ZooKeeper節(jié)點(diǎn)使用的端口。
hbase.zookeeper.leaderport
默認(rèn): 3888
ZooKeeper用來選擇Leader的端口。
hbase.zookeeper.property.initLimit
默認(rèn): 10
ZooKeeper的zoo.conf中的配置。 初始化synchronization階段的ticks數(shù)量限制
hbase.zookeeper.property.syncLimit
默認(rèn): 5
ZooKeeper的zoo.conf中的配置。 發(fā)送一個(gè)請(qǐng)求到獲得承認(rèn)之間的ticks的數(shù)量限制
hbase.zookeeper.property.dataDir
默認(rèn): ${hbase.tmp.dir}/zookeeper
ZooKeeper的zoo.conf中的配置。 快照的存儲(chǔ)位置
hbase.zookeeper.property.clientPort
默認(rèn): 2181
ZooKeeper的zoo.conf中的配置。 客戶端連接的端口
hbase.zookeeper.property.maxClientCnxns
默認(rèn): 2000
ZooKeeper的zoo.conf中的配置。 ZooKeeper集群中的單個(gè)節(jié)點(diǎn)接受的單個(gè)Client(以IP區(qū)分)的請(qǐng)求的并發(fā)數(shù)。這個(gè)值可以調(diào)高一點(diǎn),防止在單機(jī)和偽分布式模式中出問題。

5. 模式和存儲(chǔ)相關(guān)

hbase.table.max.rowsize
默認(rèn): true
設(shè)置為true時(shí),當(dāng)模式在反生變更操作時(shí)則鎖定zookeeper中的表,以避免并行操作時(shí)破壞表的一致性。
hbase.table.max.rowsize
默認(rèn):1073741824
當(dāng)不指定Get和Scan操作中的scan選項(xiàng)時(shí),獲取的最大行的字節(jié)大小。超過則拋出RowTooBigException異常。
hbase.hregion.memstore.flush.size
默認(rèn): 67108864
當(dāng)memstore的大小超過這個(gè)值,會(huì)flush到磁盤。這個(gè)值被一個(gè)線程每隔hbase.server.thread.wakefrequency檢查一下。
hbase.server.thread.wakefrequency
默認(rèn): 10000
Service線程(log roller等)的sleep時(shí)間間隔,單位毫秒。
hbase.hregion.preclose.flush.size
默認(rèn): 5242880
當(dāng)一個(gè)region中的memstore的大小大于這個(gè)值的時(shí)候,我們又觸發(fā)了close.會(huì)先運(yùn)行“pre-flush”操作,清理這個(gè)需要關(guān)閉的memstore,然后將這個(gè)region下線。當(dāng)一個(gè)region下線了,我們無法再進(jìn)行任何寫操作。如果一個(gè)memstore很大的時(shí)候,flush操作會(huì)消耗很多時(shí)間。”pre-flush”操作意味著在region下線之前,會(huì)先把memstore清空。這樣在最終執(zhí)行close操作的時(shí)候,flush操作會(huì)很快。
hbase.hregion.memstore.block.multiplier
默認(rèn): 2
如果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í)間來合并或者分割,最壞的情況就是引發(fā)out of memory異常。
hbase.hregion.memstore.mslab.enabled
默認(rèn): false
體驗(yàn)特性:?jiǎn)⒂胢emStore分配本地緩沖區(qū)。這個(gè)特性是為了防止在大量寫負(fù)載的時(shí)候堆的碎片過多。這可以減少GC操作的頻率。
hbase.hregion.max.filesize
默認(rèn): 268435456
最大HStoreFile大小。若某個(gè)Column families的HStoreFile增長(zhǎng)達(dá)到這個(gè)值,這個(gè)Hegion會(huì)被切割成兩個(gè)。 Default: 256M.
hbase.hstore.compactionThreshold
默認(rèn): 3
當(dāng)一個(gè)HStore含有多于這個(gè)值的HStoreFiles的時(shí)候,會(huì)執(zhí)行一個(gè)合并操作,把這HStoreFiles寫成一個(gè)。這個(gè)值越大,需要合并的時(shí)間就越長(zhǎng)。
hbase.hstore.blockingStoreFiles
默認(rèn): 7
當(dāng)一個(gè)HStore含有多于這個(gè)值的HStoreFiles的時(shí)候,會(huì)執(zhí)行一個(gè)合并操作,update會(huì)阻塞直到合并完成,直到超過了hbase.hstore.blockingWaitTime的值
hbase.hstore.blockingWaitTime
默認(rèn): 90000
hbase.hstore.blockingStoreFiles所限制的StoreFile數(shù)量會(huì)導(dǎo)致update阻塞,這個(gè)時(shí)間是來限制阻塞時(shí)間的。當(dāng)超過了這個(gè)時(shí)間,HRegion會(huì)停止阻塞update操作,不過合并還有沒有完成。默認(rèn)為90s.
hbase.hstore.compaction.max
默認(rèn): 10
每個(gè)“小”合并的HStoreFiles最大數(shù)量。
hbase.hregion.majorcompaction
默認(rèn): 86400000
一個(gè)Region中的所有HStoreFile的major compactions的時(shí)間間隔。默認(rèn)是1天。 設(shè)置為0就是禁用這個(gè)功能。
hbase.mapreduce.hfileoutputformat.blocksize
默認(rèn): 65536
MapReduce中HFileOutputFormat可以寫 storefiles/hfiles. 這個(gè)值是hfile的blocksize的最小值。通常在HBase寫Hfile的時(shí)候,bloocksize是由table schema(HColumnDescriptor)決定的,但是在mapreduce寫的時(shí)候,我們無法獲取schema中blocksize。這個(gè)值越小,你的索引就越大,你隨機(jī)訪問需要獲取的數(shù)據(jù)就越小。如果你的cell都很小,而且你需要更快的隨機(jī)訪問,可以把這個(gè)值調(diào)低。
hfile.block.cache.size
默認(rèn): 0.2
分配給HFile/StoreFile的block cache占最大堆(-Xmx setting)的比例。默認(rèn)是20%,設(shè)置為0就是不分配。
hbase.hash.type
默認(rèn): murmur
哈希函數(shù)使用的哈希算法??梢允褂肕urmurHash和 jenkins (JenkinsHash). 提供給 bloom filters使用.

6. 安全相關(guān)

hbase.security.authentication
HBase的權(quán)限管控方式??蛇x輸入為simple和kerberos。
默認(rèn)值:simple
hbase.security.authentication
是否啟用HBase安全驗(yàn)證。
默認(rèn):false
hbase.superuser
HBase的超級(jí)管理員用戶。
默認(rèn)值:hbase
hbase.master.keytab.file
默認(rèn):
開啟基于kerberos的Security。HMaster Server驗(yàn)證登錄使用的keytab 文件路徑。
hbase.master.kerberos.principal
默認(rèn):
開啟基于kerberos的Security。HMaster使用principal name。
hbase.regionserver.keytab.file
默認(rèn):
開啟基于kerberos的Security。HRegionServer驗(yàn)證登錄使用的keytab 文件路徑。
hbase.regionserver.kerberos.principal
默認(rèn):
開啟基于kerberos的Security。RegionServer使用的principal name。

以上是“HBase常用參數(shù)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI