Call to localhost/127.0.0.1:9000 failed on connection exception:java.net.ConnectException的解決方案 作者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/ 在啟動hado ...
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 學習指南_廈大資料庫實驗室博客