2011-10-31 23 views
7

Đây là câu hỏi chung về ngoại lệ của EOF java, cũng như ngoại lệ EOF của Hadoop liên quan đến khả năng tương tác của jar. Nhận xét và câu trả lời về một trong hai chủ đề đều được chấp nhận.Ý nghĩa của ngoại lệ EOF trong các kết nối tên nút hadoop từ hbase/filesystem là gì?

nền

tôi lưu ý một số chủ đề mà thảo luận về một ngoại lệ khó hiểu, mà cuối cùng là do một phương pháp "ReadInt". Ngoại lệ này dường như có một số hàm ý chung mà không phụ thuộc vào hadoop, nhưng cuối cùng, là do khả năng tương tác của các lọ Hadoop.

Trong trường hợp của tôi, tôi nhận được nó khi tôi cố gắng tạo một đối tượng FileSystem mới trong hadoop, trong java.

Câu hỏi

Câu hỏi của tôi là: Điều gì đang xảy ra và tại sao việc đọc một số nguyên ném một ngoại lệ EOF? "File" là ngoại lệ EOF này đề cập đến, và tại sao ngoại lệ này lại bị ném nếu hai lọ không có khả năng tương tác?

secondarily, tôi cũng muốn biết làm thế nào để khắc phục lỗi này vì vậy tôi có thể kết nối và đọc/ghi hadoops hệ thống tập tin bằng cách sử dụng giao thức HDFS với api java, từ xa ....

 
java.io.IOException: Call to /10.0.1.37:50070 failed on local exception: java.io.EOFException 
    at org.apache.hadoop.ipc.Client.wrapException(Client.java:1139) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1107) 
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226) 
    at $Proxy0.getProtocolVersion(Unknown Source) 
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:398) 
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:384) 
    at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:111) 
    at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:213) 
    at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:180) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89) 
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1514) 
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:67) 
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:1548) 
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1530) 
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:228) 
    at sb.HadoopRemote.main(HadoopRemote.java:35) 
Caused by: java.io.EOFException 
    at java.io.DataInputStream.readInt(DataInputStream.java:375) 
    at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:819) 
    at org.apache.hadoop.ipc.Client$Connection.run(Client.java:720) 

Trả lời

5

Về hadoop: Tôi đã sửa lỗi! Bạn cần đảm bảo rằng tệp core-site.xml đang phân phối đến 0.0.0.0 thay vì 127.0.0.1 (localhost).

Nếu bạn nhận ngoại lệ EOF, điều đó có nghĩa là cổng không thể truy cập được bên ngoài trên ip đó, do đó không có dữ liệu để đọc giữa máy khách/máy chủ ipc hadoop.

+1

Nó cũng có thể có nghĩa là những thứ khác ... Ngoại lệ EOF là khá chung chung. – jayunit100

+0

xin lỗi bạn có ý gì khi phục vụ cho 0.0.0.0. Bạn có thể vui lòng ghi lại cặp tên/giá trị prop từ cấu hình của bạn không? – hba

+1

ý của bạn là "phục vụ cho 0.0.0.0"? Tệp core-site.sh có thuộc tính ' fs.default.name hdfs: // localhost: 9000/'. Thay đổi cài đặt này từ 'localhost' thành' 0.0.0.0' không giải quyết được sự cố. – nikk

2

EOFException trên một ổ cắm có nghĩa là không có thêm dữ liệu và ngang hàng đã đóng kết nối.

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