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)