当前位置: 首页 > article >正文

Spark写入HDFS数据SUCCESS文件生成控制

Spark写入HDFS数据SUCCESS文件

        • 1、_SUCCESS的控制
        • 2、_SUCCESS的实现




1、_SUCCESS的控制

与Hive不同,MapReduce和Spark在执行写入HDFS数据任务时,数据输出目录一般都会有一个名为_SUCCESS的空文件,该文件仅用来表示任务执行成功

但有些时候,在读取HDFS中的数据时,有_SUCCESS文件会使任务报错。此时,可以在 Spark代码中加以限制,不生成_SUCCESS文件即可

在Spark的Driver端配置如下参数:

sc.hadoopConfiguration.set("mapreduce.fileoutputcommitter.marksuccessfuljobs", "false")

或在SparkSQL中配置如下参数:

set mapreduce.fileoutputcommitter.marksuccessfuljobs=false;
2、_SUCCESS的实现

在Hadoop的源码中,有一个抽象类OutputCommitter专门负责Job的生命周期管理,Hadoop默认使用org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter作为具体的实现,在FileOutputCommitter的实现中,Hadoop会根据参数mapreduce.fileoutputcommitter.marksuccessfuljobs的值来判断是否要生成_SUCCESS文件。因为该参数的默认值为true,所以我们平常跑的任务基本都会输出_SUCCESS标志文件

Spark则复用了这个OutputCommitter机制,Spark任务在运行时会从配置中获取指定的实现类,如果没有指定,Spark默认会使用org.apache.hadoop.mapred.FileOutputCommitter作为实现

相反,Hive则自己实现了一个NullOutputCommitter来作为OutputCommitter的实现类,空实现其中的所有方法,即什么也不做,因此也就无法生成_SUCCESS文件

相关描述参考:https://stackoverflow.com/questions/13082606/getting-success-file-for-hive-script

更多源码细节参考文末参考文章

参考文章:
https://blog.csdn.net/u013332124/article/details/94468945
https://blog.csdn.net/u013332124/article/details/92001346


http://www.kler.cn/a/463981.html

相关文章:

  • Kafka为什么快(高性能的原因)
  • JavaScript性能
  • 豆包ai 生成动态tree 增、删、改以及上移下移 html+jquery
  • OWASP ZAP之API 请求基础知识
  • 四、VSCODE 使用GIT插件
  • DC-2 靶场渗透
  • Python基于OpenCV和wxPython的人脸识别监控打卡系统【附源码】
  • 纯血鸿蒙ArkUI的网格布局详解
  • 《Java核心技术II》流中的filter、map和flatMap方法
  • [Qt] 信号和槽(1) | 本质 | 使用 | 自定义
  • 【华为OD-E卷 - 德州扑克 100分(python、java、c++、js、c)】
  • 太速科技-619-基于双FMC接口 ZU19EG 的6U VPX采集存储计算处理卡
  • 论文研读:Text2Video-Zero 无需微调,仅改动<文生图模型>推理函数实现文生视频(Arxiv 2023-03-23)
  • 机器学习之线性回归算法预测数据
  • [简单指南] 轻松将联系人从 Sony Xperia 转移到 Android
  • 无人机踏勘:革新传统勘探方式的优势与前景
  • 如何在 Ubuntu 22.04 上部署 Nginx 并优化以应对高流量网站教程
  • Qt自定义步骤引导按钮
  • Vue3入门(9)
  • macos git上传通过全局设置不上传.DS_Store
  • C++之模板进阶
  • 详细讲一讲webpack部分的配置(入口和输出配置,模块处理配置(Loader),插件配置(Plugins),优化配置, 开发服务器配置,解析配置,性能配置
  • 《计算机网络A》单选题-复习题库解析-2
  • 电力系统优化分析/系统机组组合/水电优化运行/鲁棒优化/多能源互补优化/分布鲁棒优化
  • 智能工厂的设计软件 应用场景的一个例子:为AI聊天工具添加一个知识系统 之10 方案再探之1:特定于领域的模板 之1 随想交流
  • 如何在没有 iCloud 的情况下将数据从 iPhone 传输到 iPhone