`

spark运行在yarn上的一个异常

阅读更多

主机配置内存不足,导致在yarn上运行job异常,下面是spark运行在yarn上的一个异常:

17/05/03 17:58:02 ERROR client.TransportClient: Failed to send RPC 7785784597803174149 to /172.26.159.91:56630: java.nio.channels.ClosedChannelException
java.nio.channels.ClosedChannelException
17/05/03 17:58:02 WARN netty.NettyRpcEndpointRef: Error sending message [message = RequestExecutors(0,0,Map())] in 1 attempts
org.apache.spark.SparkException: Exception thrown in awaitResult
        at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:77)
        at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:75)
        at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36)
        at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:59)
        at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:59)
        at scala.PartialFunction$OrElse.apply(PartialFunction.scala:167)
        at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:83)
        at org.apache.spark.rpc.RpcEndpointRef.askWithRetry(RpcEndpointRef.scala:102)
        at org.apache.spark.rpc.RpcEndpointRef.askWithRetry(RpcEndpointRef.scala:78)
        at org.apache.spark.scheduler.cluster.YarnSchedulerBackend$YarnSchedulerEndpoint$$anonfun$receiveAndReply$1$$anonfun$applyOrElse$1.apply$mcV$sp(YarnSchedulerBackend.scala:271)
        at org.apache.spark.scheduler.cluster.YarnSchedulerBackend$YarnSchedulerEndpoint$$anonfun$receiveAndReply$1$$anonfun$applyOrElse$1.apply(YarnSchedulerBackend.scala:271)
        at org.apache.spark.scheduler.cluster.YarnSchedulerBackend$YarnSchedulerEndpoint$$anonfun$receiveAndReply$1$$anonfun$applyOrElse$1.apply(YarnSchedulerBackend.scala:271)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Failed to send RPC 7785784597803174149 to /172.26.159.91:56630: java.nio.channels.ClosedChannelException
        at org.apache.spark.network.client.TransportClient$3.operationComplete(TransportClient.java:239)
        at org.apache.spark.network.client.TransportClient$3.operationComplete(TransportClient.java:226)
        at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:680)
        at io.netty.util.concurrent.DefaultPromise$LateListeners.run(DefaultPromise.java:845)
        at io.netty.util.concurrent.DefaultPromise$LateListenerNotifier.run(DefaultPromise.java:873)
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
        at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
        ... 1 more
Caused by: java.nio.channels.ClosedChannelException
17/05/03 17:58:02 ERROR spark.SparkContext: Error initializing SparkContext.
java.lang.IllegalStateException: Spark context stopped while waiting for backend
        at org.apache.spark.scheduler.TaskSchedulerImpl.waitBackendReady(TaskSchedulerImpl.scala:581)
        at org.apache.spark.scheduler.TaskSchedulerImpl.postStartHook(TaskSchedulerImpl.scala:162)
        at org.apache.spark.SparkContext.<init>(SparkContext.scala:549)
        at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2256)
        at org.apache.spark.sql.SparkSession$Builder$$anonfun$8.apply(SparkSession.scala:831)
        at org.apache.spark.sql.SparkSession$Builder$$anonfun$8.apply(SparkSession.scala:823)
        at scala.Option.getOrElse(Option.scala:121)
        at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:823)
        at hp.IK_Analysis$.main(IK_Analysis.scala:26)
        at hp.IK_Analysis.main(IK_Analysis.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:729)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
17/05/03 17:58:02 INFO spark.SparkContext: SparkContext already stopped.
Exception in thread "main" java.lang.IllegalStateException: Spark context stopped while waiting for backend
        at org.apache.spark.scheduler.TaskSchedulerImpl.waitBackendReady(TaskSchedulerImpl.scala:581)
        at org.apache.spark.scheduler.TaskSchedulerImpl.postStartHook(TaskSchedulerImpl.scala:162)
        at org.apache.spark.SparkContext.<init>(SparkContext.scala:549)
        at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2256)
        at org.apache.spark.sql.SparkSession$Builder$$anonfun$8.apply(SparkSession.scala:831)
▽       at org.apache.spark.sql.SparkSession$Builder$$anonfun$8.apply(SparkSession.scala:823)
        at scala.Option.getOrElse(Option.scala:121)
        at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:823)
        at hp.IK_Analysis$.main(IK_Analysis.scala:26)
        at hp.IK_Analysis.main(IK_Analysis.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:729)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
17/05/03 17:58:02 INFO storage.DiskBlockManager: Shutdown hook called
17/05/03 17:58:02 INFO util.ShutdownHookManager: Shutdown hook called
17/05/03 17:58:02 INFO util.ShutdownHookManager: Deleting directory /tmp/spark-79c3cf1f-6451-4076-a371-da58601bca38

 

解决办法:在yarn-site.xml文件中配置一下两个属性

<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

 

yarn.nodemanager.pmem-check-enabled
是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true。
yarn.nodemanager.vmem-check-enabled
是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。

 

分享到:
评论

相关推荐

    spark yarn模式的搭建.docx

    Spark On Yarn 是一个在 Apache Hadoop YARN(Yet Another Resource Negotiator)资源管理器上运行 Apache Spark 应用程序的框架。这种模式允许 Spark 利用 Hadoop 的集群资源管理和调度能力,使得 Spark 能够更好地...

    application_process_Spark!_spark_log_applications_源码

    4. **YARN 或 Mesos 日志**:如果 Spark 运行在 YARN 或 Mesos 上,还会产生相应的资源管理器日志,如 YARN ApplicationMaster 日志或 Mesos 任务日志,它们提供了集群层面的资源分配和应用管理信息。 `application...

    Hadoop技术内幕深入解析YARN架构设计与实现原理PDF

    当应用程序提交时,RM为应用程序分配一个容器,AM便在这些容器上运行。 2. **Application Master (AM)**:每个应用程序都有一个对应的AM,负责应用程序的执行调度和任务监控。AM与RM交互以获取资源,然后与NM通信...

    spark 2 笔记

    在较高层次上,Spark 应用程序的核心组成部分是一个**驱动程序**(Driver Program),它负责运行用户的主函数并在集群上执行各种并行操作。 1. **弹性分布式数据集(RDD)**:RDD 是 Spark 提供的主要抽象,代表了...

    spark2.2 入门教程

    8. **YARN和Kubernetes集成**:Spark 2.2更好地支持了资源管理和调度平台,如Hadoop YARN和Kubernetes,使得在不同环境下部署和运行Spark应用变得更加灵活。 9. **Python和R支持**:虽然标签指定了Java,但Spark ...

    spark-with-python-course-master.zip_Python+Spark_Spark!_python s

    10. **分布式调试与监控**:学习如何在集群环境中调试PySpark程序,以及使用Spark UI和YARN等工具监控Spark应用的运行状态。 通过以上内容的学习,你将具备使用Python和Spark进行大数据处理的能力,无论是在学术...

    spark2.1.0 JAVA API

    8. **广播变量(Broadcast Variables)**: 广播变量用于在所有工作节点上缓存一个只读变量,减少网络传输。例如: ```java Broadcast, Integer&gt;&gt; broadcastVar = sc.broadcast(map); ``` 9. **累加器(Accumulators...

    windows10下spark2.3.0本地开发环境搭建-亲测

    3. 运行Spark示例:在IDE中编写一个简单的Spark程序,如WordCount,通过spark-submit提交到本地运行。 通过以上步骤,你将在Windows 10环境下成功搭建Spark 2.3.0的本地开发环境,可以开始进行Spark应用的开发和...

    spark-2.3.1-bin-hadoop2.6.tgz

    Spark 2.3.1是Apache Spark的一个稳定版本,它是一个快速、通用且可扩展的大数据处理框架。这个版本的Spark专为Linux平台设计,包含了Hadoop 2.6的集成,使得它能够无缝地与Hadoop生态系统交互,如HDFS(Hadoop...

    Spark笔记1

    `,这通常意味着应用程序已经在YARN集群中完成运行或出现了异常情况。针对此类问题,需要检查Spark应用程序本身是否存在问题,或者查看YARN集群的状态。 综上所述,本文从Spark与Hadoop集群集成、Spark环境搭建注意...

    spark案例之--------------高铁需求.zip

    - **弹性**:Spark可部署在Hadoop YARN、Mesos或独立集群上,具备良好的扩展性。 - **多模式编程模型**:支持批处理、交互式查询、实时流处理和图计算等多种数据处理模式。 3. **高铁数据应用场景**: - **乘客...

    Spark常见问题维护手册V1.01

    Spark的工作模式通常是在分布式集群上运行,支持Hadoop、Mesos和Kubernetes等多种资源管理器。 #### 【FI 中的 Spark】 FI可能指的是FusionInsight,这是华为推出的一个大数据分析平台,其中集成了Spark。在Fusion...

    数据算法++Hadoop+Spark大数据处理技巧

    在Hadoop 2.6.x版本中,YARN(Yet Another Resource Negotiator)被引入,以改进资源管理,使得系统能更有效地运行多种计算框架。 2. **Spark**:Spark是一个快速、通用且可扩展的大数据处理引擎,它在内存计算方面...

    这是一个基于简单的hadoop+spark完全分布式平台的薪资水平预测系统.zip

    6. **调度与部署**:项目可能包含YARN或Mesos的配置文件,用于在集群上运行Spark作业。 7. **测试**:测试目录下会有单元测试和集成测试,确保代码的正确性和稳定性。 在实际应用中,一个基于Spark的薪资预测系统...

    Python与Spark集群在收费数据分析中的应用.zip

    PySpark允许Python开发者直接在Spark集群上编写和运行代码,利用Spark的并行计算能力。通过PySpark,我们可以创建SparkContext,这是所有Spark操作的基础,然后加载数据到DataFrame,进行各种数据处理任务。...

    Big Data Analytics with Spark

    - **Executor**:运行在集群中的工作节点上,执行具体的计算任务,并将结果返回给Driver Program。 - **Cluster Manager**:负责资源分配,可以选择Spark自带的Standalone模式,或者集成Hadoop YARN、Apache Mesos...

    spark 调优解析 spark 企业调优

    1. **Worker与Executor:** 每一台主机(host)上可以运行多个worker进程,而每个worker进程下又可以启动多个executor线程。这些executor线程负责执行具体的task任务。 2. **Task与Stage:** Task是由executor执行的...

    waterdrop-1.5.1-with-spark.zip

    同时,通过YARN或Mesos等资源管理器,Waterdrop可以灵活地调度和运行其Spark作业,适应各种复杂的集群环境。 Waterdrop与Spark的结合,使得数据处理流程更加流畅。Spark作为一个快速、通用且可扩展的计算引擎,其...

Global site tag (gtag.js) - Google Analytics