HBase的配置 完結篇:
hbase.rpc.server.engine:hbase 做rpc server的調度管理類,實現自org.apache.hadoop.ipc.RpcServerEngine,默認是org.apache.hadoop.hbase.ipc.ProtobufRpcServerEngine;
hbase.rpc.timeout:Hbase client發起遠程調用時的超時時限,使用ping來確認連接,但是最終會拋出一個TimeoutException,默認值是60000;
hbase.rpc.shortoperation.timeout:另一個版本的hbase.rpc.timeout,控制短操作的超時時限,比如region server 匯報master的操作的超時時限可以設置小,這樣有利于master的failover,默認是10000;
hbase.ipc.client.tcpnodelay:默認是true,具體就是在tcp socket連接時設置 no delay;
hbase.master.keytab.file:kerberos keytab 文件的全路徑名,用來為HMaster做log,無默認值;
hbase.master.kerberos.principal:運行HMaster進程時需要kerberos的principal name,這個配置就是這個name的值,形如:hbase/_HOST@EXAMPLE.COM;
hbase.regionserver.keytab.file:kerberos keytab 文件的全路徑名,用來為HRegionServer做log,無默認值;
hbase.regionserver.kerberos.principal:運行HRegionServer進程時需要kerberos的principal name,這個配置就是這個name的值,形如:hbase/_HOST@EXAMPLE.COM;
hadoop.policy.file:RPC服務器做權限認證時需要的安全策略配置文件,在Hbase security開啟后使用,默認是habse-policy.xml;
hbase.superuser:Hbase security 開啟后的超級用戶配置,一系列由逗號隔開的user或者group;
hbase.auth.key.update.interval:Hbase security開啟后服務端更新認證key的間隔時間:默認是86400000毫秒;
hbase.auth.token.max.lifetime:Hbase security開啟后,認證token下發后的生存周期,默認是604800000毫秒;
hbase.ipc.client.fallback-to-simple-auth-allowed:client使用安全連接去鏈接一臺非安全服務器時,服務器提示client切換到SASL SIMPLE認證模式(非安全),如果設置為true,則client同意切換到非安全連接,如果false,則退出連接;
hbase.coprocessor.region.classes:逗號分隔的Coprocessores列表,會被加載到默認所有表上。在自己實現了一個Coprocessor后,將其添加到Hbase的classpath并加入全限定名。也可以延遲加載,由HTableDescriptor指定;
hbase.rest.port:Hbase REST服務器的端口,默認是8080;
hbase.rest.readonly:定義REST服務器啟動的模式,有兩種方式,false:所有http方法都將被通過-GET/PUT/POST/DELETE,true:只有get方法ok。默認值是false;
hbase.rest.threads.max:REST服務器線程池的最大線程數,池滿的話新請求會自動排隊,限制這個配置可以控制服務器的內存量,預防OOM,默認是100;
hbase.rest.threads.min:同上類似,最小線程數,為了確保服務器的服務狀態,默認是2;
hbase.rest.support.proxyuser:使REST服務器支持proxy-user 模式,默認是false;
hbase.defaults.for.version.skip:是否跳過hbase.defaults.for.version的檢查,默認是false;
hbase.coprocessor.master.classes:由HMaster進程加載的coprocessors,逗號分隔,全部實現org.apache.hadoop.hbase.coprocessor.MasterObserver,同coprocessor類似,加入classpath及全限定名;
hbase.coprocessor.abortonerror:如果coprocessor加載失敗或者初始化失敗或者拋出Throwable對象,則主機退出。設置為false會讓系統繼續運行,但是coprocessor的狀態會不一致,所以一般debug時才會設置為false,默認是true;
hbase.online.schema.update.enable:設置true來允許在線schema變更,默認是true;
hbase.table.lock.enable:設置為true來允許在schema變更時zk鎖表,鎖表可以組織并發的schema變更導致的表狀態不一致,默認是true;
hbase.thrift.minWorkerThreads:線程池的core size,在達到這里配置的量級后,新線程才會再新的連接創立時創建,默認是16;
hbase.thrift.maxWorkerThreads:顧名思義,最大線程數,達到這個數字后,服務器開始drop連接,默認是1000;
hbase.thrift.maxQueuedRequests:Thrift連接隊列的最大數,如果線程池滿,會先在這個隊列中緩存請求,緩存上限就是該配置,默認是1000;
hbase.thrift.htablepool.size.max:Thrift服務器上table pool的最大上限,默認是1000;
hbase.offheapcache.percentage:JVM參數-XX:MaxDirectMemorySize的百分比值,默認是0,即不開啟堆外分配;
hbase.data.umask.enable:開啟后,文件在regionserver寫入時會 有權限相關設定,默認是false不開啟;
hbase.data.umask:開啟上面一項配置后,文件的權限umask,默認是000;
hbase.metrics.showTableName:是否為每個指標顯示表名前綴,默認是true;
hbase.metrics.exposeOperationTimes:是否進行關于操作在使用時間維度的指標報告,比如GET PUT DELETE INCREMENT等,默認是true;
hbase.snapshot.enabled:是否允許snapshot被使用、存儲和克隆,默認是true;
hbase.snapshot.restore.take.failsafe.snapshot:在restore過程中,如果失敗則啟用snapshot替換,成功則刪除掉snapshot,默認開啟true;
hbase.snapshot.restore.failsafe.name:剛才所說過程中snapshot的名字,默認是hbase-failsafe-{snapshot.name}-{restore.timestamp};
hbase.server.compactchecker.interval.multiplier:檢查是否需要compact的時間間隔,一般情況是在比如memstore flush后或者其他事件觸發compact的,但是有時也需要不同的compact策略,所以需要周期性的檢查具體間隔=hbase.server.compactchecker.interval.multiplier * hbase.server.thread.wakefrequency,默認1000;
hbase.lease.recovery.timeout:在dfs 租約超時時限,超時則放棄,默認是900000;
hbase.lease.recovery.dfs.timeout:dfs恢復租約調用的超時時限,默認是64000;