Spark调优多线thread并行处理任务实现方式 1. 明确Spark中Job与Streaming中Job的区别 Spark Core中一个RDD DAG Graph可以生成一个或多个Job(Action操作),一个Job可以认为是一个会最终输出一个结果RDD的一条由RDD组织而成的计算Job,在Spark应用中是一个被调度的单位。 Streaming中一个batch的数据对应一个DStreamGraph,而一个DStreamGraph包含一个或多个关于DStream的输出操作,每一个输出对应于一个Job,一个DStreamGraph对应一个JobSet,里面包含一个或多个Job。 2. Streaming Job的并行度 Streaming Job的并行度由两个配置决定:spark.scheduler.mode(FIFO/FAIR)和spark.streaming.concurrentJobs。 一个Batch可能会有多个Action执行,比如注册了多个Kafka数据流,每个Action都会产生一个Job,所以一个Batch可能是一批Job,也就是JobSet的概念。 这些Job由jobExecutor依次提交执行,而JobExecutor是一个默认池子大小为1的线程池,所以只能执行完一个Job再执行另外一个Job。 spark.streaming.concurrentJobs决定了向Spark Core提交Job的并行度,提交一个Job,必须等这个执行完了,才会提交第二个。 假设我们把它设置为2,则会并发的把Job提交给Spark Core,Spark有自己的机制决定如何运行这两个Job,这个机制其实就是FIFO或者FAIR(决定了资源的分配规则)。 3. Spark Streaming不同Batch任务可以并行计算吗? Spark Streaming可以在不同Batch任务并行计算的,需要满足以下条件:有延时发生了,batch无法在本batch完成,concurrentJobs > 1,如果scheduler mode是FIFO则需要某个Job无法一直消耗掉所有资源,Mode是FAIR则尽力保证你的Job是并行运行的。 4. Spark调优多线程并行处理任务实现方式 方式1:通过设置spark.streaming.concurrentJobs和spark.scheduler.mode来实现多线程并行处理任务。 方式2:使用线程池来实现多线程并行处理任务,例如使用Executor框架来创建线程池,并将任务提交到线程池中执行。 5. Spark Streaming的调优方法 通过设置spark.streaming.concurrentJobs和spark.scheduler.mode来实现多线程并行处理任务。 使用线程池来实现多线程并行处理任务。 通过设置batch间隔和Job的并行度来提高Spark Streaming的处理速度。 使用FAIR scheduler来保证Job的并行运行。 6. Spark Streaming的应用场景 场景1:程序每次处理的数据量是波动的,例如周末比工作日多很多,晚八点比凌晨四点多很多。 场景2:程序需要处理的相似job数随着业务的增长越来越多。 Spark Streaming可以用于实时处理大规模数据,例如实时监控、实时推荐等。 7.Spark Streaming的优点 可以实时处理大规模数据,具有较高的处理速度。 可以实现多线程并行处理任务,提高处理速度。 可以设置batch间隔和Job的并行度,提高处理速度。 8. Spark Streaming的缺点 需要较高的计算资源,例如CPU和内存。 需要合理设置batch间隔和Job的并行度,否则可能会出现性能问题。 不适合处理小规模数据,例如处理一些简单的数据报表。
- 粉丝: 3
- 资源: 851
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- RFID.uvprojx
- his_jdyl_qd_brxx2.sql
- 成熟草莓检测 草莓照片 - 物体检测数据集
- TeamIDE-win-2.6.31Team IDE 集成MySql、Oracle、金仓、达梦、神通等数据库、SSH、FTP、Redis、Zookeeper、Kafka、Elasticsearch、M
- Chrome 谷歌浏览器下载
- 360公司出品的清理windows系统垃圾的工具,非常好用
- 2661440830UT205A+ 206A+说明书.pdf
- TreeSize Free 是一个免费的检查文件夹大小的工具,便于找出哪个文件占用了较多的磁盘空间
- PixPin截图工具,非常好用的一款截图工具
- 布尔教育linux优化笔记