一文搞定 Apache SeaTunnel 2.3.1 全流程部署使用

点击蓝字 关注我们

3cae5e9e1b1b81190fa793bcbc78432f.jpeg

作者 | caoyongfei

部署

1

下载解压

https://dlcdn.apache.org/incubator/SeaTunnel/2.3.1/apache-SeaTunnel-incubating-2.3.1-bin.tar.gz

下载完毕之后上传到服务器上面并解压

# 解压到了/opt/module目录下
tar -zxvf apache-SeaTunnel-incubating-2.3.1-bin.tar.gz -C /opt/module

2

下载对应的connector

在Apache的仓库下载相应的connector,下载时每个jar包在不同的路径下面,放到/SeaTunnel-2.3.1/connectors/SeaTunnel目录下

https://repo.maven.apache.org/maven2/org/apache/SeaTunnel/

connector-assert-2.3.1.jar
connector-cdc-mysql-2.3.1.jar
connector-console-2.3.1.jar # 自带的
connector-doris-2.3.1.jar
connector-elasticsearch-2.3.1.jar
connector-fake-2.3.1.jar # 自带的
connector-file-hadoop-2.3.1.jar
connector-file-local-2.3.1.jar
connector-hive-2.3.1.jar
connector-iceberg-2.3.1.jar
connector-jdbc-2.3.1.jar
connector-kafka-2.3.1.jar
connector-redis-2.3.1.jar

配置安装SeaTunnel的插件

vim  SeaTunnel-2.3.1/config/plugin_config

调用安装脚本的时候会在maven的中央仓库下载对应的jar包,尽量少放,下载太慢了,我放了这些

--connectors-v2--
connector-assert
connector-cdc-mysql
connector-jdbc
connector-fake
connector-console
--end--

3

安装SeaTunnel

sh bin/install-plugin.sh 2.3.1

整个过程非常慢…应该是从maven中央仓库下载东西

⭐1.4 补充一些jar包

  • 使用hive的话需要将这两个jar放入到SeaTunnel-2.3.1/lib目录下:

hive-exec-2.3.9.jar
# 下载链接
# https://repo.maven.apache.org/maven2/org/apache/hive/hive-exec/2.3.9/hive-exec-2.3.9.jar
# 注意这里是hive-exec-2.3.9.jar,不要从你的hive的lib目录下拷贝最新的jar包,就用这个




SeaTunnel-hadoop3-3.1.4-uber-2.3.1.jar  
# 下载链接
# https://repo.maven.apache.org/maven2/org/apache/SeaTunnel/SeaTunnel-hadoop3-3.1.4-uber/2.3.1/SeaTunnel-hadoop3-3.1.4-uber-2.3.1.jar  




SeaTunnel-hadoop3-3.1.4-uber-2.3.1-optional.jar
# 下载链接
# hhttps://repo.maven.apache.org/maven2/org/apache/SeaTunnel/SeaTunnel-hadoop3-3.1.4-uber/2.3.1/SeaTunnel-hadoop3-3.1.4-uber-2.3.1-optional.jar

中间由于其他缘故我拷贝了一个hive框架/lib目录下的libfb303-0.9.3.jar放到SeaTunnel的lib目录下了。

  • 使用mysql的话需要将mysql的驱动拷贝过来,应该是需要8系列的mysql驱动,我这里使用的是mysql-connector-java-8.0.21.jar

测试样例

1

官方demo fake to console

SeaTunnel-2.3.1/config/v2.batch.config.template

env {
  execution.parallelism = 2
  job.mode = "BATCH"
  checkpoint.interval = 10000
}




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








sink {
  Console {
  }
}

运行命令

cd /opt/module/SeaTunnel-2.3.1
./bin/SeaTunnel.sh --config ./config/v2.batch.config.template -e lcoal

运行成功的话会可以在console看到打印的测试数据

2

MySQL to console

我新建了一个用来放运行配置的目录/opt/module/SeaTunnel-2.3.1/job

vim mysql_2console.conf




mysql_2console.conf




