我必須在非常大的文本文件(如5 TB大小)中處理數據。處理邏輯使用supercsv解析數據並對其執行一些檢查。顯然,由於規模相當大,我們計劃使用hadoop來利用並行計算。我在我的機器上安裝hadoop,然後開始編寫mapper和reducer類,並且卡住了。因爲地圖需要一個關鍵值對,所以要閱讀這個文本文件,我不確定這個特定場景中的關鍵和價值是什麼。有人可以幫我解決這個問題嗎?Hadoop with supercsv
我的思維過程就像這樣(讓我知道我是否正確) 1)使用superCSV和hadoop爲hdfs中的每個文件塊生成supercsv bean(我假設hadoop注意分裂文件) 2)對於這些supercsvbeans運行我的檢查邏輯。
要清楚的是,如果它的文本輸入鍵是'LongWritable'而且值是'Text'。 –
是的,實際數據是以換行符分隔的。按照你的建議,我需要使用byteoffset作爲鍵和行(被supercsv解析的對象)作爲值。那麼這是否意味着每行都將在集羣中的節點上進行處理?我在想的是hadoop會分割文件,我會發送相應的supercsv對象作爲值 – user1707141
Hadoop將分割文件並向每個映射器提供很多行,是的,這將通過羣集分發。您可以將行解析爲supercsv對象作爲映射器中的第一步,並且具有與使用自定義輸入格式基本相同的結果,但沒有實際編寫/調試的麻煩。 –