0

我将在 Hadoop 中同时运行 3 个作业,它们不相关。

其中之一的输入是通过 HTTP,大文件的下载速度很慢。

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

我是在 Hadoop 中构建这种东西的新手。

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

Hadoop 如何处理这个映射/输入/数据采集阶段?

4

1 回答 1

0

在 mapreduce 中,通常所有的 map/reducer 都做同样的工作。

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

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

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

于 2012-10-25T06:15:25.330 回答