首先我們簡要說明下hbase的執行過程:
1.新資料在hdfs中生成hlog的日誌檔案,同時插入到記憶體的memtable中
2.當memtable的大小超過hbase.hregion.memstore.flush.size的時候,將會把資料重新整理到hdfs中存成hfile格式
3.當hfile超過hbase.hregion.max.filesize,則會split成2個hfile檔案,根據region對半拆分
4.當memtable滿的時候,會將資料存成hfile跟拆分過的hfile在乙個資料夾,當memtable變的檔案超過hbase.hstore.compactionthreshold,則進行大的compaction操作,注意,這個操作非常耗費時間和系統資源。當compaction完之後的資料超過hbase.hregion.max.filesize則進行split.
由此可見:
hbase.hregion.max.filesize假如太小,則會影響檔案開啟的控制代碼數。太大假如到了要做split和compaction的時候,則非常耗費效能。
hbase.hregion.memstore.flush.size假如太小,則頻繁進行磁碟寫操作,假如太大,則一次性寫入時間很長。
hbase.hstore.compactionthreshold假如太小,同時hbase.hregion.memstore.flush.size也很小,則在第一次split之後,會頻繁做compaction操作,假如太大,並且hbase.hregion.max.filesize也很大,則compaction的時候很恐怖了。。。
結論則是,看你的系統是需要吞吐量和平均響應時間之間做乙個選擇。並且假如hbase.hregion.memstore.flush.size太大,雖然可以提高讀寫效率,萬一hlog丟失,會造成部分資料的丟失,也是需要付出的代價。
hbase效能相關選項說明
首先我們簡要說明下hbase的執行過程 1.新資料在hdfs中生成hlog的日誌檔案,同時插入到記憶體的memtable中 2.當memtable的大小超過hbase.hregion.memstore.flush.size的時候,將會把資料重新整理到hdfs中存成hfile格式 3.當hfile超過...
squid透明相關選項的說明
5.3.2squid的相關配置選項 設定squid.conf中的相關選項,如下所示 說明 在本例中,我們假設squid的http監聽埠為3128,即squid預設設定值。然後,把所有來自於客戶端web請求的包 即目標埠為80 重定向到3128埠。這兩個選項本來是用來定義squid加速模式的。在這裡我...
HBase的效能優化和相關測試
hbase的寫效率還是很高的,但其隨機讀取效率並不高 可以採取一些優化措施來提高其效能,如 1.啟用lzo壓縮,見這裡 2.增大hbase.regionserver.handler.count數為100 3.增大hfile.block.cache.size為0.4,提高cache大小 4.增大hba...