2
public static void main(String[] args) throws IOException{
Configuration conf = new Configuration();
conf.addResource(new Path("/home/myname/hadoop-1.2.1/conf/core-site.xml"));
conf.addResource(new Path("/home/myname/hadoop-1.2.1/conf/hdfs-site.xml"));
System.out.println("Attempting initialization of FileSystem");
FileSystem fs = FileSystem.get(conf);
System.out.println("Initialization done");
System.out.println(fs.getHomeDirectory());
System.out.println(fs.getWorkingDirectory());
fs.mkdirs(new Path("abcd"));
}
主目录和工作目录上的syso工作正常,并指向正确的位置HDFS。但是任何形式的I/O像读取文件,从本地复制mkdirs都不起作用。与HDFS通信:线程“main”中的异常java.io.IOException:本地异常失败:java.io.EOFException
Exception in thread "main" java.io.IOException: Failed on local exception: java.io.EOFException; Host Details : local host is: "localhost/127.0.0.1"; destination host is: ""localhost":9000;
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:738)
at org.apache.hadoop.ipc.Client.call(Client.java:1099)
at org.apache.hadoop.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:195)
at com.sun.proxy.$Proxy6.mkdirs(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:102)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:67)
at com.sun.proxy.$Proxy6.mkdirs(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient.primitiveMkdir(DFSClient.java:1732)
at org.apache.hadoop.hdfs.DFSClient.mkdirs(DFSClient.java:1703)
at org.apache.hadoop.hdfs.DistributedFileSystem.mkdirs(DistributedFileSystem.java:479)
at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:1807)
at com.company.trial.DummyClass.main(DummyClass.java:25)
Caused by: java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:392)
at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:823)
at org.apache.hadoop.ipc.Client$Connection.run(Client.java:757)
Namenode/Datanode/JobTracker/TaskTracker工作得很好。
我已经阅读这里和那里,这可能是一个jar不匹配问题。使用 罐:
Hadoop的共同点:0.23.11 Haddop-HDFS:0.23.11 Hadoop的代码:1.2.1
我的Hadoop版本为1.2.1。
核心的site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
HDFS-site.xml中
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>~/hadoop/hdfs</value>
</property>
如果这是一个jar问题,请你告诉我哪个罐子(普通和HDFS)与hadoop-兼容1.2.1
但物业“fs.default.name”已经从核心站点文件回升。我已经明确地设置了它,但它仍然没有工作。同样的例外。 – user3504411
在哪个平台上安装Hadoop。 – Rengasamy
将上述罐子添加到您的图书馆。现在它可以工作。 – Rengasamy