SeaTunnel系列之:部署SeaTunnel的Spark和Flink引擎

SeaTunnel系列之:部署SeaTunnel的Spark和Flink引擎

运行 SeaTunnel

现在您已经下载了 SeaTunnel 二进制包和连接器插件。接下来,您可以选择不同的引擎选项来运行同步任务。

如果您使用 Flink 运行同步任务,则无需部署 SeaTunnel 引擎服务集群。您可以参考使用 Flink 快速开始来运行您的同步任务。

如果您使用 Spark 运行同步任务,则同样无需部署 SeaTunnel 引擎服务集群。您可以参考使用 Spark 快速开始来运行您的同步任务。

如果您使用内置的 SeaTunnel 引擎(Zeta)来运行任务,则需要先部署 SeaTunnel 引擎服务。请参考使用 SeaTunnel 引擎快速开始。

快速开始使用 Flink

步骤 1: 部署 SeaTunnel 和连接器
在开始之前,请确保已按照部署中的描述下载并部署了 SeaTunnel。

步骤 2: 部署和配置 Flink
请首先下载 Flink(所需版本 ‍>= 1.12.0)。

配置 SeaTunnel: 修改 ${SEATUNNEL_HOME}/config/seatunnel-env.sh 中的设置,并将 FLINK_HOME 设置为 Flink 的部署目录。

步骤 3: 添加作业配置文件以定义作业

编辑 config/v2.streaming.conf.template,该文件确定 Seatunnel 启动后数据输入、处理和输出的方式和逻辑。以下是配置文件的一个示例,与上述提到的示例应用相同。

env {
  parallelism = 1
  job.mode = "BATCH"
}

source {
  FakeSource {
    plugin_output = "fake"
    row.num = 16
    schema = {
      fields {
        name = "string"
        age = "int"
      }
    }
  }
}

transform {
  FieldMapper {
    plugin_input = "fake"
    plugin_output = "fake1"
    field_mapper = {
      age = age
      name = new_name
    }
  }
}

sink {
  Console {
    plugin_input = "fake1"
  }
}

第 4 步:运行 SeaTunnel 应用程序

您可以使用以下命令启动应用程序:

对于 Flink 版本在 1.12.x 到 1.14.x 之间的:

cd "apache-seatunnel-${version}"
./bin/start-seatunnel-flink-13-connector-v2.sh --config ./config/v2.streaming.conf.template

对于 Flink 版本在 1.15.x 到 1.18.x 之间的:

cd "apache-seatunnel-${version}"
./bin/start-seatunnel-flink-15-connector-v2.sh --config ./config/v2.streaming.conf.template

查看输出:当您运行命令时,可以在控制台中看到其输出。这是判断命令是否成功执行的标志。

SeaTunnel 控制台将打印如下日志:

fields : name, age
types : STRING, INT
row=1 : elWaB, 1984352560
row=2 : uAtnp, 762961563
row=3 : TQEIB, 2042675010
row=4 : DcFjo, 593971283
row=5 : SenEb, 2099913608
row=6 : DHjkg, 1928005856
row=7 : eScCM, 526029657
row=8 : sgOeE, 600878991
row=9 : gwdvw, 1951126920
row=10 : nSiKE, 488708928
row=11 : xubpl, 1420202810
row=12 : rHZqb, 331185742
row=13 : rciGD, 1112878259
row=14 : qLhdI, 1457046294
row=15 : ZTkRx, 1240668386
row=16 : SGZCr, 94186144

快速开始使用 Spark

步骤 1: 部署 SeaTunnel 和连接器
在开始之前,请确保您已按照部署中的描述下载并部署了 SeaTunnel。

步骤 2: 部署和配置 Spark
请先下载 Spark(所需版本 ‍>= 2.4.0)。更多信息请参阅快速开始: 独立模式。
配置 SeaTunnel:更改 ${SEATUNNEL_HOME}/config/seatunnel-env.sh 中的设置,并将 SPARK_HOME 设置为 Spark 的部署目录。

