2014-04-07 24 views
5

Tôi đã cố gắng ghi tệp vào thiết lập HDFS cục bộ của mình bằng chương trình java Tôi đang sử dụng phân phối Hadoop 2.3.0hadoop-client 2.3.0hadoop-hdfs 2.3.0.Không thể ghi vào mã dữ liệu HDFS cục bộ

Trong HDFS đăng nhập nó cho thấy các lỗi sau:

2014-04-07 18:40:44,479 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: prabhathp:50010:DataXceiver error processing unknown operation src: /127.0.0.1:38572 dest: /127.0.0.1:50010 
java.io.IOException: Version Mismatch (Expected: 28, Received: 26738) 
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.readOp(Receiver.java:54) 
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:198) 
at java.lang.Thread.run(Thread.java:744) 

ai đó có thể giải thích điều này?

+2

Tôi đã tìm ra nguyên nhân cho việc này. Tôi đã sử dụng một url hdfs không chính xác trong ứng dụng. –

+0

vui lòng mô tả đúng cách .. không thể nhận được –

Trả lời

0

java.io.IOException: Phiên bản không phù hợp (dự kiến: 28, đã nhận: 26738)

Verison lỗi không phù hợp cho thấy bạn đang usng jar hadoop sai. Đảm bảo rằng tệp data.dir hoặc name.dir có tệp VERSION chính xác và bạn đang sử dụng phiên bản hadoop chính xác.

Chạy trình quản lý hadoop để xác nhận.

1

Sự cố (đối với tôi) là cấu hình không chính xác của các thuộc tính dfs.namenode.name.dirdfs.datanode.data.dir trong tệp hdfs-site.xml; chúng phải là URI và không chỉ là đường dẫn.

<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>/dfs/nn</value> # wrong, change to 'file:///dfs/nn' 
</property> 
<property> 
    <name>dfs.datanode.data.dir</name> 
    <value>/dfs/dn</value> # wrong, change to 'file:///dfs/dn' 
</property> 
1

Nếu lỗi Version Mismatch (Expected: 28, Received: 26738) được xem liên tục với một rất cao Received -version, nguyên nhân có thể là một ứng dụng không sử dụng protocoll hadoop rpc đã kết nối với cổng datenode.

Ví dụ: chúng tôi thấy lỗi này khi ai đó truy cập url datanode bằng trình duyệt web (trong khi dự định truy cập giao diện web).

Cấu hình sai có thể có các hiệu ứng tương tự.

+0

Tôi đã sử dụng cổng '50010' (cổng' dfsclient') thay vì '50020' (cổng' ipc'). câu trả lời này gợi ý rằng tôi đang sử dụng cổng cho dịch vụ sai. tham khảo nhanh cho các cổng: http://blog.cloudera.com/blog/2009/08/hadoop-default-ports-quick-reference/ – ribamar

Các vấn đề liên quan