0
- 在嘗試超過10十億條記錄轉儲到HBase的,這將 平均增長在10萬左右一天,然後試圖在記錄的全表掃描 讀取行。我知道全面掃描hdfs將 比hbase更快。
- Hbase正在用於對hdfs上的不同數據 進行排序。該應用程序正在使用spark構建。
- 數據被批量加載到hbase上。由於各種2G限制,3G的初始測試將區域大小降至1.2G(仍需要進一步詳細調查)。
- 掃描緩存爲1000,緩存塊關閉
- 總的hbase大小在6TB範圍內,產生跨5個區域服務器(節點)的數千個區域。 (建議低數百)。
- Spark工作基本上是在每一行上運行,然後根據某個範圍內的列計算某些內容。
- 使用內部使用TableInputFormat的spark-on-hbase,作業在大約7.5小時內運行。
- 爲了繞過區域服務器,創建了一個快照並改爲使用TableSnapshotInputFormat。這項工作在abt 5.5小時完成。
從HBase的成火花讀取時,區域似乎支配 火花分區並且因此2G限制。 Hence problems with caching這是否意味着區域大小需要較小?
繞過區域西弗斯和 從快照直接讀取,還創建它分裂各地區 所以仍將落入區域大小問題以上TableSnapshotInputFormat。 可能直接從hfiles中讀取鍵值,在這種情況下, 拆分大小由hdfs塊大小決定。是否有一個 實現掃描儀或其他可以直接從hfile讀取一行 的實用程序(特定於快照引用的hfile)?
是否有任何其他指示可以幫助提升性能的配置說明?例如hdfs塊大小等?主要用例大部分是全表掃描。
嗯,這裏有很多信息,但它不能解釋爲什麼工作需要7.5小時。所以如果我理解正確,你的工作輸入是大約5000個地區的10B記錄,它應該在5個節點上產生5000個映射器,所以每臺機器〜1000個映射器,每個映射器2M行。如果一切正確,你的平均映射器時間是多少? – AdamSkywalker
正在使用火花。使用TableInputFormat的平均任務時間約爲4.0分鐘,使用TableSnapshotInputFormat的平均任務時間爲3.7分鐘。 – sunny