spark参数调优

当Hive数据量很大,需要大量groupby时,资源会不够用。

单跑整体需要很长时间,所以把能拆开的分部分来跑。

起初直接insert分区表,当3部分一起跑,会报重命名失败错误。org.apache.hadoop.fs.FileAlreadyExistsException: Renaming 'oss:///_temporary/0/task_20240303122822_0005_m_000022/stast_yyyymm=202308/campaign_id=2/part-00022-51e0d4da-405d-4310-9dbf-d6f0f491c5f1.c000.snappy.parquet' to 'oss://stast_yyyymm=202308/campaign_id=2/part-00022-51e0d4da-405d-4310-9dbf-d6f0f491c5f1.c000.snappy.parquet' -
returning false as dst is an already existing file

改成insert结果集,又报 ERROR TransportResponseHandler: Still have 1 requests outstanding when connection from /10.26.126.187:48416 is closed 错误。

查资料发现是系统资源不够用。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在进行Spark参数调优时,我们可以考虑以下几个主要参数: 1. num-executors:该参数用于设置Executor的数量。在Spark 1.6之前,它还用于设置RDD持久化数据在Executor内存中所占的比例,默认为0.6。可以根据作业中需要持久化的RDD数量来调整该参数值。如果作业中有较多的RDD需要进行持久化操作,可以将该参数值调高;如果作业中只有少量的RDD需要进行持久化操作,可以将该参数值调低。\[2\] 2. Spark.Shuffle.memoryFraction:该参数用于设置Driver进程的内存。通常情况下,我们不需要显式地设置该参数,因为Driver运行内存的默认值为512MB。但是,当使用collect算子时,需要确保Driver内存足够大,以避免出现内存溢出的错误。一般建议将Driver内存设置为1G~4G。\[3\] 3. Spark.default.parallelism:该参数用于设置默认的并行度。并行度决定了作业中任务的并发执行程度。默认情况下,Spark会根据集群的总核数来自动设置并行度。但是,如果需要手动设置并行度,可以调整该参数的值。一般建议将并行度设置为集群的总核数的2~3倍。\[1\] 通过调整这些参数,我们可以优化资源使用率,提升Spark作业的执行性能。请根据实际情况和需求进行参数调优。 #### 引用[.reference_title] - *1* *2* *3* [Spark性能调优](https://blog.csdn.net/aikeaidecxy/article/details/126491521)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值