步骤 3: 添加作业配置文件以定义作业
编辑 config/seatunnel.streaming.conf.template,该文件确定 SeaTunnel 启动后数据输入、处理和输出的方式和逻辑。以下是配置文件的一个示例,与上述示例应用相同。

env {
  parallelism = 1
  job.mode = "BATCH"
}

source {
  FakeSource {
    plugin_output = "fake"
    row.num = 16
    schema = {
      fields {
        name = "string"
        age = "int"
      }
    }
  }
}

transform {
  FieldMapper {
    plugin_input = "fake"
    plugin_output = "fake1"
    field_mapper = {
      age = age
      name = new_name
    }
  }
}

sink {
  Console {
    plugin_input = "fake1"
  }
}

步骤4:运行SeaTunnel应用程序

您可以通过以下命令启动应用程序:

Spark 2.4.x

cd "apache-seatunnel-${version}"
./bin/start-seatunnel-spark-2-connector-v2.sh \
--master local[4] \
--deploy-mode client \
--config ./config/v2.streaming.conf.template

Spark3.x.x

cd "apache-seatunnel-${version}"
./bin/start-seatunnel-spark-3-connector-v2.sh \
--master local[4] \
--deploy-mode client \
--config ./config/v2.streaming.conf.template

查看输出:当你运行命令时,可以在控制台中看到其输出。这是判断命令是否成功执行的标志。

SeaTunnel 控制台将打印如下日志:

fields : name, age
types : STRING, INT
row=1 : elWaB, 1984352560
row=2 : uAtnp, 762961563
row=3 : TQEIB, 2042675010
row=4 : DcFjo, 593971283
row=5 : SenEb, 2099913608
row=6 : DHjkg, 1928005856
row=7 : eScCM, 526029657
row=8 : sgOeE, 600878991
row=9 : gwdvw, 1951126920
row=10 : nSiKE, 488708928
row=11 : xubpl, 1420202810
row=12 : rHZqb, 331185742
row=13 : rciGD, 1112878259
row=14 : qLhdI, 1457046294
row=15 : ZTkRx, 1240668386
row=16 : SGZCr, 94186144
### 使用 SeaTunnel 引擎实现 SQL 数据传输至 ClickHouse 为了通过 SeaTunnel 将 SQL 查询的结果集传输到 ClickHouse 中,可以利用 SeaTunnel 提供的强大连接器功能来完成这一任务。具体来说,在配置文件中定义数据源(Source),指定 SQL 转换(Transform)逻辑,并设置目标存储(Sink)[^1]。 #### 配置示例 以下是基于 YAML 格式的简单配置实例,用于演示如何从 MySQL 获取数据并将其写入 ClickHouse: ```yaml env { execution.parallelism = 1 } source { MysqlSource { url = "jdbc:mysql://localhost:3306/test" username = "root" password = "" table-name = ["test_table"] driver = "com.mysql.cj.jdbc.Driver" } } transform { JdbcSelect { sql = "SELECT * FROM test_table WHERE id > ?" parameters = [100] } } sink { ClickHouseSink { jdbc-url = "jdbc:clickhouse://localhost:8123/default" table-name = "destination_table" user = "default" password = "" field-names = ["id", "name", "value"] } } ``` 此配置说明了如何从名为 `test` 的数据库中的表 `test_table` 抽取满足条件的数据记录,并将这些记录插入到 ClickHouse 的 `destination_table` 表里[^2]。 #### 关键点解释 - **Source**: 定义输入端口,这里选择了 MySQL 作为数据来源。 - **Transform**: 利用了 JDBC Select 变换组件执行自定义的 SQL 查询语句。 - **Sink**: 设置输出目的地为 ClickHouse, 并指定了相应的连接参数以及要保存的目标表格名称字段列表。 上述方法展示了怎样借助 SeaTunnel 强大的 ETL 功能轻松地把来自关系型数据库系统的查询结果迁移到分布式分析型数据库系统——ClickHouse 上面进行进一步处理或者报表展示[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐骑行^_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值