2016-07-06 225 views
0

我已經在運行於virtualbox上的ubuntu上安裝了hadoop。當我第一次安裝hadoop時,我可以啓動hdfs並創建沒有問題的目錄。Hadoop僞分佈式java.net.ConnectException:在虛擬框上拒絕連接

但是,當我嘗試在hdfs上運行ls命令時,我重新啓動虛擬機時,出現「連接被拒絕」錯誤。然後,我在sshd_config基礎上添加了「Port 9000」Hadoop cluster setup - java.net.ConnectException: Connection refused,現在我得到了「ls:本地異常失敗:com.google.protobuf.InvalidProtocolBufferException:協議消息標記具有無效的線路類型;主機詳細信息:本地主機爲:」 hadoop/127.0.1.1「;目標主機是:」localhost「:9000;

-------------- etc/hadoop/core-site.xml ---- ---------

<configuration> 
    <property> 
     <name>fs.defaultFS</name> 
     <value>hdfs://localhost:9000</value> 
    </property> 
</configuration> 

-------------- etc/hadoop/hdfs-site.xml ----------- ------

<configuration> 
    <property> 
     <name>dfs.replication</name> 
     <value>1</value> 
    </property> 
</configuration> 
+0

這是否問題的幫助:http://stackoverflow.com/questions/31849433/hadoop-protocol-message-tag-had-invalid-wire-type –

+0

這是不同的問題。 – zhumingvictor

回答

0

好的。我解決了它。 我運行jps,發現namenode無法啓動。然後,當我試圖弄清楚什麼是錯誤時,我一直在看「hadoop-xxx-namenode-hadoop.out」,它幾乎沒有任何有用的信息。所以我看着「hadoop-xxx-namenode-hadoop.log」,它清楚地顯示錯誤「org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:Directory/tmp/hadoop-xxx/dfs/name is在不一致的狀態下:存儲目錄不存在或不可訪問

我做了更多研究,默認情況下,Hadoop會將namenode和datanode文件放在系統臨時目錄中。當我重新啓動時,目錄被刪除。所以我必須做的是更改「hdfs-site.xml」並添加「dfs.namenode.name.dir」和「dfs.namenode.data.dir」屬性。然後當我嘗試啓動hdfs時,我得到了「地址已被使用」。我使用的端口是9000,重新啓動後它綁定了「tcp 0 0 *:9000」,所以我改變了core-site.xml中的「fs.defaultFS」以代替使用9001。現在一切都可以開始。

希望這可以幫助。

相關問題