Tôi có một công việc đơn giản để thu thập thông tin các trang web và lưu trữ chúng vào HDFS. Trình ánh xạ kiểm tra xem một URL đã tồn tại trong HDFS chưa và nếu có, hãy sử dụng nó nếu không tải trang xuống và lưu nó vào HDFS.Cách giải quyết 'tệp chỉ có thể được nhân rộng thành 0 nút, thay vì 1' trong hadoop?
Nếu gặp lỗi mạng (404, v.v.) khi tải xuống trang, thì URL bị bỏ qua hoàn toàn - không được ghi vào HDFS. Bất cứ khi nào tôi chạy một danh sách nhỏ ~ 1000 trang web, tôi luôn luôn dường như gặp phải lỗi này mà treo công việc nhiều lần trong cài đặt phân tán giả của tôi. Điều gì có thể là vấn đề?
Tôi đang chạy 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)
Tại sao bạn không chỉ cần đặt "dfs.replication" thành 0 trong hdfs-site.xml. Khi bạn đang sử dụng chế độ giả, việc sao chép dữ liệu không phải là mối quan tâm của bạn. –