首页 > 其他分享 >Spark任务写数据到s3,默认单线程移动数据,执行时间很长

Spark任务写数据到s3,默认单线程移动数据,执行时间很长

时间:2022-10-13 17:45:35浏览次数:72  
标签:task s3 单线程 job spark commit Spark 目录

 

一、场景

目前使用s3替代hdfs作为hive表数据存储,使用spark sql insert数据到hive表,发现一个简单的查询+插入任务,查询+insert的动作显示已经执行完,任务还在跑,直到跑了两个小时后才执行结束。

二、原因

s3对spark默认的commit操作兼容性不强,spark有两种commit操作,一种是commit task,在executor上执行,一种是commit job,在driver上执行。默认commit策略下,spark在输出数据的时,会先输出到临时目录上,临时目录分task临时目录和job临时目录,默认的commit task操作是将执行成功的task的输出数据从task的临时目录rename到job的临时目录task目录,commit job操作则是driver单线程遍历所有job临时目录下所有task目录并rename到用户指定的输出目录下。driver运行时间长在于单线程rename所有task目录,最后在最终输出的目录加上SUCCESS文件,而s3的rename操作是mv=cp+rm,和hdfs的rename操作不同,效率低下。

三、解决

一般情况下,我们使用的committer是FileOutputCommitter,在hadoop2.7后,支持新的commit算法,将mapreduce.fileoutputcommitter.algorithm.version设置为2,默认是1,新的commit算法对commit task做了一下改动,不再将task临时目录mv到job的临时目录下,而是直接移动到最终目录下,不需要driver最后再单线程移动一次,commit job操作是在最终目录下直接加上SUCCESS文件即可。简单概括就是单线程mv变多线程mv,新的commit算法提高了性能,但是降低了数据一致性。

spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version=2 

标签:task,s3,单线程,job,spark,commit,Spark,目录
From: https://www.cnblogs.com/xiongmozhou/p/16788971.html

相关文章

  • css3字体使用
    @font-face{font-family:'kaiti';src:url('../font/KaiTi.woff')format('woff'),url('../font/KaiTi.ttf')format('truetype'),url('../font/KaiTi.svg#GE_SS......
  • spark+scala初始化
    内容选择这两个版本是考虑到版本稳定spark2.4.5Hadoop2.7.7scala与spark对应版本(不需要安装)先创建一个普通的maven项目(记得在Intellijidea中先安装对应的scala插件......
  • H7-TOOL的APP固件升级至V2.04,上位机升级至V2.04,新增南京沁恒CH32,华大HC32和中科芯CKS3
    说明:1、发布H7-TOOL的PDF版操作手册2、简化DAC信号发生器的操作步骤,输出电压和电流时自动切换到无波形状态。3、优化LOG显示代码,在修改文本期间禁止绘图,大幅度提高luaprint......
  • CSS3-动画
    CSS3-动画动画(animation)是CSS3中具有颠覆性的特征之一,可通过设置多个节点来精确控制一个或一组动画,常用来实现复杂的动画效果。相比较过渡,动画可以实现更多变化,更多......
  • 表现标准语言CSS3学习 入门+导入方式
    表现标准语言CSS3学习入门+导入方式如何学习:css是什么css怎么用(快速入门)css选择器(重点+难点)美化网页(文字、阴影、超链接、列表、渐变...)盒子模型浮......
  • CSS3新增样式
    CSS3新特性圆角:border-radiusradius:半径四个值是顺时针的顺序<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>demo</title>......
  • redis基础系列~单线程与多线程
    纯内存KV操作redis的操作都是在内存实现的,众所周知,在计算机的世界中,CPU的速度是远大于内存的速度的,同时内存的速度也是远大于硬盘的速度,所以非常快.所以内存的大小......
  • 少年,渴望玩转大数据么?艾叔带你从零起步快速掌握Spark
    "IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。Spark学习的痛点对初学者(特别是自......
  • CSS3 -2D转换之translate (移动:translate、旋转:rotate、缩放:scale)
    CSS3-2D转换之translate转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果,可以简单理解为变形移动:translate旋转:rotate缩放:scale1......
  • 数据算法--Hadoop-Spark大数据处理技巧 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1SCA5hN-0ZbEK_uHZgpBkVg点击这里获取提取码 ......