2014-02-24 56 views
2

我正在研究Hadoop中的TotalOrderPartioner,並且我還沒有完全理解如何以及在哪裏創建分區文件。hadoop中的分區文件是如何創建的

我的理解迄今爲止是

InputSampler.Sampler採樣=新InputSampler.RandomSampler(0.1,10000); InputSampler.writePartitionFile(job,sampler);

如果我使用適當的輸入和輸出路徑配置作業對象並使用獨立程序運行它,它應該爲輸出路徑上的分區文件創建。

該處理以創建將發生在客戶端機器上的這個劃分文件,因此用於創建該文件中的樣本和分裂將來自各種數據節點流傳輸到客戶端機器,然後進行排序,然後將分割的文件將是創建。

一旦這樣做了,我就可以使用這個分區文件輸入到TotalOrderPartitioner對於使用類似於用於生成這個分區的文件一個一個輸入源的各種其他工作

可有人請確認我的理解?

回答

0

當你實現一個mapReduce作業時,至少有一個Mapper,一個Reducer和一個配置和執行作業的類。在最後一個類中,您將創建分割文件的代碼(即分區文件)放入。

此類中的邏輯:

  • 配置與映射器和減速器和其它性質的作業,然後
  • 創建分區文件和最後
  • 提交對執行中的作業

該方法使整個流程的分區文件部分的創建成爲可能,並使作業提交一步到位。

+0

我同意,讓我們把這個類命名爲「Driver class」,但是我詢問這個​​代碼在哪裏執行,它在客戶端機器上嗎?因此整個採樣代碼以及生成分區文件的代碼也將在客戶端機器上執行......這是我的理解......想檢查它是否合理 – Sudarshan

+0

啊。抱歉。是的,它在運行作業配置類的機器上,通常是客戶端。你是對的 –