相信大家有寫過,利用繼承WritableComparator的方式實做自己的比較器,大家會發現其實寫起來好像不是那麼的方便,由於Avro在執行資料操作也是"不"需要反序列化後再做處理,且使用Avro的好處則是,
1. 若是要改變排序順序只需調整schema即可。
相信大家有寫過,利用繼承WritableComparator的方式實做自己的比較器,大家會發現其實寫起來好像不是那麼的方便,由於Avro在執行資料操作也是"不"需要反序列化後再做處理,且使用Avro的好處則是,
1. 若是要改變排序順序只需調整schema即可。
繼上一篇實做的code generation,發現run完整個procedure已經要吐之後,接下來就是要介紹一下如何在不使用code generation的情況下來玩Avro。
PS. 後輩是使用Hadoop 1.0.3的版本,執行的時候出現了paranamer的error,所以有請google大神幫後輩抓了一下paranamer的jar包,請前輩們自行抓取囉^_^~
由於Avro 將在MapReduce V2(YARN)上被使用,所以小弟也來研究一下Avro的一些觀念與實作方式囉^_^~,當然MapReduce V1也可以用到拉。
做為Hadoop資料的序列化(Serialize)與反序列化(Deserialize),比起傳統的Writable,Avro使用來改進Writable的缺點: 可攜性的問題(Writable序列化後的資料無法讓其他程式語言使用)。