0

我有一个问题..我有一个从 cassandra 获取输入的 mapreduce 程序。我的输入有点大,大约 100000000 个数据。我的问题是我的程序处理时间太长,但我认为 mapreduce 对于大量数据来说既好又快。所以我想我在 map 和 reduce 任务的数量上可能有问题。我使用 JobConf、Job 以及 conf/mapred-site.xml 设置了 map 和 reduce 请求的数量,但我没有看到任何变化.. 在我的日志中,首先有地图 0% 减少 0%,经过大约 2 小时的工作,它显示地图 1% 减少 0%..!!我该怎么办?请帮助我,我真的很困惑......

4

1 回答 1

1

请考虑这些点来检查瓶颈可能在哪里——

  1. 仅仅配置增加 map 或 reduce 任务文件的数量是行不通的。你需要硬件来支持它。Hadoop 速度很快,但要处理一个巨大的文件,正如您所提到的,您需要运行更多数量的并行映射和减少任务。为了实现你需要更多的处理器。要获得更多处理器,您需要更多机器(节点)。例如,如果您有 2 台机器,每台机器有 8 个处理器,那么您的总处理能力约为 16。因此,总共 16 个 map 和 reduce 任务可以并行运行,并且下一组任务会在插槽未被占用时立即进入在您拥有的 16 个插槽中。现在,当您再添加一台具有 8 个处理器的机器时,您现在有 24 个。

  2. 您用于 map 和 reduce 的算法。即使您拥有处理能力,但这并不意味着您的 Hadoop 应用程序将执行,除非您的算法执行。单个地图任务可能需要很长时间才能完成。

于 2013-10-19T08:01:31.237 回答