我对Hadoop任务分配感到困惑。假设我们有5个输入数据D1,D2,D3,D4,D5,那么我们有5个作业J1,J2,J3,J4,J5,作业J1的输入数据是D1等等。现在,如果D1分成4块,并且这些块沿着数据中心分布,那么J1现在也会被分解为任务(映射和减少)现在我们有多少个映射和减少任务的J1?数据局部性如何保存?这是否意味着mapTask1只需要一个D1的数据块?你能给我一个很好的解释来源吗?Hadoop任务分配
1
A
回答
1
如果D1在HDFS中存储为4个块,并且您用于读取文件的输入格式可以将文件分割(例如gz压缩文件不可拆分),那么您将获得4个作业的地图任务使用D1作为输入。
您可以通过修改mapred.min.split.size
和mapred.max.split.size
配置属性(再次假设您的输入文件是可拆分的,并且您的输入格式也支持它)来增加/减少地图任务的数量。
至于数据局部性,提交作业时,从名称节点获取输入文件(D1)的块位置,并且创建用于运行作业的映射任务保留此信息(D1,块0,位于节点1中,称为'分割'信息)。
当作业追踪器计划您的任务时,它将检查哪些任务追踪器具有空闲映射槽,然后确定(如果可能)您的作业的哪些任务具有输入数据块对于任务“本地”跟踪器。
减少任务的数量由您来配置。
相关问题
- 1. 如何使用yourkit配置hadoop任务
- 2. Hadoop:如何将任务均匀分配给所有节点
- 3. Hadoop Fair Scheduler未将任务分配给某些节点
- 4. 分离Hadoop映射并减少任务
- 5. Hadoop堆分配
- 6. Hadoop任务进度
- 7. 主机中任务的分配/分配
- 8. TBB任务分配断言
- 9. WorkFront(AtTask)分配任务
- 10. 如何分配任务
- 11. AtTask分配类别任务
- 12. Hadoop任务日志问题
- 13. Hadoop地图任务失败
- 14. Hadoop Streaming任务失败
- 15. Hadoop的map任务从
- 16. Hadoop Map任务获取StackOverflowError
- 17. Hadoop Map/Reduce工作分配
- 18. Hadoop的输入分配(MapV1)
- 19. 输入分配Hadoop中
- 20. Hadoop的分配差异
- 21. Mylyn任务 - 在代码中使用TODO分配任务?
- 22. hadoop上的分布式数据分配
- 23. hadoop如何减少任务处理地图分组数据
- 24. 在伪分布式hadoop中并行运行的Mapreduce任务
- 25. MRJob和mapreduce通过Hadoop进行任务分区
- 26. 哪些jira任务分配给我?
- 27. 并行任务分配的等负载
- 28. 将多个用户分配给“任务”
- 29. 控制Spark中任务的分配
- 30. Cordys - 调度算法 - 任务分配