Java 在hadoop中实现多映射器和单还原器

Java 在hadoop中实现多映射器和单还原器,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我是hadoop新手。我有多个文件夹,其中包含用于在hadoop中处理数据的文件。我怀疑在MapReducer算法中实现mapper。我是否可以指定多个映射器来处理多个文件,并使用单个缩减器将所有输入文件作为一个输出?如果可能,请给出实施上述步骤的指南。如果您有多个文件,请使用 addInputPath()方法可用于: 添加多个路径和一个通用映射器实现 使用自定义映射器和输入格式实现添加多个路径 对于单个减速机,请使每个地图的输出键相同…例如1或“abc”。这样,框架将只创建一个reducer。

我是hadoop新手。我有多个文件夹,其中包含用于在hadoop中处理数据的文件。我怀疑在MapReducer算法中实现mapper。我是否可以指定多个映射器来处理多个文件,并使用单个缩减器将所有输入文件作为一个输出?如果可能,请给出实施上述步骤的指南。

如果您有多个文件,请使用

addInputPath()方法可用于:

  • 添加多个路径和一个通用映射器实现
  • 使用自定义映射器和输入格式实现添加多个路径

  • 对于单个减速机,请使每个地图的输出键相同…例如1或“abc”。这样,框架将只创建一个reducer。

    如果要以相同的方式映射文件(例如,它们都具有相同的格式和处理要求),则可以配置单个映射器来处理所有文件

    您可以通过配置TextInputFormat类来完成此操作:

    string folder1 = "file:///home/chrisgerken/blah/blah/folder1";
    string folder2 = "file:///home/chrisgerken/blah/blah/folder2";
    string folder3 = "file:///home/chrisgerken/blah/blah/folder3";
    TextInputFormat.setInputPaths(job, new Path(folder1), new Path(folder2), new Path(folder3));
    
    这将导致映射程序处理文件夹1、2和3中的所有文件

    当然,如果需要使用不同的输入类型,则必须适当地配置该类型