2016-01-06 111 views
3

我在VMware上部署了Hadoop集羣。他們都在CentOS 7Hadoop:在此操作中有0個數據節點正在運行且不包含任何節點

在主發出命令JPS:

[[email protected] anna]# jps 
6225 NameNode 
6995 ResourceManager 
6580 SecondaryNameNode 
7254 Jps 

發出命令JPS奴隸:

[[email protected] anna]# jps 
5066 DataNode 
5818 Jps 
5503 NodeManager 

但是,我不知道爲什麼在http://localhost:50070/dfshealth.html#tab-overview 節目直播節點0.我不能在/ file/f1中發佈hdfs dfs -put。它顯示錯誤消息:

[[email protected] hadoop]# ssh hadoopmaster 
Last login: Wed Jan 6 02:56:27 2016 from hadoopslave1 
[[email protected] ~]# exit 
logout 
Connection to hadoopmaster closed. 
[[email protected] hadoop]# ssh hadoopslave1 
Last login: Wed Jan 6 02:43:21 2016 
[[email protected] ~]# exit 
logout 
Connection to hadoopslave1 closed. 
[[email protected] hadoop]# 

奴隸:

[[email protected] .ssh]# ssh hadoopmaster 
Last login: Wed Jan 6 03:04:45 2016 from hadoopmaster 
[[email protected] ~]# exit 
logout 
Connection to hadoopmaster closed. 
[[email protected] .ssh]# ssh hadoopslave1 
Last login: Wed Jan 6 03:04:40 2016 from hadoopmaster 
[[email protected] ~]# exit 
logout 
Connection to hadoopslave1 closed. 
[[email protected] .ssh]# 
[[email protected] hadoop]# hdfs dfs -put in/file/f1 /user 
16/01/06 02:53:14 WARN hdfs.DFSClient: DataStreamer Exception 
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user._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. 
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1550) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNewBlockTargets(FSNamesystem.java:3110) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3034) 
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:723) 
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:492) 
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) 
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616) 
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:422) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) 
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043) 

    at org.apache.hadoop.ipc.Client.call(Client.java:1476) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1407) 
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229) 
    at com.sun.proxy.$Proxy9.addBlock(Unknown Source) 
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:418) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) 
    at com.sun.proxy.$Proxy10.addBlock(Unknown Source) 
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1430) 
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1226) 
    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:449) 
put: File /user._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. 

我已經在主嘗試其他職位一樣

rm -R /tmp/* 

,並檢查SSH

+1

這個問題,在深入瞭解:http://stackoverflow.com/questions/26545524/there-are-0-datanodes - 運行 - 無節點 - 在此操作中排除 –

回答

1

您需要查看datanode日誌以確認slave上的數據節點是否實際運行正常。只運行jps命令不夠好,有時datanode可能會丟失連接。如果您的配置文件是正確的,這條命令:

  • 運行stop-all.sh
  • 所有節點上運行JPS,如果有任何向上的過程仍和運行 - 殺死他們
  • 運行開始 - 所有.sh
  • 在所有節點上運行jps命令
  • 檢查namenode日誌和datanode日誌以確認每件事情都很好。
+0

這對我來說就像一個魅力!謝謝! – FisherCoder

2

從名字節點,運行下面的命令,以確保數據的節點運行正常

bin/hadoop dfsadmin -report 

,你可以看到像

------------------------------------------------- 
Datanodes available: 1 (1 total, 0 dead) 

Name: 127.0.0.1:50010 
Decommission Status : Normal 
Configured Capacity: 176945963008 (164.79 GB) 
DFS Used: 2140192768 (1.99 GB) 
Non DFS Used: 42513027072 (39.59 GB) 
DFS Remaining: 132292743168(123.21 GB) 
DFS Used%: 1.21% 
DFS Remaining%: 74.76% 
Last contact: Wed Jan 06 20:04:51 IST 2016 
0

報告我已經通過配置解決類似的問題機器在/ etc/hosts中。查看datanode日誌建議Datanodes無法解析Namenode。

0

即使我有同樣的問題。 copyFromLocal:文件。 COPYING只能複製到0節點而不是minReplication(= 1)。有1個數據節點正在運行,並且在此操作中不包含任何節點。 我已經解決了這個問題,釋放了一些空間。您也可以嘗試停止數據節點並重新啓動它。

0

這很可能是由於可用磁盤空間。檢查您的硬盤使用與df -h

有一些類似的問題,並回答有關類似here

相關問題