env {
  execution.parallelism = 2
  job.mode = "BATCH"
  checkpoint.interval = 10000
}
source{
    Jdbc {
        url = "jdbc:mysql://hadoop102/dim_db?useUnicode=true&characterEncoding=utf8&useSSL=false"
        driver = "com.mysql.cj.jdbc.Driver"
        connection_check_timeout_sec = 100
        user = "root"
        password = "xxxxxx"
        query = "select * from dim_basicdata_date_a_d where date < '2010-12-31'"
    }
}




sink {
    Console {
    }
}

查询的是一张日期维表的数据

建表语句:

CREATE DATABASE dim_db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;




drop table if exists  dim_db.dim_basicdata_date_a_d;
create table if not exists dim_db.dim_basicdata_date_a_d
(
    `date`          varchar(40) comment '日期',
    `year`          varchar(40) comment '年',
    `quarter`       varchar(40) comment '季度(1/2/3/4)',
    `season`        varchar(40) comment '季节(春季/夏季/秋季/冬季)',
    `month`         varchar(40) comment '月',
    `day`           varchar(40) comment '日',
    `week`          varchar(40) comment '年内第几周',
    `weekday`       varchar(40) comment '周几(1-周一/2-周二/3-周三/4-周四/5-周五/6-周六/7-周日)',
    `is_workday`    varchar(40) comment '是否是工作日(1-是,0-否)',
    `date_type`     varchar(40) comment '节假日类型(工作日/法定上班[调休]/周末/节假日)',
    `update_date`   varchar(40) comment '更新日期'
);

可以自己插入几条数据试试

运行命令

cd /opt/module/SeaTunnel-2.3.1
./bin/SeaTunnel.sh --config ./job/mysql_2console.conf  -e local

3

Hive to console

创建一张hive表

CREATE database db_hive;




drop table if exists  db_hive.dim_basicdata_date_a_d;
create table if not exists db_hive.dim_basicdata_date_a_d
(
    `date`          string comment '日期',
    `year`          string comment '年',
    `quarter`       string comment '季度(1/2/3/4)',
    `season`        string comment '季节(春季/夏季/秋季/冬季)',
    `month`         string comment '月',
    `day`           string comment '日',
    `week`          string comment '年内第几周',
    `weekday`       string comment '周几(1-周一/2-周二/3-周三/4-周四/5-周五/6-周六/7-周日)',
    `is_workday`    string comment '是否是工作日(1-是,0-否)',
    `date_type`     string comment '节假日类型(工作日/法定上班[调休]/周末/节假日)',
    `update_date`   string comment '更新日期'
);

自行插入几条数据

创建配置文件hive_2console.conf

env {
  execution.parallelism = 2
  job.mode = "BATCH"
  checkpoint.interval = 10000
}
source{
  Hive {
    table_name = "db_hive.dim_basicdata_date_a_d"
    metastore_uri = "thrift://hadoop102:9083"
  }
}




sink {
    Console {
    }
}

这里我使用的hive连接方式是jdbc访问元数据,所以metastore_uri = "jdbc:hive2://hadoop102:10000"也可以正常使用。

hive-site.xml修改配置文件,有可能你已经配置好了

<!-- 为了方便连接,采用直连的方式连接到hive数据库,注释掉下面三条配置信息 -->
    <!-- 指定存储元数据要连接的地址 -->


        <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop102:9083</value>
    </property>




    <!-- 指定 hiveserver2 连接的 host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>


    <!-- 指定 hiveserver2 连接的端口号 -->
    <property>
        <name>hive.server2.thrift.port</name>
        <value>10000</value>
    </property>

运行命令

cd /opt/module/SeaTunnel-2.3.1
./bin/SeaTunnel.sh --config ./job/hive_2console.conf -e local

4

MySQL to hive

创建配置文件

dim_basicdate_mysql_2hive.conf




env {
  execution.parallelism = 2
  job.mode = "BATCH"
  checkpoint.interval = 10000
}
source{
    Jdbc {
        url = "jdbc:mysql://hadoop102/dim_db?useUnicode=true&characterEncoding=utf8&useSSL=false"
        driver = "com.mysql.cj.jdbc.Driver"
        connection_check_timeout_sec = 100
        user = "root"
        password = "111111"
        query = "select * from dim_basicdata_date_a_d"
    }
}




