簡體   English   中英

Apache Crunch PTable collectValues如何在內部工作

[英]How does Apache Crunch PTable collectValues work internally

我正在瀏覽一些與HDFS架構和Apache緊縮PTable相關的文檔。 根據我的理解,當我們生成PTable時,數據將內部存儲在HDFS中的Data節點之間。

這意味着,如果我有帶有<K1,V1>,<K2,V2>,<K1,V3>,<K3,V4>,<K2,V5>和兩個在HDFS中的數據節點D1和D2的PTable。 假設每個數據節點可容納3對。 因此D1將保持<K1,V1>,<K2,V2>,<K1,V3> ,D2將保持<K3,V4>,<K2,V5>

如果我在此PTable上執行collectValues,則在內部運行另一個map-reduce作業以從PTable獲取這些值並生成成對的<K,Collection<V>> 所以最后我將有<K1,Collection<V1,V3>>, <K2,Collection<V2,V5>> and <K3,Collection<V4>> 同樣,這些對將被分配到不同的數據節點。

現在,我懷疑如何將Collection值(V1,V3 of K1)存儲在生成的PTable中? 該數據也將分布在各個節點上嗎,即

  • V1存儲在D1中

  • V3存儲在D2中

或者,V1和V3僅存儲在一個節點中。

如果密鑰的所有收集值都存儲在一個節點(未分配)中,那么對於大型數據集,對每個密鑰的收集值的處理是否會變慢?

同一鍵的所有值都將在一個節點中。 這通常是map reduce的概念-而不是緊縮。 原因是您希望將所有項目放在一個地方-這是您要實現的本地化。

暫無
暫無

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

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