2013-09-29 14 views
0

我正在研究我的項目,將apache avro集成到我的 MapR程序中。不過,我很困惑 通過使用新的mapreduce包相比mapredlatter在不同情況下對如何使用 進行了詳細說明,並且對新的信息給出了較少的信息。 但我知道的是,它們對應於hadoop的新舊界面。apache avro中mapred和mapreduce包有什麼區別?

沒有人有使用映射精簡接口 用於作業,其輸入是不可阿夫羅數據 (如的TextInputFormat)文件 和輸出是阿夫羅文件中的任何經驗或示例。

回答

2

這兩個軟件包代表相應的Hadoop mapred和mapreduce API的輸入/輸出格式,mapper和reducer基類。

因此,如果您的工作使用舊的(mapred)包API,那麼您應該使用相應的mapred avro包類。

的Avro具有使用Avro的輸出格式爲例字數適應,這應該很容易修改爲新的MapReduce API:

http://svn.apache.org/viewvc/avro/trunk/doc/examples/mr-example/src/main/java/example/AvroWordCount.java?view=markup

下面是一些要點與修改:https://gist.github.com/chriswhite199/6755242

+0

我可以參考你的要點成功運行我的程序,也許avro可以在新的mapreduce **上做得更好,使它成爲一個獨立的包,而不依賴mapred **,就像AvroKey和其他包裝一樣。謝謝 – caesar0301

+0

如果您不想使用AvroKey,請查看http://avro.apache.org/docs/current/api/java/org/apache/avro/mapreduce/AvroKeyValueOutputFormat.html的API文檔。它注意到您可以使用基本的Hadoop可寫類型,而輸出格式將它們轉換爲它們的avro類型 –

相關問題