繼之前寫的設計和使用tip,這里補充一下hbase所有的配置項。之前涉及的一個項目在hbase設計上存在缺陷,當進入時已經存在著很多rowkey設計和讀寫問題,現在重讀hbase文檔,把所有的配置項整理一遍。
hbase.tmp.dir:本地文件系統的臨時目錄,默認是${java.io.tmpdir}/hbase-${user.name};
hbase.rootdir:hbase持久化的目錄,被所有regionserver共享,默認${hbase.tmp.dir}/hbase,一般設置為hdfs://namenode.example.org:9000/hbase類似,帶全限定名;
hbase.cluster.distributed:hbase集群模式運作與否的標志,默認是false,開啟需要設置為true,false時啟動hbase會在一個jvm中運行hbase和zk;
hbase.zookeeper.quorum:重要的也是必須設置的,啟動zk的服務器列表,逗號分隔,cluster模式下必須設置,默認是localhost,hbase客戶端也需要設置這個值去訪問zk;
hbase.local.dir:本地文件系統被用在本地存儲的目錄,默認${hbase.tmp.dir}/local/;
hbase.master.port:hbase master綁定的端口,默認是60000;
hbase.master.info.port:hbase master web 界面的端口,默認是60010,設置為-1可以禁用ui;
hbase.master.info.bindAddress:master web界面的綁定地址,默認是0.0.0.0;
hbase.master.logcleaner.plugins:清理日志的插件列表,逗號分隔,被LogService調用的LogCleanerDelegate,可以自定義,順序執行,清理WAL和HLog;默認org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner
hbase.master.logcleaner.ttl:HLog在.oldlogdir目錄中生存的最長時間,過期則被Master起線程回收,默認是600000;
hbase.master.hfilecleaner.plugins:HFile的清理插件列表,逗號分隔,被HFileService調用,可以自定義,默認org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner
hbase.master.catalog.timeout:Catalog Janitor從master到META的超時時間,我們知道這個Janitor是定時的去META掃描表目錄,來決定回收無用的regions,默認是600000;
fail.fast.expired.active.master:如果master過期,那么不需要從zk恢復,直接終止,默認是false;
hbase.master.dns.interface:master的dns接口,向該接口提供ip,默認是default;
hbase.master.dns.nameserver:master使用的dns主機名或者ip,默認是default;
hbase.regionserver.port:regionserver綁定的端口,默認是60020;
hbase.regionserver.info.port:regionserver的web界面端口,-1取消界面,默認是60030;
hbase.regionserver.info.bindAddress:regionserver的web綁定,默認是0.0.0.0;
hbase.regionserver.info.port.auto:master或者regionserver是否自動搜索綁定的端口,默認是false;
hbase.regionserver.handler.count:regionserver上rpc listener的個數,http://kenwublog.com/hbase-performance-tuning把這個配置稱為io線程數,其實雷同,就是說在regionserver上一個處理rpc的handler,默認是30;
hbase.regionserver.msginterval:regionserver向master發消息的間隔,默認3000毫秒;
hbase.regionserver.optionallogflushinterval:如果沒有足夠的entry觸發同步,那么過了這個間隔后HLog將被同步到HDFS,默認是1000毫秒;
hbase.regionserver.regionSplitLimit:regionsplit的最大限額,默認是MAX_INT=2147483647,設置這個限制后,在到達限制時region split就不會再進行;
hbase.regionserver.logroll.period:不管有多少版本,直接roll掉commit log的周期,也就是說一個固定的時間周期,到期就roll,默認是3600000毫秒;
hbase.regionserver.logroll.errors.tolerated:可接受的WAL關閉錯誤個數,到達后將觸發服務器終止;設置為0那么在WAL writer做log rolling失敗時就停止region server,默認是2;
hbase.regionserver.hlog.reader.impl:HLog 文件reader的實現類,默認是org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader;
hbase.regionserver.hlog.writer.impl:HLog 文件writer的實現類,默認是org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter;
hbase.regionserver.global.memstore.upperLimit:memstore在regionserver內存中的上限,屆時新的update被阻塞并且flush被強制寫,默認是0.4就是堆內存的40%;阻塞狀態持續到regionserver的所有memstore的容量到達hbase.regionserver.global.memstore.lowerLimit;
hbase.regionserver.global.memstore.lowerLimit:memstore在regionserver內存中的最大上限,到達時flush就被強制寫,默認是0.38等價于38%的內存容量;
hbase.regionserver.optionalcacheflushinterval:一個edit版本在內存中的cache時長,默認3600000毫秒,設置為0的話則禁止自動flush;
hbase.regionserver.catalog.timeout:regionserver的Catalog Janitor訪問META的超時時間,默認是600000;
hbase.regionserver.dns.interface:同master類似~~不講
hbase.regionserver.dns.nameserver:同master類似
zookeeper.session.timeout:這是個值得說道一下的配置,首先ZK客戶端要用,Hbase使用zk的客戶端聯系總體,同時也被用來啟動一個zk server,作為zk的maxSessionTimeout,總的來說就是regionserver與zk的關鍵參數,如果連接超時,master會重新的balance,regionserver也會被從集群名單中清除,默認是90000;一個問題是如果zk 由hbase自己維護,那么該參數作為regionserver連接是一個值,如果zk在另外的集群,那么zk自己的maxSessionTimeout參數將優先于Hbase的該參數,屆時可能會發生超時時間不同的問題;
zookeeper.znode.parent:znode存放root region的地址,默認是root-region-server;
zookeeper.znode.acl.parent:root znode的acl,默認acl;
hbase.zookeeper.dns.interface:zk的dns接口,默認default;
hbase.zookeeper.dns.nameserver:zk的dns服務地址,默認default;
hbase.zookeeper.peerport:zk的peer之間的通訊端口,默認是2888;
hbase.zookeeper.leaderport:zk選leader的通訊端口,默認是3888;
hbase.zookeeper.useMulti:zk支持多重update,要求zk在3.4版本以上,默認是false;
hbase.config.read.zookeeper.config:讓hbaseconfig去讀zk的config,默認false,也不支持開啟,這個功能很搞笑~~個人觀點;
hbase.zookeeper.property.initLimit:zk的配置,同步的屬性個數限制,默認10個~~沒用;
hbase.zookeeper.property.syncLimit:zk的配置,同步時的每次請求的條數,默認5個;
hbase.zookeeper.property.dataDir:zk的配置,snapshot存放的目錄,默認是${hbase.tmp.dir}/zookeeper;
hbase.zookeeper.property.clientPort:zk的配置,client連zk的端口,默認2181;
hbase.zookeeper.property.maxClientCnxns:zk的配置,允許接入zk的最大并發連接數的限制,按ip分配,默認300;