- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
张义
目录0102增加使用内存高磁盘I/O0302更多垃圾回收
增加使用内存1
增加使用内存由于shuffle操作涉及通过网络和数据串行化在服务器之间复制数据,因此其在网络和磁盘IO方面是一项昂贵的操作。因为shuffle操作涉及对数据进行分类,重新分区,并通过网络进行序列化/反序列化。它还涉及压缩数据以减少磁盘IO,所以它是一项昂贵的操作。
增加使用内存Spark使用map和reduce(不要与MapReduce map / reduce任务混淆)任务来组织shuffle的数据。它使用map任务来组织数据,使用reduce任务来聚合key以获得每个key的最终结果。
增加使用内存诸如reduceByKey和aggregateByKey之类的操作使用大量的Java堆内存来支持它们在内存中创建的数据结构(在shuffle前)和聚合(shuffle之后)数据。
高磁盘I/O2
高磁盘I/O由于诸如reduceByKey之类的操作在数据结构不能存放在内存中时会将其数据结构溢出到磁盘,所以会导致高磁盘Ⅰ/O的开销。在配置Spark上下文时,可以使用spark.local.dir配置属性(默认值为/ tmp )指定Spark 的临时存储目录的位置。
高磁盘I/OSpark在磁盘上生成中间文件,并保留它们,直到它们引用的RDD不再被使用并被垃圾回收。这就是说,如果需要重新计算RDD的血统, Spark可以使用中间文件。因此,长时间运行的Spark 作业可能会在临时存储目录中使用大量磁盘空间。
更多垃圾回收3
更多垃圾回收如上一节所述,大量的shuffle操作可能导致更多的垃圾回收(GC)操作,所有负面的事情都与大量的GC相关联。
文档评论(0)