Hadoop 스터디를 위해 설치한 AWS 서버가 free teer 버전이라 메모리가 1G 였다.
따라서 Hadoop 설치 후, Mapreduce의 Wordcount를 실행하려하니 아래와 같은 에러가 발생했다.
1. 에러
2. 해결 방법
Swap 메모리를 추가해주기로 했다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/ sudo dd if=/dev/zero of=/swapfile bs=128M count=32 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile sudo swapon -s sudo vi /etc/fstab [추가] /swapfile swap swap defaults 0 0 |
free -h 로 메모리가 증가되었는지 확인해보자.
[추가 전]
[추가 후]
이 후 wordcount를 실행해보면 정상 종료 되는 것을 확인 할 수 있다.
* 'java.net.ConnectException: Call From ip-172-31-33-183.ap-northeast-2.compute.internal/172.31 .33.183 to localhost:9000 failed on connection exception' 에러가 발생할 경우
[hadoop@ip-172-31-33-183 hadoop]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount input output 2020-03-27 16:39:39,705 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 2020-03-27 16:39:41,118 INFO impl.MetricsConfig: loaded properties from hadoop-metrics2.properties 2020-03-27 16:39:41,281 INFO impl.MetricsSystemImpl: Scheduled Metric snapshot period at 10 second(s). 2020-03-27 16:39:41,281 INFO impl.MetricsSystemImpl: JobTracker metrics system started java.net.ConnectException: Call From ip-172-31-33-183.ap-northeast-2.compute.internal/172.31 .33.183 to localhost:9000 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:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:831) at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:755) at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1515) |
원인은 아까 swap 메모리 설치 시, exit를 통해 job을 비정상 종료했기 때문이다.
정상적으로 모든 job이 떠있는지 jps를 통해 확인해보자.
start-all.sh |
startp-all.sh를 통해 namenode가 start되는 것을 확인한 후, 실행하면 정상 실행 된다.