M / R程序中map和reduce任务的数量没有变化

时间:2013-10-18 21:04:15

标签: hadoop mapreduce cassandra task

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

1 个答案:

答案 0 :(得分:1)

请考虑以下几点来检查瓶颈可能在哪里 -

  1. 仅配置增加map或reduce任务文件的数量是行不通的。您需要硬件来支持它。 Hadoop很快,但正如你所提到的那样处理一个巨大的文件 你需要有更多的parellel地图和减少任务 运行。实现您需要的更多处理器。要获得更多 处理器你需要更多的机器(节点)。例如,如果你有 2台机器每台8个处理器,您将获得总处理能力 因此,总共16个map和reduce任务可以并行运行,并且只要插槽从你拥有的16个插槽中空闲,下一组任务就会进入。 现在,当你再添加一台带8个处理器的机器时,现在有24个。

  2. 您用于map和reduce的算法。即使你有 处理能力,这并不意味着你的Hadoop应用程序会 执行除非您的算法执行。情况可能就是这样 单个地图任务需要永远完成。