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