Como serializar objetos no hadoop (no HDFS)
Eu tenho um HashMap <String, ArrayList <Integer>>. Quero serializar meu objeto HashMap (hmap) para o local do HDFS e depois desserializá-lo no Mapper e Reducers para usá-lo.
Para serializar meu objeto HashMap no HDFS, usei o código normal de serialização de objetos java da seguinte maneira, mas obtive um erro (permissão negada)
try
{
FileOutputStream fileOut =new FileOutputStream("hashmap.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(hm);
out.close();
}
catch(Exception e)
{
e.printStackTrace();
}
Eu recebi a seguinte exceção
java.io.FileNotFoundException: hashmap.ser (Permission denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
at KMerIndex.createIndex(KMerIndex.java:121)
at MyDriverClass.formRefIndex(MyDriverClass.java:717)
at MyDriverClass.main(MyDriverClass.java:768)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Alguém pode sugerir ou compartilhar o código de exemplo de como serializar objetos no hadoop em hdfs?