我知道映射器总是执行几个映射操作,而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 1.x中的mapper和reducer的数量
- 2. Hadoop中reducer的好处是什么?
- 3. 如何在Hadoop的Mapper和Reducer中提供子类?
- 4. Hadoop的Mapper对象是否跨多个线程共享?
- 5. 为什么声明Mapper和Reducer类是静态的?
- 6. 的UnknownHostException上的TaskTracker在Hadoop集群
- 7. 一个Mongoose控制器应该是一个类还是一个对象?
- 8. 单个hadoop Mapper对象用于map()的多个调用吗?
- 9. Hadoop是否将密钥分成几个reducer池?
- 10. 使用多个reducer时,Hadoop中的键/值对如何分布?
- 11. 我的JSON是一个数组还是一个对象?
- 12. xyz场景需要多少mapper和reducer?
- 13. Hadoop:将cgroup用于TaskTracker任务
- 14. 如何收集hadoop tasktracker状态?
- 15. 预计reducer是一个函数
- 16. 从另一个reducer中的一个reducer访问reducer状态的一部分
- 17. 是一个IQueryable查询还是只能查询一个对象?
- 18. 服务和DAO之间的关系应该是一对一还是一对多?
- 19. 我应该在类中包含另一个对象还是另一个类的子类?是或是否?
- 20. 使用FileAlreadyExistsException的Reducer中的Hadoop MultipleOutputs
- 21. T应该是一个参数,一个函数还是什么?
- 22. 时区应该是一个常数还是一个变量?
- 23. 一对一关系还是一对多?
- 24. Hadoop返回映射器的输出而不是reducer
- 25. copy.deepcopy还是新建一个对象?
- 26. 在进入Reducer之前,Mapper的输出键类型是否可以更改?
- 27. React + Redux - Reducer子状态不是一个对象?
- 28. 如何确定Hadoop中Mapper中的最后一条记录?
- 29. 如何在Scala 2.9.0中实现Hadoop Mapper?
- 30. 我应该每次创建一个新对象还是创建一个对象?