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/

相关文章:

hadoop - 具有一个事件名称节点的HA群集性能低下

python - 使用 Python Lambda 的(键,值)对

jdbc - Hue Hive——Beeswax 服务器找不到 MySQL 的 JDBC 驱动程序

flutter - Hive错误未知类型TimeStamp。您忘记注册适配器了吗?如何为外部包中使用的对象类型生成TypeAdapter?

hadoop - 为Kafka主题创建Hive Table Producer

hadoop - 如何限制Hive作业中的映射器数量?

java - 在 Spark Streaming 中调用 updateStateByKey 时出错

apache-spark - 如何按包含其他数据帧/集的任何值的数组列过滤 Spark 数据帧

scala - 将数据帧中的字符串值转换为时间戳并存储在 Hive 中

dictionary - Hive-XML-SerDe-键/值对-映射