Seatunnel源码解析(1)-启动应用

Seatunnel源码解析(1)-启动应用

需求

公司在使用Seatunnel的过程中,规划将Seatunnel集成在平台中,提供可视化操作。
因此目前有如下几个相关的需求:

  1. 可以通过Web接口,传递参数,启动一个Seatunnel应用
  2. 可以自定义日志,收集相关指标,目前想到的包括:应用的入流量、出流量;启动时间、结束时间等
  3. 在任务结束后,可以用applicationId自动从yarn上收集日志(一是手动收集太麻烦,二是时间稍长日志就没了)

材料

  1. Seatunnel:2.0.5

目前官方2版本还没有正式发布,只能自己下载源码编译。
从Github下载官方源码,clone到本地Idea
github:https://github.com/apache/incubator-seatunnel
官方地址:http://seatunnel.incubator.apache.org/
Idea下方Terminal命令行里,maven打包,执行:mvn clean install -Dmaven.test.skip=true
打包过程大约十几分钟,执行结束后,seatunnel-dist模块的target目录下,可以找到打好包的*.tar.gz压缩安装包

  1. Spark:2.4.8
  2. Hadoop:2.7

任意门

Seatunnel源码解析(1)-启动应用
Seatunnel源码解析(2)-加载配置文件
Seatunnel源码解析(3)-加载插件
Seatunnel源码解析(4) -启动Spark/Flink程序
Seatunnel源码解析(5)-修改启动LOGO

导读

本章将从一个具体的应用案例为出发点,解析Seatunnel启动一个应用的流程

配置应用文件

启动ST应用之前,需要先编写一个.conf的配置文件。
.conf文件的内容,包括env、source、transform、sink几部分,描述了数据的完整传递流程。
本文使用官方包提供好的示例文件"config/spark.batch.conf"

  • spark.batch.conf
env {
   
  spark.app.name = "SeaTunnel"
  spark.executor.instances = 2
  spark.executor.cores = 1
  spark.executor.memory = "1g"
}

source {
   
  Fake {
   
    result_table_name = "my_dataset"
  }
}

transform {
   
}

sink {
   
  Console {
   }
}

启动应用

../bin/start-seatunnel-spark.sh \
 --master local \
 --deploy-mode client \
 --config example/spark.batch.conf

解析Shell启动脚本

官方的启动脚本,最后调用spark-submit命令,提交Spark应用程序。
可以看到提交的主类是:org.apache.seatunnel.SeatunnelSpark
可以初步判断SeatunnelSpark就是Seatunnel的主类入口

#!/bin/bash

...

exec ${SPARK_HOME}/bin/spark-submit --class org.apache.seatunnel.SeatunnelSpark \
    --name 
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值