EMR Spark - TransportClient:发送 RPC 失败

EMR Spark - TransportClient: Failed to send RPC

我收到此错误,我尝试增加集群实例以及执行程序和驱动程序参数中的内存但没有成功。

17/05/07 23:17:07 ERROR TransportClient: Failed to send RPC 6465703946954088562 to ip-172-30-12-164.eu-central-1.compute.internal/172.30.12.164:34706: java.nio.channels.ClosedChannelException

有人知道解决这个错误的线索吗?

顺便说一句,我正在使用 YARN 作为集群管理器

提前致谢

我终于解决了这个问题。这是由于磁盘不足 space。一列 hadoop 日志显示:

Hadoop YARN:1/1 本地目录错误:/var/lib/hadoop-yarn/cache/yarn/nm-local-dir; 1/1 log-dirs 是坏的:/var/log/hadoop-yarn/containers

谷歌搜索我发现 http://gethue.com/hadoop-yarn-11-local-dirs-are-bad-varlibhadoop-yarncacheyarnnm-local-dir-11-log-dirs-are-bad-varloghadoop-yarncontainers/

"If you are getting this error, make some disk space!"

要查看此错误,我必须在 EMR 中激活纱线日志。参见

http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html

为了访问集群 ec2 实例中的日志端口,我为其更改了安全组

即:

master instance was listening here: 172.30.12.84:8088 And core instance here: 172.30.12.21:8042

最后,我解决了 etl.py 实例类型被其他具有更大磁盘的实例更改的问题:

master: m3.2xlarge
core: c3.4xlarge

当我在我的笔记本电脑中设置 hadoop 和 spark 并尝试以 "spark-shell --master yarn" 启动 spark 时,我收到了相同的错误消息。

解决方案:

sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml

添加以下内容属性:

<property>       
<name>yarn.nodemanager.vmem-pmem-ratio</name>      
<value>5</value>  
</property>

然后重启hadoop服务

stop-all.sh 
start-all.sh