我是一個完整的hadoop n00b。我正在努力解決以下問題,作爲我的第一個hadoop項目。我有一百萬個子文件夾坐在亞馬遜S3存儲桶中。每個文件夾都有兩個文件。文件1中有數據如下:使用hadoop加入兩個文件在同一目錄中
date,purchaseItem,purchaseAmount
01/01/2012,Car,12000
01/02/2012,Coffee,4
....................
文件2在以下格式的客戶的信息:所有的文件夾重複在桶
ClientId:Id1
ClientName:"SomeName"
ClientAge:"SomeAge"
同樣的模式。
之前我寫的所有數據到HDFS,我想加入文件1和File2如下:
註冊文件:
ClientId,ClientName,ClientAge,date,purchaseItem,purchaseAmount
Id1,"SomeName","SomeAge",01/01/2012,Car,12000
Id1,"SomeName","SomeAge",01/02/2012,Coffee,4
我需要爲每一個文件夾,然後喂做到這一點這個連接的數據集轉化爲HDFS。有人可以指出,我將如何在Hadoop中實現這樣的功能。向正確的方向推進將非常感激。
可能是你可以考慮,加載這些文件以編程RDBMS像MySQL數據庫,他們加入到表在數據庫和使用Sqoop轉儲表HDFS。我認爲這非常直截了當。 – Alper 2013-03-07 08:41:03
@Alper - 謝謝。我正在考慮更多地使用map作業來確定fileNames,它是/ path/to/file1和一些/ path/to/file2。「some/path/to」可以用作鍵,值將是File1的行條目和File2的分析內容。在縮小階段,我在考慮是否可以根據關鍵字「some/path/to」加入條目。我幾乎對Map-Reduce幾乎一無所知,所以也許這不是要走的路。 – 2013-03-07 08:56:46
你必須小心如何使用hadoop和mapreduce作業,當你在hdfs中有大量內容的文件時,Hadoop會發揮它的魔力。我無法理解你的方式,但將你的文件移動到hdfs系統似乎不適合mapreduce解決方案。 – Alper 2013-03-07 09:50:35