我知道映射器總是執行幾個映射操作,而reducer總是執行幾個reduce操作。換句話說,mapper(reducer)和map(reduce)操作之間的映射是一對多的映射。
現在我有一個問題,是tasktracker和mapper之間的一對一或一對多的映射嗎?是一個tasktracker對應hadoop中的mapper還是reducer?
回答
首先,我會向你解釋一個任務跟蹤器正是:
一個的TaskTracker是接受任務的集羣中的節點 - 地圖, 減少和整理操作 - 從JobTracker的。
每個TaskTracker都配置了一組插槽,這些插槽指示它可以接受的任務數量。當JobTracker嘗試在MapReduce操作中查找某處安排任務時,它首先在承載包含數據的DataNode的同一臺服務器上查找一個空插槽,如果沒有,則會在該計算機上的一個計算機上查找空插槽相同的機架。
TaskTracker生成一個單獨的JVM進程來完成實際的工作;這是爲了確保流程失敗不會使任務跟蹤器失效。 TaskTracker監視這些產生的進程,捕獲輸出和退出代碼。當流程成功或失敗時,跟蹤器通知JobTracker。 TaskTracker通常每隔幾分鐘發送一次心跳消息給JobTracker,以確保JobTracker它仍然活着。這些消息還通知JobTracker可用插槽的數量,因此JobTracker可以及時瞭解羣集工作中可以委派的位置。
,是的,這導致我們到一個點一個任務跟蹤器做的作業服務器很多操作(實際工作,即,地圖reduce任務),所以回答你的問題會
一個(作業服務器)到很多(任務跟蹤器)關係
最後一行是不正確的。
糾正方法:羣集中每個DataNode有一個任務跟蹤器,並且羣集中每個NameNode只有一個作業跟蹤器,假設您位於MRV1(非YARN)Hadoop羣集(Hadoop 1。 X)。
在mapreduce中 - 映射器的數量取決於輸入拆分的數量。
又會有每個數據節點的一個任務服務器
在情況下,如果有多個輸入分割單個節點-的分裂(按照數據局部性優化)內將在隊列中被執行在相應的機器JVM中(默認情況下,每個節點有兩個JVM執行操作)。
考慮到上述情況,將會有任務跟蹤器與MAPPER的一對多映射。
- 1. Hadoop中的Mapper和Reducer
- 2. 是否可以將屬性從mapper傳遞給hadoop中的reducer?
- 3. Mapper和Reducer是Hadoop版本2中的接口?
- 4. 如何在Hadoop 1.0.4中鏈接mapper/reducer?
- 5. Mapper和Reducer應該是內部類嗎?
- 6. Hadoop Mapper中Mapper/Reducer的設置和清理方法MapReduce
- 7. 在hadoop中實現多個mapper和單個reducer
- 8. 在Mapper或Reducer中處理異常的Hadoop最佳實踐是什麼?
- 9. 默認/找到hadoop 1.x中的mapper和reducer的數量
- 10. Hadoop中reducer的好處是什麼?
- 11. 如何在Hadoop的Mapper和Reducer中提供子類?
- 12. Mapper和Reducer類是否需要部署在Hadoop集羣的所有節點上
- 13. Hadoop的Mapper對象是否跨多個線程共享?
- 14. 如何從mapper或reducer外部增加hadoop計數器?
- 15. 使用Java Mapper/Reducer進行Hadoop流式處理
- 16. reducer只是不會開始在hadoop streaming
- 17. 爲什麼聲明Mapper和Reducer類是靜態的?
- 18. Hadoop Mapper類中的參數
- 19. mapreduce:我應該避免在mapper/reducer內創建對象嗎?
- 20. 如何在Mapper和Reducer類中共享一個變量?
- 21. Hadoop Reducer內存中的值?
- 22. 在Python中使用CountVectorizer Mapper Reducer
- 23. 在Mapper類中執行Reducer操作
- 24. 表單應該包含一個對象還是一個對象?
- 25. pthread_cond_t是一個對象還是什麼?
- 26. Mapper將值傳給不同的mappers-reducer
- 27. 知道mapper和reducer的用法
- 28. 的Hadoop/cygwin的失敗的TaskTracker命令
- 29. Hadoop的:的TaskTracker和JobTracker的不start-dfs.sh
- 30. 一個Mongoose控制器應該是一個類還是一個對象?