2016-02-18 47 views
0

我有一個大小爲50MB的文件(完整的文本數據不含空格)。我想以這樣一種方式劃分這些數據,即每個映射器應該獲得5MB數據。映射器應該以(K,V)格式獲取數據,其中鍵分區數(如1,2,...)和值是純文本(5MB)。爲文件中的hadoop映射器創建自定義鍵值

我看過InputFormat (method getSplits),FileInputFormat (FileSplit method)RecordReader,但無法理解如何生成和使用拆分爲我的映射器創建所需的自定義(K,V)。我是Hadoop MapReduce編程的新手,所以請告訴我如何在這種情況下繼續。

+0

什麼是完整的文本數據沒有空間?你能提供一個小例子嗎?你需要一個邏輯來爲mappers創建對。例如,wordcount示例中的邏輯是用空格分隔文本數據。 –

+0

我的數據是一個包含字符後綴的大文件,如sdaccraggrralwghdsgfndsnvfcvnd .....在MB中。所以我想分割這些數據來在每個映射器端應用我的procesisng。並且我想確定給定的映射器是哪個分區 – Sumit

+0

所以,你想分割這個字符串,按什麼?什麼樣的邏輯?也許你可以使用SubString,但是你感興趣的時間長度是多少? –

回答

0

您可以在您的配置中以字節爲單位設置mapreduce.input.fileinputformat.split.maxsize以告知映射器您應該獲得5MB的數據。