我是hadoop mapreduce框架的新手。我自己閱讀了很多教程並理解了框架。我已經成功配置了僞分佈式模式的hadoop設置。我有兩個特定的任務需要在Hadoop MapReduce中完成。Hadoop MapReduce思維
我有很多很多數據文件,格式如下。
交換消息的數量; USER1;用戶2;時間戳;
一個例子是:5; John Doe;約翰·史密斯; 1/1/1900;
我想什麼來完成是
做數據上的用戶名遮蔽(像用戶名上構建SHA256,所以他們是匿名的。)
聚集的數交換在一定時期內的消息(比如一週)
現在讓我們來對我的問題: 據我目前所知,該hadoop mapreduce框架旨在完成第二項任務。我可以映射鍵值(兩個用戶名之間交換消息,消息的數量),並減少它獲得在給定的時間段內(例如1周)的消息總數。但是第一項任務呢?當我做數據屏蔽時,沒有減少操作,這個任務不是hadoop mapreduce的東西嗎?我想要並行執行,但不能真正想到應用hadoop mapreduce來完成第一項任務。我需要處理的數據文件數量非常大,因此無論如何都會考慮使用hadoop mapreduce。
感謝您的意見!
P.S .:這個問題可以概括爲「哪種類型的任務是hadoop MapReduce最適合的?」
爲什麼你不能做地圖部分做轉換? Map/Reduce的Map部分也可以用來轉換數據,所以你的任務是:Map - > Record to#;編碼用戶1;編碼用戶2;日期。 Reduce會將它轉換成你需要的統計數字 – abatyuk
你說得對,我只能做地圖部分。當我只做地圖部分時,是否是一種很好的方法,將被屏蔽的記錄文件存儲回HDFS,並再次讀取它以在被屏蔽的記錄上執行減少作業?主內存不能保存整個數據集。 – Bob
據我瞭解,reducer等待mappers完成他們的工作,在我的情況下意味着所有的數據文件都必須進行轉換。你能解釋一下你在想的工作流程嗎? – Bob