[HADOOP] ConnectException이는 : 하둡의 맵리 듀스를 실행하면 연결이 거부 됨
HADOOPConnectException이는 : 하둡의 맵리 듀스를 실행하면 연결이 거부 됨
1 네임 노드가 + 3 개 데이타 노드 : 나는 다중 기계 모드 (2.6.0) 하둡을 설정합니다. 내가 명령을 사용했을 때 start-all.sh, 그들은 (네임 노드는 데이터 노드, 자원 관리자, 노드 매니저) 확인했다. I이었다 노호 각 노드에서 JPS 명령과 결과를 확인 :
네임 노드 :
DataNode에서 :
/user/hadoop/data/sample.txt : 그리고 나는 또한에 HDFS에 샘플 텍스트 파일을 업로드했습니다. 그 순간에 전혀 오류가 없습니다.
하지만 하둡 예를의 항아리와 맵리 듀스를 실행하려고 할 때 :
이 오류가 :
15/04/08 03:31:26 INFO mapreduce.Job: Job job_1428478232474_0001 running in uber mode : false
15/04/08 03:31:26 INFO mapreduce.Job: map 0% reduce 0%
15/04/08 03:31:26 INFO mapreduce.Job: Job job_1428478232474_0001 failed with state FAILED due to: Application application_1428478232474_0001 failed 2 times due to Error launching appattempt_1428478232474_0001_000002. Got exception: java.net.ConnectException: Call From hadoop/127.0.0.1 to localhost:53245 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:791)
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:731)
at org.apache.hadoop.ipc.Client.call(Client.java:1472)
at org.apache.hadoop.ipc.Client.call(Client.java:1399)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232)
at com.sun.proxy.$Proxy31.startContainers(Unknown Source)
at org.apache.hadoop.yarn.api.impl.pb.client.ContainerManagementProtocolPBClientImpl.startContainers(ContainerManagementProtocolPBClientImpl.java:96)
at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.launch(AMLauncher.java:119)
at org.apache.hadoop.yarn.server.resourcemanager.amlauncher.AMLauncher.run(AMLauncher.java:254)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:530)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:494)
at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:607)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:705)
at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:368)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1521)
at org.apache.hadoop.ipc.Client.call(Client.java:1438)
... 9 more Failing the application.
15/04/08 03:31:26 INFO mapreduce.Job: Counters: 0
네임 노드가 프롬프트 password.I없이 데이타 노드와 그 반대에 ssh를 수 있는지 구성, 정보도 IP6을 dissabled 및 수정을 / etc / hosts 파일 :
네임 노드와 데이타 노드가 확실히 일을하지만, 맵리 듀스를 실행할 수없는 이유를 모르겠어요. 여기에 거의 stucked 해요, 당신이 날 이유를 찾을 수 있습니다?
편집하다 : 여기에 HDFS-site.xml 파일 (네임 노드)에서 Config :
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/hadoop_stores/hdfs/namenode</value>
<description>NameNode directory for namespace and transaction logs storage.</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop-nn:50070</value>
<description>Your NameNode hostname for http access.</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-nn:50090</value>
<description>Your Secondary NameNode hostname for http access.</description>
</property>
데이타 노드에서 :
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/hadoop_stores/hdfs/data/datanode</value>
<description>DataNode directory</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop-nn:50070</value>
<description>Your NameNode hostname for http access.</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-nn:50090</value>
<description>Your Secondary NameNode hostname for http access.</description>
다음 명령 결과입니다 : 하둡 때 fs -ls / 사용자 / 하둡 / 데이터
하둡 -ls FS / 사용자 / 하둡 / 출력
해결법
-
==============================
1.찾을 솔루션! 볼이 포스트 얀은 로컬 호스트 데이터 노드 번호 / 이름을 나타낸다
찾을 솔루션! 볼이 포스트 얀은 로컬 호스트 데이터 노드 번호 / 이름을 나타낸다
Call From localhost.localdomain/127.0.0.1 to localhost.localdomain:56148 failed on connection exception: java.net.ConnectException: Connection refused;
마스터와 슬레이브 모두의 / etc / 호스트 이름에 localhost.localdomain의 호스트 이름을 가지고 있었다. 나는 SLAVE1과 slave2하는 노예의 호스트 이름을 변경했습니다. 즉했다. 당신의 시간 동안 당신에게 모두 감사드립니다.
@kate 네임 노드에 있는지 등 / 호스트 이름을 확인하고 데이타 노드는 localhost로 설정되어 있지 않습니다. 그냥보고 터미널에서 ~ # 호스트 이름을 입력합니다. 동일한 명령으로 새로운 호스트 이름을 설정할 수 있습니다.
내 마스터와 노동자 또는 노예 '/ etc / hosts 파일은 this-처럼 보인다
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 #127.0.1.1 localhost 192.168.111.72 master 192.168.111.65 worker1 192.168.111.66 worker2
worker1에의 호스트 이름
hduser@worker1:/mnt/hdfs/datanode$ cat /etc/hostname worker1
및 worker2에
hduser@worker2:/usr/local/hadoop/logs$ cat /etc/hostname worker2
또한, 아마 당신은 루프백 인터페이스 "하둡"호스트 이름을 갖고 싶어하지 않습니다. 즉
127.0.0.1 localhost hadoop
https://wiki.apache.org/hadoop/ConnectionRefused이 지점 (1)을 확인합니다.
감사합니다.
-
==============================
2.방화벽 문제 :
방화벽 문제 :
이 오류는 방화벽 문제로 인해 수 있습니다. 터미널에서이 작업을 수행합니다 :
sudo apt-get install iptables-persistent sudo iptables -L sudo iptables-save > /usr/iptables-backup/iptables.v4.rules
(이것은 뭔가 잘못되면 방화벽을 복원하는 데 사용되기 때문에) 파일을 계속하기 전에 생성되어 있는지 확인하세요.
이제, 플러시 먼저, iptable 규칙 (즉 정지 방화벽) :
sudo iptables -F
지금 시도
sudo iptables -L
이 명령은 규칙을 반환해야합니다. 이제 작업을 줄일 /지도를 실행 해보십시오.
참고 : 이전 상태로의 iptables을 복원하려면, 터미널이를 입력 :
sudo는 /usr/iptables-backup/iptables.v4.rules
from https://stackoverflow.com/questions/29508847/connectexception-connection-refused-when-run-mapreduce-in-hadoop by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] PHP는 hiveserver이 문제 (0) | 2019.09.27 |
---|---|
[HADOOP] 프로그램이 중단 될 때 스파크 병합 파일을 푼다 (0) | 2019.09.27 |
[HADOOP] 외부 라이브러리와 하둡 하이브 UDF (0) | 2019.09.27 |
[HADOOP] HiveServer2는 HDFS의 디렉토리를 많이 생성 / tmp를 / 하이브 / 하이브 (0) | 2019.09.27 |
[HADOOP] 아파치 스파크 JavaSchemaRDD 그것에 RDD 입력 데이터가 비록 비어 (0) | 2019.09.27 |