hbase的配置接上篇
hbase.client.write.buffer:htable客戶端寫緩沖區大小,默認是2097152BYTE,這個緩沖區就是為了寫數據的臨時存放,設置大了,浪費客戶端和服務端的存儲,設置小了,如果寫的數據多,太多的RPC又帶來網絡開銷,官方給的一個服務端存儲耗費評估計算是:hbase.client.write.buffer*hbase.regionserver.handler.count,服務端的rs的處理handler個數也很關鍵;
hbase.client.pause:pause時長,在hbase發生get或其他操作fail掉的時候進行pause的時間長度,默認是100;
hbase.client.retries.number:發生操作fail時的重試次數,結合上一個指標一起來控制總的重試時間,默認是35;
hbase.client.max.total.tasks:一個HTable實例可以提交給集群的最大并發任務數,默認是100;
hbase.client.max.perserver.tasks:一個HTable實例給一臺regionserver提交的最大并發任務數,默認是5;
hbase.client.max.perregion.tasks:客戶端連接一臺region的最大連接數,換句話說,當你有這么多個連接在region時,新的操作不被發送直到有操作完成,默認是1;
hbase.client.scanner.caching:做scanner的next操作時(如果再本地client沒找到)緩存的數據行數,這個值的設置也需要權衡,緩存的多則快,但吃內存,緩存的少則需要多的拉數據, 需要注意的事項是如果兩次調用的時間差大于scanner的timeout,則不要設置該值,默認是100;
hbase.client.keyvalue.maxsize:一個KeyValue實例的最大大小,這是存儲文件中一個entry的容量上限,合理的設置這個值可以控制regionserver的split,split不會拆keyvalue,所以把keyvalue的大小設置為regionserver大小的一個比例分數(可除)是個不錯的選擇,默認是10485760;
hbase.client.scanner.timeout.period:結合剛才的caching做的一個,scanner的超時時間,默認是60000毫秒;
hbase.client.localityCheck.threadPoolSize:做localityCheck的線程池大小,默認是2;
hbase.bulkload.retries.number:做bulk load的最大重試次數,默認是0,即代表不斷重試;
hbase.balancer.period:Master運行balancer的周期,默認是300000毫秒;
hbase.regions.slop:如果有regionserver的region數目超過average+(average*slop),則rebalance,默認是0.2;
hbase.server.thread.wakefrequency:服務線程的sleep時間,默認10000毫秒,比如log roller;
hbase.server.versionfile.writeattempts:退出前寫 version file的重試次數,默認3,每次嘗試的間隔由上一個參數控制;
hbase.hregion.memstore.flush.size:Memstore寫磁盤的flush閾值,超過這個大小就flush,默認是134217728;
hbase.hregion.preclose.flush.size:如果一個region的memstore的大小等于或超過這個參數的量,在關閉region時(放置關閉flag),要提前flush,然后region關閉下線,默認大小是5242880;
hbase.hregion.memstore.block.multiplier:如果memstore的大小滿足hbase.hregion.block.memstore * hbase.hregion.flush.size個byte,那么阻塞update,這個配置可以避免不必要的長時間split或者compact,甚至是OOME,默認是2;
hbase.hregion.memstore.mslab.enabled:開啟MemStore-Local Allocation Buffer,這個配置可以避免在高寫入的情況下的堆內存碎片,可以降低在大堆情況下的stop-the-world GC頻率,默認是true;
hbase.hregion.max.filesize:HStoreFile的最大尺寸,換句話說,當一個region里的列族的任意一個HStoreFile超過這個大小,那么region進行split,默認是10737418240;
hbase.hregion.majorcompaction:一個region的所有HStoreFile進行major compact的時間周期,默認是604800000 毫秒(7天);
hbase.hregion.majorcompaction.jitter:major compaction的發生抖動范圍,這么理解比較容易,就是說上一個參數不是一個嚴格周期,會有個抖動,這個參數就是這個抖動的比例,默認是0.5;
hbase.hstore.compactionThreshold:一個HStore存儲HStoreFile的個數閾值,超過這個閾值則所有的HStoreFile會被寫到一個新的HStore,需要平衡取舍,默認是3;
hbase.hstore.blockingStoreFiles:一個HStore存儲HStoreFile阻塞update的閾值,超過這個閾值,HStore就進行compaction,直到做完才允許update,默認是10;
hbase.hstore.blockingWaitTime:一個更強力的配置,配合上一個參數,當HStore阻塞update時,超過這個時間限制,阻塞取消,就算compaction沒有完成,update也不會再被阻塞,默認是90000毫秒;
hbase.hstore.compaction.max:每個minor compaction的HStoreFile個數上限,默認是10;
hbase.hstore.compaction.kv.max:在flushing或者compacting時允許的最大keyvalue個數,如果有大的KeyValue或者OOME的話則配置一個小的值,如果行數多且小則配置大值,默認是10;
hbase.storescanner.parallel.seek.threads:如果并行查找開啟的線程池大小,默認是10;
hfile.block.cache.size:一個配置比例,允許最大堆的對應比例的內存作為HFile和HStoreFile的block cache,默認是0.4,即40%,設置為0則disable這個比例,不推薦這么做;
hfile.block.index.cacheonwrite:在index寫入的時候允許put無根(non-root)的多級索引塊到block cache里,默認是false;
hfile.index.block.max.size:在多級索引的樹形結構里,如果任何一層的block index達到這個配置大小,則block寫出,同時替換上新的block,默認是131072;
hfile.format.version:新文件的HFile 格式版本,設置為1來測試向后兼容,默認是2;
hfile.block.bloom.cacheonwrite:對于組合布隆過濾器的內聯block開啟cache-on-write,默認是false;
io.storefile.bloom.block.size:一個聯合布隆過濾器的單一塊(chunk)的大小,這個值是一個逼近值,默認是131072;
hbase.rs.cacheblocksonwrite:當一個HFile block完成時是否寫入block cache,默認是false;