hadoop - Spark 错误 : Failed to Send RPC to Datanode

标签 hadoop apache-spark hive spark-streaming ambari

我们在 Spark thrift 服务器上遇到的问题很少

从日志中我们可以看到:Failed to send RPC 9053901149358924945 to/DATA NODE MACHINE:50149

请告知为什么会发生这种情况,解决方案是什么?

Failed to send RPC 9053901149358924945 to /DATA NODE MACHINE:50149: java.nio.channels.ClosedChannelException
more spark-hive-org.apache.spark.sql.hive.thriftserver.HiveThriftServer2-1-master03.sys67.com.out


Spark Command: /usr/jdk64/jdk1.8.0_112/bin/java -Dhdp.version=2.6.0.3-8 -cp /usr/hdp/current/spark2-thriftserver/conf/:/usr/hdp/current/spark2-thriftserver/jars/*:/usr/hdp/c
urrent/hadoop-client/conf/ -Xmx10000m org.apache.spark.deploy.SparkSubmit --conf spark.driver.memory=15g --properties-file /usr/hdp/current/spark2-thriftserver/conf/spark-th
rift-sparkconf.conf --class org.apache.spark.sql.hive.thriftserver.HiveThriftServer2 --name Thrift JDBC/ODBC Server --executor-cores 7 spark-internal
========================================
Warning: Master yarn-client is deprecated since 2.0. Please use master "yarn" with specified deploy mode instead.
18/02/07 17:55:21 ERROR TransportClient: Failed to send RPC 9053901149358924945 to /12.87.2.64:50149: java.nio.channels.ClosedChannelException
java.nio.channels.ClosedChannelException
        at io.netty.channel.AbstractChannel$AbstractUnsafe.write(...)(Unknown Source)
18/02/07 17:55:21 ERROR YarnSchedulerBackend$YarnSchedulerEndpoint: Sending RequestExecutors(2,0,Map()) to AM was unsuccessful
java.io.IOException: Failed to send RPC 9053901149358924945 to /12.87.2.64:50149: java.nio.channels.ClosedChannelException
        at org.apache.spark.network.client.TransportClient$3.operationComplete(TransportClient.java:249)
        at org.apache.spark.network.client.TransportClient$3.operationComplete(TransportClient.java:233)
        at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:514)
        at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:488)
        at io.netty.util.concurrent.DefaultPromise.access$000(DefaultPromise.java:34)
        at io.netty.util.concurrent.DefaultPromise$1.run(DefaultPromise.java:438)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:408)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:455)
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
        at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.nio.channels.ClosedChannelException
        at io.netty.channel.AbstractChannel$AbstractUnsafe.write(...)(Unknown Source)
18/02/07 17:55:21 ERROR SparkContext: Error initializing SparkContext.

我们也尝试从这个链接中捕捉一些好的观点 - https://thebipalace.com/2017/08/23/spark-error-failed-to-send-rpc-to-datanode/

但这是一个新的 ambari 集群,我们认为这篇文章不适合这个特定问题(我们的 ambari 集群上现在没有运行 spark 作业)

最佳答案

可能是磁盘空间不足。就我而言,我在 AWS EMR 中使用 1 个 r4.2xlarge(主)和 2 个 r4.8xlarge(核心)运行 Spark 作业。 Spark 调整和增加从属节点解决了我的问题。最常见的问题是内存压力、错误配置的 bcoz(即错误大小的执行程序)、长时间运行的任务以及导致笛卡尔运算的任务。您可以通过适当的缓存和允许数据倾斜来加速作业。为获得最佳性能,请监控和审查长时间运行且耗费资源的 Spark 作业执行。希望对您有所帮助。

引用 => EMR Spark - TransportClient: Failed to send RPC

关于hadoop - Spark 错误 : Failed to Send RPC to Datanode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48668533/

相关文章:

python - 如何通过使用python在spark中使用参数化的多列创建分区?

hadoop - Hive:在选择中使用选择

Python mrjob mapreduce如何对输入文件进行预处理

java - 如何在 Mapreduce 中生成 UUID?

hadoop - 无法使用配置单元聚合功能获得预期的输出

hadoop - 403 拒绝访问 Amazon S3 删除 protected 文件夹

scala - Spark Scala 中从字符串到日期的转换

hadoop - Hive 中的复杂数据类型问题

hadoop - Hive CLI 如何从 HDFS 检索巨大的结果文件?

apache-spark - 为什么 Spark 的 OneHotEncoder 默认删除最后一个类别?