Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用hadoop文件系统时java代码中出现异常_Java_Hadoop - Fatal编程技术网

调用hadoop文件系统时java代码中出现异常

调用hadoop文件系统时java代码中出现异常,java,hadoop,Java,Hadoop,大家好,我在hadoop上工作,在这里我配置了2节点hadoop集群。我必须使用java代码在hadoop文件系统中创建目录,但每次运行此代码时都会出现一些异常 我的java代码 import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public clas

大家好,我在hadoop上工作,在这里我配置了2节点hadoop集群。我必须使用java代码在hadoop文件系统中创建目录,但每次运行此代码时都会出现一些异常

我的java代码

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class Hadoopjava {

    public static void main(String ar[]) throws IOException

    {

        Configuration conf = new Configuration();

        /*conf.addResource(new Path("core-site.xml"));
        conf.addResource(new Path("hdfs-site.xml"));*/
            conf.set("fs.default.name", "hdfs://master:54310");


        String dirName = "dd";

        //values of hosthdfs:port can be found in the core-site.xml  in the fs.default.name

        FileSystem fileSystem = FileSystem.get(conf);

        Path path = new Path("/user/hduser/dd/gg");
        fileSystem.mkdirs(path) ; 

       // System.out.println(data);
        /*Path path = new Path("/user/hduser/dd");
        if (fileSystem.exists(path)) {
            System.out.println("Dir " + dirName + " already exists");
            return;
        }

        // Create directories
        fileSystem.mkdirs(path);*/

        fileSystem.close();
    }
}
代码中的异常

Exception in thread "main" java.io.IOException: Call to master/192.168.0.128:54310 failed on local exception: java.io.EOFException
    at org.apache.hadoop.ipc.Client.wrapException(Client.java:775)
    at org.apache.hadoop.ipc.Client.call(Client.java:743)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:220)
    at sun.proxy.$Proxy0.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:359)
    at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:106)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:207)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:170)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1378)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95)
    at com.widevision.hadoop.Hadoopjava.main(Hadoopjava.java:26)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:501)
    at org.apache.hadoop.ipc.Client$Connection.run(Client.java:446)
线程“main”java.io.IOException中的异常:对master/192.168.0.128:54310的调用在本地异常上失败:java.io.eofeexception 位于org.apache.hadoop.ipc.Client.wrapException(Client.java:775) 位于org.apache.hadoop.ipc.Client.call(Client.java:743) 位于org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:220) 位于sun.proxy.$Proxy0.getProtocolVersion(未知源) 位于org.apache.hadoop.ipc.RPC.getProxy(RPC.java:359) 位于org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:106) 位于org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:207) 位于org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:170) 位于org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82) 位于org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1378) 位于org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66) 位于org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390) 位于org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196) 位于org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95) 位于com.widevision.hadoop.Hadoopjava.main(Hadoopjava.java:26) 原因:java.io.EOFException 位于java.io.DataInputStream.readInt(DataInputStream.java:392) 位于org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:501) 位于org.apache.hadoop.ipc.Client$Connection.run(Client.java:446) 我正在使用EclipseIDE编写java代码


我的代码有什么问题?

请确保您是根据集群上运行的相同Hadoop版本编译代码的。看起来不同协议版本之间的协议不匹配。

非常感谢先生回答我的问题,先生,我在集群中的所有系统上运行相同的版本。您使用的是哪个版本的Hadoop?此代码是否位于远程计算机上?先生,我使用的是Hadoop 1.2.0,先生,此代码位于同一台计算机上。先生,让我想一想如果是那样的话,我会咬你一口。这通常是由于版本不匹配造成的。请给我看看你的NN日志文件。NN日志先生,我不知道,先生?