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

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.lryc.cn/news/511861.html

相关文章:

  • MySQL 服务器简介
  • 如何使用Python从SACS结构数据文件中提取节点数据信息并导出到EXCEL
  • Java网约车项目实战:实现抢单功能详解
  • SSRF服务端请求Gopher伪协议白盒测试
  • html+css+js网页设计 美食 家美食1个页面
  • 初学stm32---高级定时器输出n个pwm波
  • 旅游管理系统|Java|SSM|VUE| 前后端分离
  • imgproxy图像处理的高效与安全
  • LLM并行计算的论文
  • Linux 搭建 nginx+keepalived 高可用 | Nginx反向代理
  • Spring Boot 项目中 Maven 剔除无用 Jar 引用的最佳实践
  • useWhyDidYouUpdate详解
  • c++入门——c++输入cin和输出cout的简单使用
  • Spring Cloud LoadBalancer (负载均衡)
  • 微服务-1 认识微服务
  • 基于51单片机的交通灯带拐弯proteus仿真
  • 1229java面经
  • MySQL中查看表结构
  • python利用selenium实现大麦网抢票
  • FME教程:一键批量调换图斑X、Y坐标,解决因为坐标弄反了,导致GIS弹窗提示“范围不一致”警告问题
  • OpenCV-Python实战(4)——图像处理基础知识
  • 音视频入门基础:MPEG2-PS专题(1)——MPEG2-PS官方文档下载
  • Qt自定义步骤引导按钮
  • 贝叶斯神经网络(Bayesian Neural Network)
  • Direct Preference Optimization: Your Language Model is Secretly a Reward Model
  • 如何通过 Kafka 将数据导入 Elasticsearch
  • 嵌入式系统 第十二讲 块设备和驱动程序设计
  • 攻防世界web第六题upload
  • 人工智能-Python网络编程-HTTP
  • 探索仓颉编程语言:功能、实战与展望