我有个问题。。我有一个mapreduce程序,可以从cassandra那里得到输入。我的输入有点大,大约有100000000个数据。我的问题是,我的程序需要太长的时间来处理,但我认为mapreduce是好的和快速的大数据量。所以我想也许我在Map和减少任务的数量上有问题。。我使用jobconf、job和conf/mapred-site.xml设置了map和reduce请求的数量,但没有看到任何更改。。在我的日志中,首先是Map0%减少0%,大约工作2小时后,它显示Map1%减少0%。。!!我该怎么办?请帮帮我我真的很困惑。。。
1条答案
按热度按时间3bygqnnd1#
请考虑以下几点,以检查瓶颈可能在哪里--
仅仅配置以增加Map文件的数量或减少任务文件是行不通的。你需要硬件来支持。hadoop很快,但是要处理一个巨大的文件,正如您所提到的,您需要有更多的并行Map并减少运行的任务。为了达到你需要更多处理器的目的。要获得更多的处理器,您需要更多的机器(节点)。例如,如果您有两台机器,每台机器有8个处理器,那么您的总处理能力大约为16。因此,总共有16个map和reduce任务可以并行运行,一旦16个插槽中的插槽没有被占用,下一组任务就会出现。现在,当您再添加一台具有8个处理器的机器时,您现在拥有24个处理器。
用于Map和减少的算法。尽管您有处理能力,但这并不意味着您的hadoop应用程序将执行,除非您的算法执行。在这种情况下,一个map任务可能需要很长时间才能完成。