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

数据质检之springboot通过yarn调用spark作业实现数据质量检测

Spring Boot 应用中通过 YARN 来调用 Spark 作业的来执行数据质检。这是一个非常经典的数据质量检测、数据优化的常用架构,将Web服务/业务处理(Spring Boot)与大数据质检(Spark on YARN)解耦。

核心架构图

首先,通过一张图来理解整个流程的架构:

在这里插入图片描述

整个流程的核心在于,Spring Boot 应用并不直接执行 Spark 作业,而是作为一个提交客户端,将作业提交到 YARN 集群上,并由 YARN 来负责资源管理和任务调度。

一、核心原理与组件

1. Spark on YARN 的模式

Spark on YARN 有种模式,这两种模式决定了 ApplicationMaster (AM) 的角色:

  • yarn-cluster (推荐用于生产环境):
    • Driver 运行在 YARN 的 ApplicationMaster 中。这意味着 Driver 进程是在 YARN 集群的某个节点上启动的。
    • Spring Boot 应用在提交作业后,可以与作业断开连接,作业会继续在 YARN 上运行直至结束。
    • 适合长时间运行的作业。
  • yarn-client (通常用于交互式/调试):
    • Driver 运行在提交作业的客户端机器上(即运行 Spring Boot 应用的那台机器)。
    • Spring Boot 应用必须保持运行,否则 Driver 退出会导致作业失败。
    • 作业的输出(如 stdout)会直接打印到客户端的控制台,方便调试。

技术细节:在 Spring Boot 中调用,我们通常使用 yarn-cluster 模式,这样我们的应用服务就不会被大量的 Spark 计算任务所拖累,实现了服务与计算的分离。

2. 关键组件:spark-submitSparkLauncher
  • spark-submit: 是 Spark 官方提供的用于提交作业的 shell 脚本。最简单的方式是在 Spring Boot 中通过 Runtime.getRuntime().exec() 来调用这个脚本。
  • SparkLauncher: 是 Spark 提供的 Java API,专门用于以编程方式将 Spark 应用程序启动到集群上。这是更优雅、更易于集成和管理的方式,推荐使用。

二、两种实现方式的技术细节

方式一:使用 ProcessBuilder 调用 spark-submit 脚本

这种方式本质上是将你在命令行手动执行的操作自动化。

步骤:

  1. 在部署了 Spark 和 Hadoop 客户端的机器上运行 Spring Boot 应用。
  2. 构建完整的 spark-submit
http://www.xdnf.cn/news/1385299.html

相关文章:

  • Dify 1.8.0 全网首发,预告发布
  • 2024-06-13-debian12安装Mariadb-Galera-Cluster+Nginx+Keepalived高可用多主集群
  • 动态UI的秘诀:React中的条件渲染
  • 在PostgreSQL中使用分区技术
  • 【三维渲染技术讨论】Blender输出的三维文件里的透明贴图在Isaac Sim里会丢失, 是什么原因?
  • Blender建模软件基本操作--学习笔记1
  • 查看docker容器内部的环境变量并向docker容器内部添加新的环境变量
  • 第十二节 Spring 注入集合
  • 微服务Eureka组件的介绍、安装、使用
  • 编程与数学 03-004 数据库系统概论 06_需求分析
  • CMake xcode编译器属性设置技巧
  • PDF转图片工具实现
  • R 语言 + 卒中 Meta 分析(续):机器学习 Meta 与结构方程 Meta 完整实现
  • 生成式 AI 的下一个风口:从 “生成内容” 到 “生成工具”,如何落地产业场景?
  • android 不同分辨图片放错对应文件夹会怎样?
  • RxGalleryFinal:全能Android图片视频选择器
  • PHP的header()函数分析
  • 数字孪生技术为UI前端赋能:实现产品性能的实时监测与预警
  • 神经科学启发下的自然语言处理:迈向深层语义理解的探索
  • 从2M到G时代:WiFi如何重塑我们的生活?
  • 高德三维地图航线航点弹出框zMarkerLayer点击事件
  • ArcGIS Pro 地图打包与解包
  • 研究人员发现VS Code漏洞:攻击者可重新发布同名已删除扩展
  • 深入理解会话状态管理:多轮对话与API最佳实践
  • STM32的RTC模块及其应用场景
  • 【项目思维】编程思维学习路线(推荐)
  • Golang 面试题「中级」
  • GPT-5 模型 API 中转对接技术精讲:高性价比集成方案与深度性能优化实践
  • 交互设计 | 无人机控制系统的 UI 设计:从人机交互到任务管理
  • 电平移位器的原理