簡體   English   中英

用一百萬次掃描運行hbase mapreduce作業有意義嗎?

[英]Does it make sense to run an hbase mapreduce job with a million Scans?

我在hbase中有一個數據集,該數據集足夠大,要花幾個小時才能對整個數據集運行mapreduce作業。 我希望能夠使用預先計算的索引來分解數據:每天一次映射整個數據集並將其分解為多個索引:

  • 所有用戶樣本的1%
  • 參與特定A / B實驗的所有用戶
  • 每晚預發布頻道上的所有用戶。
  • 所有具有特定附加組件的用戶(或本周我們感興趣的任何條件)

我的想法是只存儲相關記錄的行ID列表,然后以后人們只能在這些行上執行很少的mapreduce工作。 但是1%的樣本仍然是100萬行數據,我不確定如何在一百萬行的列表上構造mapreduce作業。

如果要由一百萬個不同的Scan對象組成查詢,那么使用initTableMapperJob(List scans)創建表映射器作業是否有意義? 還有其他方法可以使我仍然可以將計算和I / O有效地分配給hbase集群嗎?

不要進行一百萬次掃描。 如果您有一百萬個不連續的ID,則可以使用自定義輸入格式在ID列表上運行map / reduce作業,以便將列表划分為合理數量的分區(我猜這是您的數量的4倍) m / r插槽,但該數字不基於任何值)。 這將為您提供一百萬次獲取操作,這可能比一百萬次掃描要好。

如果您有幸擁有更合理數量的連續范圍,那么掃描將比直接獲取更好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM