加入收藏 | 设为首页 | 会员中心 | 我要投稿 唐山站长网 (https://www.0315zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

提高您的Apache Spark工作性能

发布时间:2021-02-24 14:05:41 所属栏目:外闻 来源:互联网
导读:,我将介绍以下主题: 多个小文件作为源 随机分区参数 强制广播Join 分区vs合并vs随机分区参数设置 我们可以改善什么? 1. 使用多个小文件? OpenCostInBytes(来自文档)可以同时扫描打开文件的估计成本(以字节数衡量)。 将多个文件放入分区时使用。 最好高估一

,我将介绍以下主题:

  • 多个小文件作为源
  • 随机分区参数
  • 强制广播Join
  • 分区vs合并vs随机分区参数设置

我们可以改善什么?

1. 使用多个小文件?

OpenCostInBytes(来自文档)—可以同时扫描打开文件的估计成本(以字节数衡量)。 将多个文件放入分区时使用。 最好高估一下,然后,具有较小文件的分区将比具有较大文件的分区(首先安排)更快。 默认值为4MB。

spark.conf.set("spark.files.openCostInBytes", SOME_COST_IN_BYTES)

我对包含12,000个文件的1GB文件夹,包含800个文件的7.8GB文件夹和包含1.6k个文件的18GB文件夹进行了测试。 我的目的是弄清楚输入文件是否较小,最好使用低于默认值的文件。

因此,当测试1GB和7.8GB文件夹时-肯定是较低的值,但是测试大约11MB的文件时,较大的参数值会更好。

使用接近您的小文件大小的openCostInBytes大小。 这样会更有效率!

2. 随机分区

开始使用Spark时,我莫名其妙地想到了在创建Spark会话时设置的配置是不可变的。 天哪,我怎么错。

因此,通常,在进行聚集或联接时,spark分区在spark中是一个静态数字(默认为200)。 根据您的数据大小,这会导致两个问题:

  • 数据集很小-200太多,数据分散且效率不高
  • 数据集巨大-200太少了。 数据被浪费了,我们没有充分利用我们想要的所有资源。

因此,在遇到此类问题时遇到了一些麻烦,我在Google上花费了很多时间,发现了这个美丽的东西


(编辑:唐山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读