我目前正在研究 Java MapReduce。我们拥有读取 Java Mapper 类中的每一行然后针对 DB 进行一些验证的功能。问题是在 DB 中我们有大约 500 万条记录。 Mapper 的输入文件也可能包含@100 万条记录。 所以就像我们扫描 800 万条记录的每一行一样。 这个过程需要很长时间。 任何人都可以建议我们是否有更好的方法来提高性能。
运行多个 map ,并行执行(虽然 Hadoop Java Map reduce 本身就是这样做的)但是看当前时间我认为它不应该花费这么多时间 可能是我缺少 Java Map reduce 等的任何配置。
提前感谢您的帮助。
最佳答案
我建议不要验证 Java 代码中的行,而是使用限制性更强的 SQL WHERE 子句来过滤不需要的行。根据行数差异,它应该会给你几个 % 的性能。
我还建议您对 Apache Spark 感兴趣这比 Hadoop 覆盖要快得多。
关于hadoop - 提高 Java MapReduce 性能的思路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38916886/