Hadoop:多个地图任务如何确保它们不竞争资源?

时间:2012-10-24 05:11:44

标签: hadoop mapreduce

我将在Hadoop中同时运行3个作业,它们是无关的。

其中一个的输入是通过HTTP,慢下载的大文件。

其他人是来自HDFS 和S3N文件系统的输入。

我很想在Hadoop中构建这种东西。

  • 如何优化地图阶段?
  • 似乎合乎逻辑的是,我希望磁盘读取至少发生同时 下载正在发生。
  • 我肯定不希望所有磁盘操作 等待下载(每次下载20次可能是一小时)< / LI>
  • 我认为我不想在同时发生多个,大的,磁盘读取

这个地图/输入/数据采集阶段如何由Hadoop处理?

1 个答案:

答案 0 :(得分:0)

在mapreduce中,通常所有地图/缩减器都做同样的工作。

但您可以通过两种不同的解决方案实现目标:

1.基本上,您应该考虑将作业分成两个独立的作业,然后以每个节点指定的任务数启动它们。 https://issues.apache.org/jira/browse/HADOOP-5170但此修补程序仅适用于cdh,而不适用于基本分发。

2.另一种选择是实现自己的输入格式,它将能够编码地图操作并平衡每个节点不同任务的数量。这可以通过在InputSplit中为每个拆分指定主机来完成。