Tengo un trabajo de hadoop simple que rastrea sitios web y los almacena en caché en el HDFS. El asignador verifica si ya existe una URL en el HDFS y, de ser así, la usa, de lo contrario, descarga la página y la guarda en el HDFS.¿Cómo resolver 'el archivo solo podría replicarse en 0 nodos, en lugar de 1' en hadoop?
Si se produce un error de red (404, etc.) al descargar la página, la URL se omite por completo, no se escribe en el HDFS. Cada vez que ejecuto una lista pequeña ~ 1000 sitios web, siempre me parece que encuentro este error que bloquea el trabajo repetidamente en mi instalación pseudo distribuida. ¿Cual podría ser el problema?
Estoy ejecutando Hadoop 0.20.2-cdh3u3.
org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/raj/cache/9b4edc6adab6f81d5bbb84fdabb82ac0 could only be replicated to 0 nodes, instead of 1
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1520)
at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:665)
at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:557)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1434)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1430)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1157)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1428)
¿Por qué simplemente no configura "dfs.replication" en 0 en hdfs-site.xml. Como está utilizando pseudo modo, la replicación de datos no le concierne. –