Hadoop의 yarn-client와 연결 시에 아래와 같은 에러 발생한다면
1 2 3 | 18/02/01 11:21:43 ERROR client.TransportClient: Failed to send RPC 8239418781252696800 to datanode-c/192.168.10.29:41292: java.nio.channels.ClosedChannelException java.nio.channels.ClosedChannelException | cs |
Java 8의 과도한 메모리 할당 문제로 인해서 yarn 클러스터 연관성이 있을 수 있습니다.
따라서 hadoop의 홈 디렉터리 이하에 /etc/hadoop 에서 yarn-site.xml 설정 파일을 적절히 수정할 필요가 있습니다.
: yarn-site.xml 편집
1 2 | $ vi /usr/local/hadoop/etc/hadoop/yarn-site.xml | cs |
: 수정 후 저장 및 종료
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <configuration> ... <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> </configuration> | cs |
* yarn.nodemanager.pmem-check-enabled: 물리적 메모리 제한이 컨테이너에 적용되는지 여부
* yarn.nodemanager.vmem-check-enabled: 가상 메모리 제한이 컨테이너에 적용되는지 여부
아래의 증상도 동일한 이유에서 발생되는 에러가 아닐까 생각됩니다.
: 증상 1
1 2 | 18/02/01 11:21:43 ERROR cluster.YarnScheduler: Lost executor 2 on datanode-b: Slave lost | cs |
: 증상 2
1 2 3 | 18/02/01 11:21:43 ERROR client.TransportClient: Failed to send RPC 6587330219710502294 to datanode-c/192.168.10.29:41292: java.nio.channels.ClosedChannelException java.nio.channels.ClosedChannelException | cs |
: 증상 3
1 2 | 18/02/01 11:21:43 ERROR cluster.YarnScheduler: Lost executor 1 on datanode-c: Slave lost | cs |
출처: https://stackoverflow.com/questions/39467761/how-to-know-what-is-the-reason-for-closedchannelexceptions-with-spark-shell-in-y