使用Hadoop Mapreduce比较两个Excel文件

时间:2016-11-28 12:49:48

标签: java amazon-web-services hadoop mapreduce emr

我是Hadoop和Mapreduce的新手。我需要使用mapreduce比较两个excel文件。我必须去mapreduce,因为这些文件的大小将非常大(> 10gb)。我的问题是如何从不同的映射器中获取两个不同的输入文件,并在Reducer中比较这两个文件。我必须将此应用程序转换为jar并在Amazon EMR中运行它。我无法在Web中找到合适的教程。请为我提供一些想法。

2 个答案:

答案 0 :(得分:0)

我认为分布式缓存在您的情况下会很有用。我还没有使用大型文件的分布式缓存,但请浏览并告诉我它是否适合您。

答案 1 :(得分:0)

根据您对我的评论的回答,如果您使用普通的Map-reduce实现它,我认为应该怎么做?

  1. 创建一个读取Excel电子表格的自定义InputFormat
  2. 作为其中的一部分,您需要RecordReader读取Excel电子表格并输出Cell位置(例如A1)作为键,其内容输出为Value。
  3. 读取文件后,您需要使用Key(单元格位置)对两个数据集进行内连接。
  4. 发布联接后,您可以比较单元格的内容。
  5. 如果你看一下抽象普通map-reduce的Apache Pig或Cascading类API,可能会有所帮助。

    此致 阿米特