2
這個類是否應該擴展ObjectWritable類?那我怎麼能把它從客戶端傳遞給Map和Reduce?謝謝如何將客戶端的對象傳遞給Map和Reduce?
這個類是否應該擴展ObjectWritable類?那我怎麼能把它從客戶端傳遞給Map和Reduce?謝謝如何將客戶端的對象傳遞給Map和Reduce?
我假設你的意思是從你的客戶端代碼傳遞一個對象給你的Mappers和Reducers?
你將不得不使用某種形式的序列化來做到這一點,因爲數據正在通過線路傳輸。有幾種可能性取決於您的場景:
可能最好的解決方案是在Mappers/Reducers中實例化對象。要傳遞構造函數調用所需的信息,可以使用作業配置。
conf.setInt("foo", 32);
conf.set("bar", "bazz");
如果你的對象是序列化和非常小,你可以把它序列化,包括它在JobConf base64編碼的版本。
選中此[文章](http://www.lexemetech.com/2008/07/rpc-and-serialization -with-hadoop.html)比較可用於Hadoop的不同序列化框架。如果對象很大,壓縮也可能被考慮。 –