日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HBase-site.xml 常见重要配置参数(转载)

發布時間:2023/12/31 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HBase-site.xml 常见重要配置参数(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

(1)?Hbase.rpc.timeout
rpc 的超時時間,默認 60s,不建議修改,避免影響正常的業務,在線上環境剛開始配置的是 3 秒,運行半天后發現了大量的 timeout error,原因是有一個 region 出現了如下問題阻塞了寫操作:“Blocking updates … memstore size 434.3m is >= than blocking 256.0m size”可見不能太低

(2) ipc.socket.timeout:socket 建立鏈接的超時時間,應該小于或者等于 rpc 的超時時間,默認為 20s

(3)?hbase.client.retries.number:重試次數,默認為 10,可配置為 3

(4) hbase.client.pause:重試的休眠時間,默認為 1s,可減少,比如 100ms

(5) hbase.regionserver.lease.period:scan 查詢時每次與 server 交互的超時時間,默認為 60s,可不調整

HBase 默認配置參數

序號參數名作用默認取值
1hbase.rootdir這個目錄是 RegionServer 的共享目錄,用來持久化 HBase。URL 需要是 “完全正確” 的,還要包含文件系統的 scheme。 例如 “/hbase” 表示 HBase 在 HDFS 中占用的實際存儲位置,HDFS 的 NameNode 運行在主機名為 master5 的 8020 端口,則 hbase.rootdir 的設置應為 “hdfs://master5:8020/hbase”。在默認情況下 HBase 是寫在?/tmp?中的。不修改這個配置的話,數據會在重啟的時候丟失。特別注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必須一致。file:///tmp/hbase-${user.name}/hbase
2hbase.cluster.distributedHBase 的運行模式。為 false 表示單機模式,為 true 表示分布式模式。若為 false,HBase 和 ZooKeeper 會運行在同一個 JVM 中false
3hbase.master (hbase.master.port)
  • 如果只設置單個 Hmaster,那么 hbase.master 屬性參數需要設置為?master5:60000?(主機名:60000)
  • 如果要設置多個 Hmaster,那么我們只需要提供端口 60000,因為選擇真正的 master 的事情會有 zookeeper 去處理
60000
4hbase.tmp.dir本地文件系統的臨時文件夾。可以修改到一個更為持久的目錄上。(/tmp會在重啟時清除)

/tmp/hbase-${user.name}

5hbase.master.info.portHBase Master web 界面端口. 設置為 -1 意味著你不想讓它運行60010
6hbase.master.info.bindAddressHBase Master web 界面綁定的端口0.0.0.0
7hbase.client.write.bufferHTable 客戶端的寫緩沖的默認大小。這個值越大,需要消耗的內存越大。因為緩沖在客戶端和服務端都有實例,所以需要消耗客戶端和服務端兩個地方的內存。得到的好處是,可以減少 RPC 的次數。可以這樣估算服務器端被占用的內存: hbase.client.write.buffer * hbase.regionserver.handler.count2097152 (2G)
8hbase.regionserver.portHBase RegionServer 綁定的端口60020
9hbase.regionserver.info.portHBase RegionServer web 界面綁定的端口 設置為 -1 意味這你不想與運行 RegionServer 界面60030
10hbase.regionserver.info.port.autoMaster 或 RegionServer 是否要動態搜一個可以用的端口來綁定界面。當 hbase.regionserver.info.port已經被占用的時候,可以搜一個空閑的端口綁定。這個功能在測試的時候很有用。默認關閉false
11hbase.regionserver.info.bindAddressHBase RegionServer web 界面的IP地址0.0.0.0
12hbase.regionserver.classRegionServer 使用的接口。客戶端打開代理來連接region server的時候會使用到org.apache.hadoop.hbase.ipc.HRegionInterface
13hbase.client.pause通常的客戶端暫停時間。最多的用法是客戶端在重試前的等待時間。比如失敗的 get 操作和 region 查詢操作等都很可能用到1000?ms
14hbase.client.retries.number最大重試次數。例如 region 查詢,Get 操作,Update 操作等等都可能發生錯誤,需要重試。這是最大重試錯誤的值10
15hbase.client.scanner.caching當調用 Scanner 的 next 方法,而值又不在緩存里的時候,從服務端一次獲取的行數。越大的值意味著 Scanner 會快一些,但是會占用更多的內存。當緩沖被占滿的時候,next 方法調用會越來越慢。慢到一定程度,可能會導致超時。例如超過了 hbase.regionserver.lease.period1
16hbase.client.keyvalue.maxsize一個 KeyValue 實例的最大 size。這個是用來設置存儲文件中的單個 entry 的大小上界。因為一個 KeyValue 是不能分割的,所以可以避免因為數據過大導致 region 不可分割。明智的做法是把它設為可以被最大 region size 整除的數。如果設置為 0 或者更小,就會禁用這個檢查10485760 (10MB)
17hbase.regionserver.lease.period客戶端租用 HRegion server 期限,即超時閥值。單位是毫秒。默認情況下,客戶端必須在這個時間內發一條信息,否則視為死掉。60000
18hbase.regionserver.handler.countRegionServers 受理的 RPC Server 實例數量。對于 Master 來說,這個屬性是 Master 受理的 handler 數量10
19hbase.regionserver.msgintervalRegionServer 發消息給 Master 時間間隔,單位是毫秒3000
20hbase.regionserver.optionallogflushinterval將 Hlog 同步到 HDFS 的間隔。如果 Hlog 沒有積累到一定的數量,到了時間,也會觸發同步。默認是 1秒,單位毫秒。1000
21hbase.regionserver.regionSplitLimitregion 的數量到了這個值后就不會在分裂了。這不是一個 region 數量的硬性限制。但是起到了一定指導性的作用,到了這個值就該停止分裂了。默認是 MAX_INT。就是說不阻止分裂。2147483647 (1G)
22hbase.regionserver.logroll.period提交 commit log 的間隔,不管有沒有寫足夠的值3600000
23hbase.regionserver.hlog.reader.implHLog file reader 的實現org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogReader
24hbase.regionserver.hlog.writer.implHLog file writer 的實現org.apache.hadoop.hbase.regionserver.wal.SequenceFileLogWriter
25hbase.regionserver.thread.splitcompactcheckfrequencyregion server 多久執行一次 split/compaction 檢查20000
26hbase.regionserver.nbreservationblocks儲備的內存 block 的數量(譯者注:就像石油儲備一樣)。當發生 out of memory 異常的時候,我們可以用這些內存在 RegionServer 停止之前做清理操作4
27hbase.zookeeper.dns.interface當使用 DNS 的時候,Zookeeper 用來上報的 IP 地址的網絡接口名字default
28hbase.zookeeper.dns.nameserver當使用 DNS 的時候,Zookeepr 使用的 DNS 的域名或者 IP 地址,Zookeeper 用它來確定和 master 用來進行通訊的域名default
29hbase.regionserver.dns.interface當使用 DNS 的時候,RegionServer 用來上報的 IP 地址的網絡接口名字default
30hbase.regionserver.dns.nameserver當使用 DNS 的時候,RegionServer 使用的 DNS 的域名或者 IP 地址,RegionServer 用它來確定和 master 用來進行通訊的域名default
31hbase.master.dns.interface當使用 DNS 的時候,Master 用來上報的 IP 地址的網絡接口名字default
32?hbase.master.dns.nameserver當使用 DNS 的時候,RegionServer 使用的 DNS 的域名或者 IP 地址,Master 用它來確定用來進行通訊的域名default
33hbase.balancer.periodMaster 執行 region balancer 的間隔300000
34hbase.regions.slop當任一 regionserver 有 average + (average * slop) 個 region 是會執行 Rebalance0
35hbase.master.logcleaner.ttlHlog 存在于.oldlogdir 文件夾的最長時間, 超過了就會被 Master 的線程清理掉600000
36hbase.master.logcleaner.pluginsLogsCleaner 服務會執行的一組 LogCleanerDelegat。值用逗號間隔的文本表示。這些 WAL/HLog cleaners 會按順序調用。可以把先調用的放在前面。你可以實現自己的 LogCleanerDelegat,加到 Classpath下,然后在這里寫 下類的全稱。一般都是加在默認值的前面org.apache.hadoop.hbase.master.TimeToLiveLogCleaner
37hbase.regionserver.global.memstore.upperLimit單個 region server 的全部 memtores 的最大值。超過這個值,一個新的 update 操作會被掛起,強制執行flush操作0.4
38hbase.regionserver.global.memstore.lowerLimit當強制執行 flush 操作的時候,當低于這個值的時候,flush 會停止。默認是堆大小的 35% . 如果這個值和 hbase.regionserver.global.memstore.upperLimit 相同就意味著當 update 操作因為內存限制被掛起時,會盡量少的執行 flush(譯者注:一旦執行 flush,值就會比下限要低,不再執行)0.35
39hbase.server.thread.wakefrequencyservice 工作的 sleep 間隔,單位毫秒。 可以作為 service 線程的 sleep 間隔,比如 log roller10000
40hbase.hregion.memstore.flush.size當 memstore 的大小超過這個值的時候,會 flush 到磁盤。這個值被一個線程每隔 hbase.server.thread.wakefrequency 檢查一下67108864 (64MB)
41hbase.hregion.preclose.flush.size當一個 region 中的 memstore 的大小大于這個值的時候,我們又觸發了 close. 會先運行“pre-flush”操作,清理這個需要關閉的 memstore,然后將這個 region 下線。當一個 region 下線了,我們無法再進行任何寫操作。如果一個 memstore 很大的時候,flush 操作會消耗很多時間。”pre-flush” 操作意味著在 region 下線之前,會先把 memstore 清空。這樣在最終執行 close 操作的時候,flush 操作會很快5242880 (5MB)
42hbase.hregion.memstore.block.multiplier如果 memstore 有 hbase.hregion.memstore.block.multiplier 倍數的 hbase.hregion.flush.size 的大小,就會阻塞 update 操作。這是為了預防在 update 高峰期會導致的失控。如果不設上 界,flush 的時候會花很長的時間來合并或者分割,最壞的情況就是引發 out of memory 異常。(譯者注:內存操作的速度和磁盤不匹配,需要等一等。原文似乎有誤)2
43hbase.hregion.memstore.mslab.enabled體驗特性:啟用 memStore 分配本地緩沖區。這個特性是為了防止在大量寫負載的時候堆的碎片過多。這可以減少 GC 操作的頻率。( GC 有可能會 Stop the world )(譯者注:實現的原理相當于預分配內存,而不是每一個值都要從堆里分配)false
44hbase.hregion.max.filesize最大 HStoreFile 大小。若某個 Column families 的 HStoreFile 增長達到這個值,這個 Hegion 會被切割成兩個268435456 (256M)
45hbase.hstore.compactionThreshold當一個 HStore 含有多于這個值的 HStoreFiles (每一個 memstore flush 產生一個 HStoreFile )的時候,會執行一個合并操作,把這 HStoreFiles 寫成一個。這個值越大,需要合并的時間就越長3
46hbase.hstore.blockingStoreFiles當一個 HStore 含有多于這個值的 HStoreFiles (每一個 memstore flush 產生一個 HStoreFile )的時候,會執行一個合并操作,update 會阻塞直到合并完成,直到超過了 hbase.hstore.blockingWaitTime 的值7
47hbase.hstore.blockingWaitTimehbase.hstore.blockingStoreFiles 所限制的 StoreFile 數量會導致 update 阻塞,這個時間是來限制阻塞時間的。當超過了這個時間,HRegion 會停止阻塞update操作,不過合并還有沒有完成。默認為 90s90000
48hbase.hstore.compaction.max每個“小”合并的 HStoreFiles 最大數量10
49hbase.hregion.majorcompaction一個 Region 中的所有 HStoreFile 的 major compactions 的時間間隔。默認是 1 天。 設置為 0 就是禁用這個功能86400000
50hbase.mapreduce.hfileoutputformat.blocksizeMapReduce 中 HFileOutputFormat 可以寫 storefiles/hfiles。這個值是 hfile 的 blocksize 的最小值。通常在 Hbase寫Hfile 的時候,bloocksize 是由 table schema(HColumnDescriptor) 決定的,但是在 mapreduce 寫的時候,我們無法獲取 schema 中 blocksize。這個值 越小,你的索引就越大,你隨機訪問需要獲取的數據就越小。如果你的 cell 都很小,而且你需要更快的隨機訪問,可以把這個值調低65536
51hfile.block.cache.size分配給 HFile/StoreFile 的 block cache 占最大堆(-Xmx setting)的比例。默認是20%,設置為0就是不分配0.2
52hbase.hash.type哈希函數使用的哈希算法。可以選擇兩個值:: murmur (MurmurHash) 和 jenkins (JenkinsHash). 這個哈希是給 bloom filters 用的murmur
53hbase.master.keytab.fileHMaster server 驗證登錄使用的 kerberos keytab 文件路徑。(譯者注:Hbase 使用 Kerberos實現安全)none
54hbase.master.kerberos.principal例如. “hbase/_HOST@EXAMPLE.COM”。 HMaster 運行需要使用 kerberos principal name. principal name 可以在: user/hostname@DOMAIN 中獲取. 如果 “_HOST” 被用做 hostname portion,需要使用實際運行的 hostname 來替代它none
55hbase.regionserver.keytab.fileHRegionServer 驗證登錄使用的 kerberos keytab 文件路徑none
56hbase.regionserver.kerberos.principal例如. “hbase/_HOST@EXAMPLE.COM”。HRegionServer 運行需要使用 kerberos principal name. principal name 可以在: user/hostname@DOMAIN 中獲取。如果 “_HOST” 被用做 hostname portion,需要使用實際運行的 hostname 來替代它。在這個文件中必須要有一個entry來描述 hbase.regionserver.keytab.filenone
57zookeeper.session.timeoutZooKeeper 會話超時。Hbase 把這個值傳遞改 zk 集群,向它推薦一個會話的最大超時時間。單位是毫秒180000
58zookeeper.znode.parentZooKeeper 中的 Hbase 的根 ZNode。所有的 Hbase 的 ZooKeeper 會用這個目錄配置相對路徑。默認情況下,所有的 Hbase 的 ZooKeeper 文件路徑是用相對路徑,所以它們會都去這個目錄下面/hbase
59zookeeper.znode.rootserverZNode 保存的根 region 的路徑. 這個值是由 Master 來寫,client 和 regionserver 來讀的。如果設為一個相對地址,父目錄就是?${zookeeper.znode.parent}。默認情形下,意味著根 region的路徑存儲在/hbase/root-region- serverroot-region-server
60hbase.zookeeper.quorumZookeeper 集群的地址列表,用逗號分割。例如:”host1.mydomain.com,host2.mydomain.com,host3.mydomain.com”.默認是 localhost,是給偽分布式用的。要修改才能在完全分布式的情況下使用。如果在hbase-env.sh設置了HBASE_MANAGES_ZK, 這些ZooKeeper節點就會和Hbase一起啟動localhost
61hbase.zookeeper.peerportZooKeeper節點使用的端口2888
62hbase.zookeeper.leaderportZooKeeper用來選擇Leader的端口3888
63hbase.zookeeper.property.initLimitZooKeeper的zoo.conf中的配置。 初始化synchronization階段的ticks數量限制10
64hbase.zookeeper.property.syncLimitZooKeeper的zoo.conf中的配置。 發送一個請求到獲得承認之間的ticks的數量限制5
65hbase.zookeeper.property.dataDirZooKeeper的zoo.conf中的配置。 快照的存儲位置${hbase.tmp.dir}/zookeeper
66hbase.zookeeper.property.clientPortZooKeeper的zoo.conf中的配置。 客戶端連接的端口2181
67hbase.zookeeper.property.maxClientCnxnsZooKeeper的zoo.conf中的配置。 ZooKeeper集群中的單個節點接受的單個Client(以IP區分)的請求的并發數。這個值可以調高一點,防止在單機和偽分布式模式中出問題。2000
68hbase.rest.portHBase REST server的端口8080
69hbase.rest.readonly定義REST server的運行模式。可以設置成如下的值: false: 所有的HTTP請求都是被允許的 - GET/PUT/POST/DELETE. true:只有GET請求是被允許的false
70hbase.regionserver.restart.on.zk.expire當 regionserver 遇到 ZooKeeper session expired , regionserver 是否選擇 restartfalse

注意,即使hbase使用獨立的zookeeper(非自帶zookeeper),也必須設置:

<property>
? ? <name>hbase.zookeeper.quorum</name>
? ? <value>Desktop</value>
</property>

<property>
? ? <name>hbase.zookeeper.property.clientPort</name>
? ? <value>2181</value>
</property>

并且每個節點的hbase-site.xml上述內容必須不同,否則會導致HRegionServer啟動后過一會兒就自動關閉。

?

?

Reference:

[1]HBase-site.xml 常見重要配置參數

總結

以上是生活随笔為你收集整理的HBase-site.xml 常见重要配置参数(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。