`
qindongliang1922
  • 浏览: 2189186 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117681
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:126080
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:60035
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71406
社区版块
存档分类
最新评论

Spark任务两个小问题笔记

阅读更多


今天在用spark处理数据的时候,遇到两个小问题,特此笔记一下。

两个问题都与网络交互有关,大致处理场景是,在driver端会提前获取组装一批数据,然后把这些数据发送executor端进行后续处理。




问题一:序列化异常

driver有一个case class类需要封装一些数据发送到executor上,原来都是scala的类,直接发送到executor上执行没问题,而且也没加序列化的注解,原因是因为scala会自动给函数方法序列化,因为这个类出现在函数中,所以也没事,但今天在这个类里面又加了一个java的bean,结果就出现了异常:
````
java.io.NotSerializableException
````
原因是新加的java bean没有序列化,所以导致了这个问题,scala的函数序列化可能并不是深度序列化,不会对类属性里面的类再次进行序列化,所以解决办法就是让这个java bean实现java的序列化接口:
````
Bean  implements Serializable
````



问题二:driver端发送的数据太大导致超过spark默认的传输限制

异常如下:
````
User class threw exception: java.util.concurrent.ExecutionException:
org.apache.spark.SparkException
: Job aborted due to stage failure: Serialized task 523:49 was 146289487 bytes, which exceeds max allowed: 
spark.rpc.message.maxSize (134217728 bytes).
Consider increasing spark.rpc.message.maxSize 
or using broadcast variables for large values.
````


从上面的异常提示,已经很明显了,就是默认driver向executor上提交一个任务,它的传输数据不能超过128M,如果超过就抛出上面的异常。


如何解决:


方法一:使用广播变量传输

方法二:调大spark.rpc.message.maxSize的值,默认是128M,我们可以根据需要进行适当调整

在使用spark-submit提交任务的时候,加上配置即可:
````
--conf "spark.rpc.message.maxSize=512" //代表每个分区允许发送的最大值是512M
````


有什么问题可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。 技术债不能欠,健康债更不能欠, 求道之路,与君同行。
0
0
分享到:
评论

相关推荐

    spark笔记.zip

    Spark是Apache软件基金会下的一个开源大数据处理框架,它以其高效的计算性能、易用性以及对迭代计算的支持而闻名。Spark的核心在于它的弹性...通过深入学习这些内容,你可以更好地理解和运用这两个强大的大数据工具。

    spark源码阅读笔记

    接着,Driver进程的启动分为client端和Master端两个阶段。在client端,用户提交的Spark应用会被转化为一个Job,然后发送给Master;在Master端,接收到Job后,会根据配置信息创建RDD和DAG,并将任务调度给Worker执行...

    Spark学习笔记 Spark学习笔记 Spark学习笔记

    Spark 学习笔记 Spark 是一个基于内存的分布式计算框架,它提供了高效、灵活、可扩展的数据处理解决方案。Spark 的核心组件是 Resilient Distributed Dataset (RDD),它是一个弹性的分布式数据集合,提供了高效的...

    spark 笔记、学习笔记、资料

    Spark还引入了两种共享变量类型:广播变量和累加器。广播变量允许在整个集群中缓存一个只读的值,减少数据传输开销;累加器则用于实现累加操作,如计数和求和,但只能在任务内部进行写操作,对驱动程序是只读的。 ...

    spark资料笔记代码

    尚硅谷的Spark资料笔记代码提供了一个深入学习和理解Spark的宝贵资源库,涵盖理论知识、实践案例以及代码示例。 一、Spark核心概念 Spark的核心在于其弹性分布式数据集(Resilient Distributed Datasets,简称RDD)...

    Spark 学习之路,包含 Spark Core,Spark SQL,Spark Streaming,Spark mllib 学

    在 Spark 调度中最重要的是 DAGScheduler 和 TaskScheduler 两个调度器,其中,DAGScheduler 负责任务的逻辑调度, 将作业拆分为不同阶段的具有依赖关系的任务集。TaskScheduler 则负责具体任务的调度执行...

    Spark学习笔记

    - **任务执行**:Spark采用DAG(有向无环图)来优化任务执行流程,而MapReduce则是简单的Map和Reduce两个阶段。 - **应用场景**:Spark更适合需要迭代处理和复杂查询的应用场景,而MapReduce则适合于简单的批量处理...

    spark+hadoop大数据处理学习笔记

    本学习笔记将深入探讨这两个工具的核心概念、应用场景以及如何将它们结合使用。 **Hadoop** 是一个开源框架,主要用于分布式存储和计算。它的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS...

    spark考试(练习题)编程题笔记!

    Spark考试(练习题)编程题笔记! 一、RDD简介 RDD(Resilient Distributed DataSet)是 Spark 中的核心概念,表示弹性分布式数据集。它是容错的、并行的数据结构,可以让用户将数据存储到磁盘和内存中,并且还能...

    Spark学习笔记三

    本篇笔记主要探讨Spark中的共享变量、RDD持久化、checkpoint机制、运行模式以及任务调度等相关知识点。 1. **共享变量** - **累加器(Accumulator)**:累加器是一种只能增加不能减少的共享变量,常用于统计任务中...

    spark源码阅读笔记(详)

    1. **通信框架**: Spark采用了**Akka** 和 **Netty** 这两种成熟的通信技术,这些技术已经被广泛应用于生产环境,具有稳定性和高效性。 2. **Shuffle实现**: Spark中的Shuffle功能主要借鉴了**MapReduce**的设计...

    scala与spark基础

    Scala与Spark是大数据处理领域中的重要工具,它们的结合使用为高效的数据分析提供了可能。Scala是一种多范式编程语言,以其强大的函数式编程特性而受到...建议仔细阅读和实践其中的内容,以便更好地掌握这两个工具。

    Spark-学习.rar

    标题中的"Spark-学习.rar"表明这是一个关于...总的来说,"Spark-学习.rar"的两个文件为我们提供了一个全面了解和学习Spark的起点,通过它们,我们可以逐步掌握Spark的核心概念和技术,并提升大数据处理和分析的能力。

    大数据技术分享 Spark技术讲座 使用Apache Spark调整Spark 共45页.pdf

    随着许多应用程序开始在Spark上构建,如何在生产环境中高效运行Spark应用程序成为一个棘手的问题。挑战包括内存溢出、应用程序运行缓慢、未满足服务水平协议(SLA)、资源浪费和集群吞吐率下降等问题。 3. Spark...

    sparkMlib学习1

    SparkMLlib学习笔记 SparkMLlib是 Apache Spark 机器学习库,提供了一个统一的 API,用于机器学习任务的开发。SparkMLlib 提供了多种数据类型,包括 Vector、LabeledPoint 和 Matrix 等。这些数据类型是机器学习...

    scikit-learn-to-spark-ml:笔记本比较scikit-learn和Spark ML来构建机器学习管道

    标题 "scikit-learn-to-spark-ml" 暗示了这个项目是关于比较两个流行的机器学习库:scikit-learn和Apache Spark MLlib的。在这个场景中,"scikit-learn" 是一个广泛使用的Python库,适用于数据科学中的各种机器学习...

    藏经阁-Secured (Kerberos-based) Spark Notebook for Data Science.pdf

    3. Spark Notebook的应用:Spark Notebook是一个基于Web的交互式笔记本,它可以用于数据探索、分析和机器学习等任务。它提供了 Scala 和 Python 两种编程语言的支持,并且支持模板、安全登录集成和数据发现等功能。 ...

    Hadoop,SPRK开发学习笔记

    在大数据处理领域,Hadoop和Spark是两个至关重要的框架,它们为海量数据的存储、管理和分析提供了高效解决方案。本文将围绕“Hadoop,SPARK开发学习笔记”这一主题,深入探讨Hadoop的组件HDFS(分布式文件系统)、...

Global site tag (gtag.js) - Google Analytics