Что означает исключения EOF в соединениях hadoop namenode из hbase / filesystem? - PullRequest
8 голосов
/ 31 октября 2011

Это общий вопрос об исключениях Java EOF, а также об исключении Hadoop EOF, которое связано с совместимостью jar.Комментарии и ответы по любой теме являются приемлемыми.

Фон

Я отмечаю некоторые потоки, которые обсуждают загадочное исключение, которое в конечном итоге вызывается методом readInt.Это исключение, похоже, имеет некоторые общие последствия, которые не зависят от hadoop, но, в конечном счете, оно вызвано взаимодействием Jad-файлов Hadoop.

В моем случае я получаю его, когда пытаюсь создать новый объект FileSystem вHadoop, в Java.

Вопрос

Мой вопрос: что происходит и почему чтение целого числа вызывает исключение EOF?К какому «файлу» относится это исключение EOF, и почему такое исключение будет выброшено, если две банки не способны к взаимодействию?

Во-вторых, я также хотел бы знать, как исправить эту ошибку, чтобы я мог подключаться и читать / записывать файловую систему hadoops, используя протокол hdfs с Java API, удаленно ....

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)

Ответы [ 2 ]

5 голосов
/ 31 октября 2011

Относительно hadoop: я исправил ошибку!Вы должны убедиться, что core-site.xml обслуживает 0.0.0.0 вместо 127.0.0.1 (localhost).

Если вы получаете исключение EOF, это означает, что порт не доступен извне для этогоip, поэтому нет данных для чтения между ipc клиент / сервер hadoop.

2 голосов
/ 31 октября 2011

EOFException в сокете означает, что больше нет данных, и узел закрыл соединение.

...