오픈 소스 Hadoop의 다중 노드 클러스터를 구성하려고 합니다. 네임노드와 데이터노드에 Hadoop 3.0을 설치했습니다. 둘 다 Linux(SUSE 및 Ubuntu)를 실행합니다. CentOS, RedHat 또는 Fedora도 마찬가지입니다.
.xml 파일의 다른 설정(예: 다른 포트 번호)을 시도했습니다. 기본적으로 모든 구성에서 동일한 오류가 발생합니다. 네임노드를 다시 포맷하고 서버를 다시 시작하는 hdfs를 시도했습니다.
sudo -i hdfs namenode format
서버 간 연결을 차단하는 방화벽이 없습니다. hadoop이 쓸 네임노드(/fs/hadoop/tmp/)의 디렉토리와 연결된 소유자 및 그룹이 hduser 및 hadoop인지 확인했습니다. 또한 누구든지 쓸 수 있도록 했습니다(소유자, 그룹, 사용자 모두 사용할 때 "w"가 표시됩니다 ls -l
).
start-dfs.sh 및 start-yarn.sh 스크립트를 사용할 수 있습니다. 작동하는 것 같습니다.
sudo jps
다음을 반환합니다.
2513 Jps
1667 DataNode
2468 DFSAdmin
2134 NodeManager
1849 SecondaryNameNode
이 파일에서는 /usr/local/hadoop/etc/hadoop/core-site.xml
로컬 호스트 이름, FQDN 및 0.0.0.0을 사용했습니다. Yarn 및 HDFS 서비스를 중지하고 HDFS를 포맷했습니다. 이러한 다양한 시도는 나에게 도움이 되지 않았습니다. 문제는 이 sudo -i hdfs dfsadmin -report
명령이 작동하기를 원한다는 것입니다 . 그러나 이것이 내가 실행한 후에 보는 것입니다:
18/01/02 04:48:38 WARN ipc.Client: Failed to connect to server: namenodesrvr/127.0.0.1:9000: try once and fail.
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:495)
at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:681)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:777)
at org.apache.hadoop.ipc.Client$Connection.access$3500(Client.java:409)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1542)
at org.apache.hadoop.ipc.Client.call(Client.java:1373)
at org.apache.hadoop.ipc.Client.call(Client.java:1337)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:227)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:116)
at com.sun.proxy.$Proxy10.getFsStats(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getStats(ClientNamenodeProtocolTranslatorPB.java:626)
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:498)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:398)
at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:163)
at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:155)
at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:335)
at com.sun.proxy.$Proxy11.getStats(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient.getStateByIndex(DFSClient.java:2073)
at org.apache.hadoop.hdfs.DFSClient.getDiskStatus(DFSClient.java:2082)
at org.apache.hadoop.hdfs.DistributedFileSystem.getStatus(DistributedFileSystem.java:1224)
at org.apache.hadoop.fs.FileSystem.getStatus(FileSystem.java:2350)
at org.apache.hadoop.hdfs.tools.DFSAdmin.report(DFSAdmin.java:476)
at org.apache.hadoop.hdfs.tools.DFSAdmin.run(DFSAdmin.java:1908)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:90)
at org.apache.hadoop.hdfs.tools.DFSAdmin.main(DFSAdmin.java:2099)
report: Call From localhost/127.0.0.1 to namenodesrvr:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
이 명령을 사용하려면 무엇을 변경해야 합니까 sudo -i hdfs dfsadmin -report
?