sink {
    Hive {
        table_name = "db_hive.dim_basicdata_date_a_d"
        metastore_uri = "thrift://hadoop102:9083"
    }
}

运行命令

cd /opt/module/SeaTunnel-2.3.1
./bin/SeaTunnel.sh --config ./job/dim_basicdate_mysql_2hive.conf-e local

版权声明:本文为CSDN博主「zzuli_cyf」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/QJQJLOVE/article/details/130794122

Apache SeaTunnel

Apache SeaTunnel 是一个分布式、高性能、易扩展、用于海量数据(离线&实时)同步和转化的数据集成平台

仓库地址: 

https://github.com/apache/seatunnel

网址:

https://seatunnel.apache.org/

Proposal:

https://cwiki.apache.org/confluence/display/INCUBATOR/SeaTunnelProposal

Apache SeaTunnel 下载地址:

https://seatunnel.apache.org/download

衷心欢迎更多人加入!

我们相信,在「Community Over Code」(社区大于代码)、「Open and Cooperation」(开放协作)、「Meritocracy」(精英管理)、以及「多样性与共识决策」等 The Apache Way 的指引下,我们将迎来更加多元化和包容的社区生态,共建开源精神带来的技术进步!

我们诚邀各位有志于让本土开源立足全球的伙伴加入 SeaTunnel 贡献者大家庭,一起共建开源!

提交问题和建议:

https://github.com/apache/seatunnel/issues

贡献代码:

https://github.com/apache/seatunnel/pulls

订阅社区开发邮件列表 : 

dev-subscribe@seatunnel.apache.org

开发邮件列表:

dev@seatunnel.apache.org

加入 Slack:

https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1kcxzyrxz-lKcF3BAyzHEmpcc4OSaCjQ

关注 Twitter: 

https://twitter.com/ASFSeaTunnel

精彩推荐

Apache SeaTunnel Connector 使用文档和使用案例有奖征稿来了!一起玩开源

SeaTunnel毕业!首个国人主导的数据集成项目成为Apache顶级项目

教程来了!在 Apache DolphinScheduler 中如何使用 SeaTunnel 组件

点击阅读原文,点亮Star⭐️!

97fc8fc6519da9cf746b11a84a704d92.png

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
为了安装Apache Seatunnel,您可以按照以下步骤进行操作: 1. 首先,您需要下载Apache Seatunnel的二进制文件。您可以在中找到下载链接。 2. 下载完成后,使用以下命令解压文件: ``` sudo tar -zxvf apache-seatunnel-incubating-2.1.3-bin.tar.gz ``` 3. 接下来,您需要配置环境变量。打开`/etc/profile`文件: ``` sudo vim /etc/profile ``` 4. 在文件末尾添加以下内容,并保存文件: ``` export SEATUNNEL_HOME=/usr/local/apache-seatunnel-incubating-2.1.3 export PATH=$PATH:${SEATUNNEL_HOME}/bin ``` 5. 让环境变量生效: ``` source /etc/profile ``` 现在,您已成功安装了Apache Seatunnel。您可以使用`start-seatunnel-spark.sh`命令提交Spark任务,或使用`start-seatunnel-flink.sh`命令提交Flink任务。 : https://join.slack.com/t/apacheseatunnel/shared_invite/zt-1kcxzyrxz-lKcF3BAyzHEmpcc4OSaCjQ : ``` #下载解压 sudo wget "apache-seatunnel-incubating-2.1.3-bin.tar.gz" sudo tar -zxvf apache-seatunnel-incubating-2.1.3-bin.tar.gz #配置环境变量 sudo vim /etc/profile export SEATUNNEL_HOME=/usr/local/apache-seatunnel-incubating-2.1.3 export PATH=$PATH:${SEATUNNEL_HOME}/bin #环境变量生效 source /etc/profile ``` : 提交Spark任务用`start-seatunnel-spark.sh`,提交Flink任务则用`start-seatunnel-flink.sh`。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [一文搞定 Apache SeaTunnel 2.3.1 流程部署使用](https://blog.csdn.net/weixin_54625990/article/details/131099059)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SeaTunnel安装及测试](https://blog.csdn.net/dwjlyl/article/details/128250253)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SeaTunnel

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

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

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

打赏作者

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

抵扣说明:

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

余额充值