hadoop - 提高 Java MapReduce 性能的思路

标签 hadoop mapreduce

我目前正在研究 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/

相关文章:

performance - 如何提高朴素贝叶斯分类器的准确性?

具有单个映射器和两个不同 reducer 的 hadoop 作业

java - 如何在 Hadoop map/reduce 的映射器中写入多个文件?

eclipse - 霍顿沙盒2.1中的mapreduce wordcount程序

hadoop - 无法使用 gethue/hue docker 镜像配置 HDFS 地址

hadoop - Windows 上 hadoop 中的 Eclipse 插件

hadoop - Amazon Elastic Cloud 无法在子网上启动

java - 如何在pom项目之外引用代码的相对路径?

java - 如何限制 AppEngine 上的 appengine-mapreduce?

hadoop - 如何从hadoop的临时文件中获取数据?