簡體   English   中英

在hadoop中實現多個映射器和單個減速器

[英]Implementing mulitple mappers and single reducer in hadoop

我是hadoop的新手。 我有多個包含文件的文件夾來處理hadoop中的數據。 我懷疑在map-reducer算法中實現mapper。 我可以指定多個映射器來處理多個文件,並使用單個reducer將所有輸入文件作為一個輸出嗎? 如果可能,請提供實施上述步驟的指南。

如果您有多個文件,請使用MultipleInputs

addInputPath()方法可用於:

  1. 添加多個路徑和一個公共映射器實現
  2. 使用自定義映射器和輸入格式實現添加多個路徑。

對於單個縮減器,每個映射的輸出鍵都相同...比如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中的所有文件。

當然,如果您需要使用不同的輸入類型,則必須適當地配置該類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM