2014-03-24 64 views
0

我試圖設置一個hadoop多節點羣集,並且出現以下問題。 我有一個節點作爲主節點,另一節點作爲從節點。無法將文件放入HDFS

似乎一切都是正確的,因爲當我執行{jps}我得到這個過程對主:

{ 
29983 SecondaryNameNode 
30596 Jps 
29671 NameNode 
30142 ResourceManager 
} 

而這僅僅是爲奴隸:

{ 
18096 NodeManager 
17847 DataNode 
18197 Jps 
} 

不幸的是,當我嘗試-put命令,我得到這個錯誤:

[email protected]:/usr/local/hadoop/bin$ ./hdfs dfs -put /home/hduser/Ejemplos/fichero /Ejemplos/ 14/03/24 12:49:06 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 14/03/24 12:49:07 WARN hdfs.DFSClient: DataStreamer Exception org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /Ejemplos/fichero.COPYING could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.

當我進入WebUI時,有0個活節點,我不知道爲什麼! 我無法解決這個錯誤,我將不勝感激一些幫助!

回答

0

您將要檢查你的數據節點(奴隸)的日誌文件中的錯誤的建立。如果你運行cloudera CDH,你可以在/ var/log/hadoop-hdfs中找到它們,否則你可以在配置文件中指定的目錄中找到它們。

錯誤「只能複製到0個節點」指出存在問題。

還要確保從站和主站可以通過ssh連接密鑰認證。

只是一個簡單的問題:你確實格式化了你的namenode?

+0

問題是由於ssh連接!謝謝! – JayMash

+0

我在centos中運行多節點羣集。我得到了同樣的錯誤,但我的datanode是活動的,我也可以使用ssh登錄到每個奴隸,但仍然不能把文件從Linux。 Plz幫助我什麼是錯誤的。@ Erik Schmiegelow –

1
File /Ejemplos/fichero.COPYING could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation. 

上面的錯誤表示數據節點已關閉或無法正常與namenode通信。您可以檢查您在hdfs-site.xml core-site.xml中指定的配置。

+0

如何檢查,如果數據節點是嗎?用jps命令看起來datanode進程正在運行。 我用於hdfs站點的配置。XML是: dfs.replication dfs.permissions 這爲核心的site.xml: FS .default.name hd FS://主:9000 hadoop.tmp.dir 在/ usr /本地/ Hadoop的/ tmp目錄 謝謝回答 – JayMash

0

你正在使用的

./hdfs dfs -put.... 

嘗試

hadoop fs -put LocalFile.name /username/ 

hadoop fs -copyFromLocal LocalFile.name /username/ 
+0

嗨,我已經試過這些命令太多,但報告相同的錯誤。 – JayMash

1

我有類似的問題,並解決它像這樣:

  1. 停止Hadoop的(stop-dfs.sh和stop-yarn.sh)
  2. 手動刪除DFS/NameNode和DFS /數據節點的目錄
  3. 格式的NameNode(HDFS的NameNode -format)
  4. 開始的Hadoop(start-dfs.sh和start-yarn.sh)

有可能會像缺乏o其他問題F盤空間或奴隸在$ HADOOP_HOME沒有配置的/ etc/Hadoop的(這是由默認的實際配置到本地主機

+0

我試過這也是因爲它有時它的工作原理,但不是在我的情況。 – JayMash