Configuration conf = new Configuration(); conf.set("io.serializations", org.apache.hadoop.io.serializer.JavaSerialization.class.getName() + "," + org.apache.hadoop.io.serializer.WritableSerialization.class.getName());要するにSerialization クラスをカンマで区切って、 io.serializations にセットするのだけど、JavaSerialization だけだと、Textとかが デコードできなくなっちゃうので、デフォルトのWritableSerialization も書いておくこと。
2011年2月4日金曜日
hadoop でjava のserializableを受け渡すには
何らかの方法でシリアライズするわけだが、hadoop はデフォルトではJavaのシリアライズではなく
独自のシリアライザを使うようになっている。これはJavaのシリアライズが重いため、だそうだ。
しかしもちろんシリアライザの実装を変更することができ、Javaのシリアライザを使うように
指定することもできる。それには、こうする。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