1. 程式人生 > >Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解決方案

Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解決方案

運行程序 分布式文件系 關於 啟動 exce ima trac set 判斷

Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解決方案

作者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/

在啟動hadoop時,出現了如下錯誤:

Call From java.net.UnknownHostException: ubuntu-larntin: ubuntu-larntin to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused;

而且啟動datanode、yarn都正常,只有namenode一直掛掉

解決方案如下:

wrr@ubuntu:~$ hadoop namenode -format

之後,重新啟動所有的集群,即可

wrr@ubuntu:~$ cd /home/wrr/java/hadoop-2.7.6/sbin
wrr@ubuntu:~/java/hadoop-2.7.6/sbin$ ./hadoop-daemon.sh start namenode
starting namenode, logging to /home/wrr/java/hadoop-2.7.6/logs/hadoop-wrr-namenode-ubuntu.out
wrr@ubuntu:~/java/hadoop-2.7.6/sbin$ jps
8307 DataNode
9317 NameNode
7431 
9352 Jps
8476 ResourceManager

之後,再次在eclipse上運行程序,就沒問題了。

新建了一個java文件

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HDFSFileIfExist {
    public static void main(String[] args){
        try{
            String fileName = "test";
            Configuration conf = new Configuration();
            conf.set("fs.defaultFS", "hdfs://localhost:9000");
            conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");
            FileSystem fs = FileSystem.get(conf);
            if(fs.exists(new Path(fileName))){
                System.out.println("文件存在");
            }else{
                System.out.println("文件不存在");
            }
 
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

判斷當前hadoop-2.7.6目錄下是否存在test文件

技術分享圖片

如果想看更多關於java API的內容,可以看大數據技術原理與應用 第三章 分布式文件系統HDFS 學習指南_廈大數據庫實驗室博客

Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解決方案