Hadoop 提高Java MapReduce性能的想法

Hadoop 提高Java MapReduce性能的想法,hadoop,mapreduce,Hadoop,Mapreduce,我目前正在研究Java MapReduce。我们有一个功能,我们读取Java Mapper类中的每一行,然后对DB进行验证。问题是在DB中,我们有大约500万条记录。 Mapper的输入文件可能还包含@100万条记录。 这就像我们扫描800万条记录的每一行一样。 这一过程需要非常长的时间。 有人能建议我们是否有更好的方法来提高性能吗 运行多个映射,并行执行(虽然Hadoop Java Map reduce本身就是这样做的),但从目前来看,我认为不应该花费这么多时间 可能是我缺少Java Map

我目前正在研究Java MapReduce。我们有一个功能,我们读取Java Mapper类中的每一行,然后对DB进行验证。问题是在DB中,我们有大约500万条记录。 Mapper的输入文件可能还包含@100万条记录。 这就像我们扫描800万条记录的每一行一样。 这一过程需要非常长的时间。 有人能建议我们是否有更好的方法来提高性能吗

运行多个映射,并行执行(虽然Hadoop Java Map reduce本身就是这样做的),但从目前来看,我认为不应该花费这么多时间 可能是我缺少Java Map reduce等的任何配置


提前感谢您的帮助。

我建议不要验证Java代码中的行,而是使用更严格的SQL WHERE子句过滤不需要的行。根据行数差异,它应该为您提供两个%的性能


我还建议您对哪种方式更快的Hadoop覆盖感兴趣。

我建议不要验证Java代码中的行,而是使用更严格的SQL WHERE子句过滤不需要的行。根据行数差异,它应该为您提供两个%的性能


我还建议您对哪种方式更快的Hadoop叠加感兴趣。

也许我误解了,但从我读到的内容来看,您正在将每个单独的输入行(100万)与现有的DB(500万)进行比较。这意味着您可能需要评估5e12条线的组合如果这是正确的,那么显而易见的解决方案是找到一种不需要评估所有组合的方法。看看这个问题:也许我误解了,但从我读到的内容来看,您正在将每个单独的输入行(100万)与现有的DB(500万)进行比较。这意味着您可能需要评估5e12条线的组合如果这是正确的,那么显而易见的解决方案是找到一种不需要评估所有组合的方法。看看这个问题:让我给出更多信息,对于输入的每一行,通过使用唯一的散列,验证就是那个人在HBase中的位置。虽然需要5毫秒,但对于总记录来说需要更多的时间让我提供更多的信息,对于输入的每一行,验证是通过使用唯一的散列在HBase中该人员存在的位置。虽然它需要5毫秒,但对于总记录来说,它需要更多的时间