2018-11-26 16:09
2018-12-20 15:44
摘自HBASE官方網站 http://hbase.apache.org/book.html#_introduction 第7.2節。 【2018年11月】
名稱 |
猜猜看 | 默認值 |
hbase.tmp.dir | 用於指定一個目錄地址。簡單理解成HBASE存數據的目錄,默認情況下datanode, namenode, zookeeper運行產生的數據都會存在這個目錄內。 | ubuntu下默認是 /tmp/hbase-${user.name} 目錄。例如:/tmp/hbase-ubuntu/ |
hbase.rootdir | 用於指定一個目錄地址。這個目錄地址簡單理解成就是HBase存儲數據的地方。對於完全分布式模式下的HBase來說是HDFS NameNode運行的主機地址。如果是單機模式下的HBASE,直接寫成file:///類型的地址即可。若是需要搭建基於HADOOP分布式存儲系統之上的HBASE,則需要填寫完整的URL名稱。例如: hdfs://your_namenode_server:9000/your_hbase_name 。這個配置的值最好不要使用默認值。因為默認值是保存在Linux的 /tmp 目錄下的。/tmp 目錄在每次開機的時候會被系統清空。 | ${hbase.tmp.dir}/hbase 。一般Linux下是 /tmp/hbase 目錄。 |
hbase.cluster.distributed | 用於配置一個標志位值,true / false 。 用於表示該HBASE是否要被配置成分布式模式。 如果在非分布式模式下,HBASE和ZooKeeper會在同一個JVM上運行。 | false |
hbase.zookeeper.quorum | 用於配置一組網絡地址或域名。這個配置項可以簡單理解成配置的是datanode的服務器地址。如果你的HBASE集群有多個region server(完全分布式模式下的HBASE),則必須要把每台region server的地址寫進這里去(要和ZooKeeper中配置的完全一致),多個region server的地址以英文逗號隔開。 例:<value>masterhost,slavehost1,slavehost2</value> 這條屬性的含義建議去官網看看原文,受本人知識水平限制,我這邊理解的可能不夠全面。 | localhost |
zookeeper.recovery.retry.maxsleeptime | 用於設置一個整型數字值。 用於設置在重試zooKeeper的某些操作時的最大等待時間,似乎是出於某些原因zooKeeper的某些操作失敗了,在一段時間以后zooKeeper會有重試該操作的機制,並且這個重試等待時間並不是恆定的,而是隨着失敗的次數逐漸增長的。HBASE為了防止這個時間無限制地增長,就設置了這個最大等待時間。即zooKeeper操作重試等待時間最長不超過這個項設置的時間。其單位是毫秒。 | 60000(ms) |
hbase.local.dir | 用於指定一個目錄地址。一個用來存儲本地數據的目錄。 | ${hbase.tmp.dir}/local/ 默認情況下是: /tmp/local/ |
hbase.master.port | 用於設置一個整型數字值。該值表示HBASE Master綁定的網絡端口號。這個端口是用於HMaster進行RPC通信的。 | 16000 |
hbase.master.info.port | 用於設置一個整型數字值。該值表示HBASE Master的網頁版要綁定的網絡端口號。如果你不想開啟網頁管理功能,將它設置成-1即可。 | 16010 |
hbase.master.info.bindAddress | 用於設置一個網絡地址。該網絡地址表示HBASE Master的網頁要綁定的地址。一般而言,沒有必要去更改這項配置。如果你的機器有多個網卡,需要指定僅綁定某一個網卡的地址,就可以配置一下,不然,直接用默認的就好了。如果有必要,可以去了解一下0.0.0.0和127.0.0.1的區別。對了,這項一定要填寫你的機器上的地址,不然會導致網頁頁面打不開的。 | 0.0.0.0 |
hbase.master.logcleaner.plugins | 用於設置一個或一組。。代碼類名稱吧。 這項屬性貌似是用來指定日志清除插件程序的。似乎是為了避免日志隨時間的積累而越來越臃腫,就有了這個“條件型日志清除器”。如果自己實現了自己的日志清除程序,就在這里配置上。有需要的老鐵可以去官網看看原文,我這邊也不是很清楚它的作用。 | org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner,org.apache.hadoop.hbase.master.cleaner.TimeToLiveProcedureWALCleaner |
hbase.master.logcleaner.ttl | 用於設置一個整型數字值。表示WAL數據的保存時限(保存於${hbase.rootdir}/oldWALs,在HADOOP網頁版的文件管理系統中可以看到。),在超過設置時長后,數據就會被Master線程清理掉。其單位是毫秒。 | 600000(ms) |
hbase.master.procedurewalcleaner.ttl | 用於設置一個整型數字值。似乎是表示WAL步驟允許存在的時限。超過設置的時間上限后,就會被Master線程清理掉。其單位是毫秒。 | 604800000(ms) --> a week. |
hbase.master.hfilecleaner.plugins | 用於設置一個或一組程序吧。與 hbase.master.logcleaner.plugins 類似。這個貌似是HFiles清理器。有需要的可以去研究一下官網原文。 | org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner |
hbase.master.infoserver.redirect | 用於配置一個布爾型值。控制Master主機是否監聽Master主機上的網頁端口並將來自該端口的請求共享給集群上的所有主機。 | true |
hbase.master.fileSplitTimeout | 用於配置一個整型數字值。表示在給region服務器做文件分割操作時的最大等待時間,超過這一時間設定后若分割仍未完成,則會放棄分割操作。這條屬性是HBASE1.x版本上的 'hbase.regionserver.fileSpliTimeout'屬性,出於該分割操作目前是在Master主機側完成的,因此將這條屬性改名成 'hbase.master.fileSplitTimeout'。如果在HBASE系統上同時設定了這兩條屬性,則以 'hbase.master.fileSplitTimeout' 屬性為准。 | 600000(ms) |
hbase.regionserver.port | 用於配置一個整型數字值。用於開放給Region主機綁定的網絡端口號。這個端口是用來給HRegionServer進行RPC通信的。 | 16020 |
hbase.regionserver.info.port | 配置一個整型數字值。用於開放給region主機的網頁的端口號。將該值設定成-1可以關閉region主機網頁管理功能。 | 16030 |
hbase.regionserver.info.bindAddress | 配置一個網絡地址。region主機網頁管理頁面的網址。 | 0.0.0.0 |
hbase.regionserver.info.port.auto | 配置一個布爾型值。用於配置Master或Region主機的網頁頁面在'hbase.regionserver.info.port'中配置的端口被其它程序占用的情況下自動搜尋可用端口來綁定。 | false |
hbase.regionserver.handler.count | 配置一個整型數字值。表示在Region主機上運行的RPC實例的數量,這個屬性配置的值同樣被應用於Master主機上handler的數量。這個數值的設定可能會影響到HBASE的性能,建議有需要的老鐵去官網閱讀一下原文。 | 30 |
hbase.ipc.server.callqueue.handler.factor | 配置一個數字值。這個值感覺是一個比例值(或者說百分比),是一個介於0~1之間的值。表示handler與調用隊列(call queue)之間的資源分配關系吧。如果設定為0,則HBASE系統中所有的handler共用一個調用隊列,如果設定為1,則每一個handler都有它自己的調用隊列。 | 0.1 |
hbase.ipc.server.callqueue.read.ratio | 配置一個數字值。與上一條類似。它配置的是方法調用隊列(call queue)中讀請求的數量在整個調用隊列中的比例。這條屬性的值介於0~1之間。如果配置成0,表示不對調用隊列call queue作讀、寫請求分組操作,所有調用隊列對於讀、寫來說是共享的,哪個隊列會被用於哪種請求完全隨緣。如果配置成0.x的形式,則就會有0.x比例的調用隊列被分配給讀請求專用。如果配置成1,表示讀請求只會被分配到恆1個調用隊列,其余的全被分配給寫請求專用。 | 0.0 |
hbase.ipc.server.callqueue.scan.ratio | 配置一個數字值。用於將讀請求專用調用隊列(read call queue)按這條屬性配置的比例值來分配成短時讀取(small-read)調用隊列和長期讀取(long-read)調用隊列。其實我也不太理解這個短讀取隊列和長讀取隊列到底是什么意思。我猜,應該是短時讀取在讀取完畢后會被釋放資源吧。這條屬性的值如果被配置成0或者1,則短讀取和長讀取的比例在讀專用隊列中是隨緣分配的。設置成0.x則是按比例分配的。 如果有需要的老鐵,建議去閱讀一下官網原文,畢竟我對這條屬性的含義也不是很理解。 | 0 |
hbase.regionserver.msginterval | 配置一個整型數字值。Region主機與Master主機通信的時間間隔。 | 3000(ms) |
hbase.regionserver.logroll.period | 配置一個整型數字值。 這條不太懂。似乎是提交日志滾動覆蓋的周期。 | 3600000 |
hbase.regionserver.logroll.errors.tolerated | 配置一個整型數字值。 這條也不太懂。似乎是HBASE對連續的WAL的關閉錯誤次數容忍度。連續的WAL錯誤產生次數超過設定的值時,會讓該Region主機被中止運行。 | 2 |
hbase.regionserver.hlog.reader.impl | 配置一個程序類名。WAL文件讀取器的程序名稱。 | org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader |
hbase.regionserver.hlog.writer.impl | 配置一個程序類名。WAL文件寫出器的程序名稱。 | org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter |
hbase.regionserver.global.memstore.size | 算是配置一個整型數字值吧。表示Region服務器在新的更新被阻塞和強制刷新之前的最大內存占其總堆內存的大小。默認設置成Region服務器內存的40%。等待(阻塞)更新和強制刷新直到Region服務器中總內存使用量達到'hbase.regionserver.global.memstore.size.lower.limit'屬性中設置的值為止。本條屬性目前是被置為空的,目的是為了讓舊的屬性 'hbase.regionserver.global.memstore.upperLimit' 發揮作用。(搞不懂) | none |
hbase.regionserver.global.memstore.size.lower.limit | Region服務器在被強制刷新之前的最大內存占總內存的大小。默認設置成'hbase.regionserver.global.memstore.size'屬性中設置的值的95%。這段英文太繞了,看的很懵,有需要的老鐵自己去官網看原文吧。 | none |
hbase.systemtables.compacting.memstore.type | none | |
hbase.regionserver.optionalcacheflushinterval | 配置一個整型數字值。用於配置編輯操作在內存中的最大存在時長,超過這一設定時長后本次編輯操作將被自動刷新(being automatically flushed)。將該值設置為0會關閉自動刷新功能,編輯操作將會一直存在於內存中。 | 3600000(ms) |
hbase.regionserver.dns.interface | 配置Region服務器上報其IP地址的網絡接口的名稱。 | default |
hbase.regionserver.dns.nameserver | 被Region服務器用於確定Master的主機名以進行通信等操作的DNS的域名或IP地址 | default |
hbase.regionserver.region.split.policy | 配置一個Java類名字符串。Region的分割策略。當前可用的幾種Region分割策略類有:BusyRegionSplitPolicy, ConstantSizeRegionSplitPolicy, DisabledRegionSplitPolicy, DelimitedKeyPrefixRegionSplitPolicy, KeyPrefixRegionSplitPolicy, SteppingSplitPolicy。如果應用了DisabledRegionSplitPolicy策略的話,將會無法手動分割Region。 | org.apache.hadoop.hbase.regionserver.SteppingSplitPolicy |
唉,后面心情好了再更吧。。。