wordstream怎么优化 如何管理Spark内存?
如何管理Spark内存?
火花存储器管理
当Spark执行一个应用时,Spark cluster会启动两个JVM进程,驱动程序和执行器。驱动负责创建SparkContext上下文,提交任务,分发任务。执行者对任务负责。并将结果返回给驱动程序。同时,有必要为需要坚持的RDD提供存储。驱动端的内存管理比较简单,这里说的Spark内存管理是针对执行端的内存管理。
Spark内存管理分为静态内存管理和统一内存管理。Spark1.6之前使用静态内存管理,Spark1.6之后引入统一内存管理。
静态内存管理中的存储内存、执行内存和其他内存的大小在Spark应用程序运行期间是固定的,但是用户可以在应用程序启动之前对它们进行配置。
统一内存管理和静态内存管理的区别在于存储内存和执行内存共享同一个空间,可以互相借用。;的空间。
1.6以上的Spark1.6版本默认使用统一内存管理,通过设置参数为true(默认为false)可以使用静态内存管理。
一.具体细节
1.静态内存管理图
2.统一内存管理图
3.如何在reduce中处理OOM?
当提取数据时,您可以 不要一次就把它放下。如果你把它放下,你可以覆盖磁盘。
1)减少每次拉取的数据量。
2)增加洗牌聚合的记忆比例。
3)增加执行程序的总内存。
4. Shuffle and tune
默认值:32k参数说明:该参数用于设置shuffle写任务的BufferedOutputStream的缓冲区大小。在将数据写入磁盘文件之前,它将被写入缓冲区buffer,并将被写入缓冲区。当它满了,它将溢出到磁盘。调优建议:如果作业的可用内存资源足够,可以适当增加这个参数的大小(比如64k,必须是倍数),从而减少shuffle写过程中重写磁盘文件的次数,也是可以减少的。减少磁盘IO次数,从而提高性能。在实践中发现,合理调整该参数,性能将提高1%~5%。默认值:48m参数说明:该参数用于设置混排读取任务的缓冲区大小,该缓冲区缓冲决定了一次可以提取多少数据。调优建议:如果作业的可用内存资源足够,可以适当增加该参数的大小(例如96m),以减少拉取数据的次数,从而减少网络传输的次数,提高性能。在实践中发现,通过合理调整该参数,性能将提高1%~5%。默认值:3参数说明:混排读任务从混排写任务所在节点拉取自身数据时,如果由于网络异常导致拉取失败,会自动从。再试一次。此参数表示最大重试次数。如果在指定的次数内拉仍然不成功,可能会导致作业执行失败。调优建议:对于那些涉及特别耗时的shuffle操作的作业,建议增加最大重试次数(比如60。时间),以避免JVM满gc或网络不稳定等因素导致的数据拉取失败。实践中发现,调整这个参数可以大大提高数据量巨大(几十亿到几十亿)的洗牌过程的稳定性。洗牌file not find taskScheduler不负责重试任务,但DAGScheduler负责重试任务。默认值:5s参数说明:具体解释同上。该参数代表每次拉取数据的等待间隔,默认值为5s。优化结构讨论:建议增加间隔时长(如60s)以增加洗牌操作的稳定性。默认值:0.2参数说明:该参数表示执行程序内存中分配给聚合操作的shuffle read任务的内存比例,默认值为20%。优化建议:资源参数优化中解释了该参数。如果有足够的内存,并且很少使用持久化操作,建议增加这个比例,给shuffle read的聚合操作更多的内存,避免聚合过程中由于内存不足导致频繁的磁盘读写。存在实践中发现,通过合理调整该参数,性能可以提高10%左右。默认值:sort|hash参数说明:该参数用于设置ShuffleManager的类型。Spark 1.5之后,有hash、sort、tu三个选项。ngsten-sort .HashShuffleManager是Spark 1.2之前的默认选项,但Spark 1.2及以后的版本默认都是SortShuffleManager。钨-硫Ort类似于sort,但它使用了钨计划中的堆外内存管理机制,使得内存使用更加高效。调优建议:由于SortShuffleManager默认对数据进行排序,如果您的业务逻辑中需要这种排序机制,如果是这样,可以使用默认的SortShuffleManager如果你的商业逻辑不。;t不需要对数据进行排序,建议参考以下参数进行调优,并使用bypass机制或优化的HashShuffleManager。避免排序操作,提供更好的磁盘读写性能。这里需要注意的是,钨排序应该谨慎使用,因为之前已经发现了一些相应的bug。默认值:200参数说明:ShuffleManager为SortShuffl时。EManager,如果shuffle read任务数小于此阈值(默认为200),则在shuffle write过程中不会进行排序操作,而是直接跟随未优化的HashShuffleManag。呃但是最后每个任务生成的所有临时磁盘文件都会合并成一个文件,单独创建一个索引文件。调优建议:当你使用SortShuffleManager时,如果你真的不 t不需要排序操作,建议此参数大于随机读取任务的数量。那么此时会自动启用旁路机制,map端不会排序,减少排序的性能开销。但是这样的话,还是会产生大量的磁盘文件。因此,需要提高混洗写入的性能。默认值:false参数说明:如果使用了HashShuffleManager,则该参数有效。如果设置为true,那么会打开合并机制,会大大合并。和shuffle write的输出文件,这种方法可以大大降低磁盘IO开销,在大量shuffle read任务的情况下提高性能。调谐建议:如果你真的不 我不需要排序。Er排序机制,那么除了使用bypass机制,还可以尝试手动将参数指定为hash,使用HashShuffleManager,同时打开consolidate机制。实践证明,其性能比优于byp。The SortShuffleManager of ass mechanism is 10%~30% higher.
5.无序播放调谐设置
如何使用SparkShuffle调优配置项?
1)代码方面,不建议硬编码。
新SparkConf().设置( ", "64 ")
2)提交星火任务时,建议。
Spark-Submit-Confirm-Confirm …
3)在conf下的配置文件中,不建议使用,因为写完以后所有应用都会用到。
sds签证材料?
必要的文件和材料如下:
学习许可申请表-1294
2.护照信息页的彩色扫描件
3.本人电子照片(官方账号回复 照片规格 签证照片规格详情)。
家庭信息表-5645
5.教育和就业详细信息IMM-0104E
6.由符合条件的金融机构出具的10,000加元的GIC购买证明收据,以证明第一年的入学费用(需要提前支付,可以是银行汇款收据或学校收据,注明申请人 s信息)。
7.DLI合格大学/高等院校/语言学校的正式录取通知书(有条件录取通知书也可)。语言成绩证明(雅思成绩6.0以上或托福听力/口语/阅读/写作249/310/207/310以上)。该机构的最新成果。单篇和原文的英文翻译
8.授权机构出具的体检证明和指纹信息(预约提交至签证申请中心VAC。官方账号回复 身体检查及护理。;查看国内有资质的体检机构和国内可提交材料的VAC地址)。
SDS是签证申请中心为赴加拿大的留学生颁发的优惠签证政策。SDS(留学直通车)是用来替代和优化原来的GIC计划,可以看作是SPP(学生合作计划)和原来的GIC政策。的升级版本。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。