seatunnel 2.3.1全流程部署使用教程

 更新时间:2023年05月22日 09:27:14   作者:zzuli_cyf  
SeaTunnel是一个非常易于使用的超高性能分布式数据集成平台,支持海量数据的实时同步,这篇文章主要介绍了seatunnel 2.3.1全流程部署使用,需要的朋友可以参考下

SeaTunnel是什么?

SeaTunnel下一代高性能、分布式、海量数据集成框架。SeaTunnel是一个非常易于使用的超高性能分布式数据集成平台,支持海量数据的实时同步。每天可以稳定高效地同步数百亿数据,已被近百家公司用于生产。

SeaTunnel的核心特性有哪些?

  • 1.组件丰富(内置丰富插件,支持各种数据产品方便快捷的传输和集成数据)。

  • 2.高扩展性(基于模块化和插件化设计,支持热插拔, 带来更好的扩展性)。

  • 3.简单易用(特有的架构设计下,使得开发配置更简单,几乎零代码,无使用成本)。

  • 4.成熟稳定(经历多家企业,大规模生产环境使用和海量数据的洗礼,稳定健壮)。

Seatunnel 2.3.1 部署使用

1 部署

1.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

1.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--

1.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放到seatunnellib目录下了。

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

2 测试样例

2.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.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

2.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

2.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

到此这篇关于seatunnel 2.3.1全流程部署使用教程的文章就介绍到这了,更多相关seatunnel 部署使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 5个ChatGPT功能帮助你提升日常编码效率

    5个ChatGPT功能帮助你提升日常编码效率

    ChatGPT 作为最快完成亿活用户的应用,最近真的是火出天际了。今天分享5个 ChatGPT 功能,来提升我们的日常工作以及如何使用它提高代码质量
    2023-02-02
  • 12个常用前端UI框架集合汇总

    12个常用前端UI框架集合汇总

    本文整理了一些比较流行的前端UI框架其中有VUE、bootstrap、jQuery等框架,,排名不分先后,仅供参考。可按照项目需求自行考虑
    2020-02-02
  • 伪静态技术介绍与优缺点分析(较完整篇)

    伪静态技术介绍与优缺点分析(较完整篇)

    伪静态太适合用在普通的企业网站上了——既不要求高并发,但同时又很在乎seo(搜索引擎优化),而且也要求后台可动态更新。
    2009-11-11
  • 汉明码编码原理及校验方法分析

    汉明码编码原理及校验方法分析

    汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存RAM
    2021-09-09
  • Burp Suite Pro安装和配置使用教程详解

    Burp Suite Pro安装和配置使用教程详解

    本文给大家分享的是Burp Suite Pro1.7.36安装配置使用教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-09-09
  • 字符编码详解及由来(UNICODE,UTF-8,GBK) 比较详细

    字符编码详解及由来(UNICODE,UTF-8,GBK) 比较详细

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为字节
    2012-04-04
  • vscode调试launch.json常用格式完整的案例

    vscode调试launch.json常用格式完整的案例

    VSCode的launch.json文件是用来配置调试器的,可以设置调试器的启动方式、调试的目标文件、调试的参数,等这篇文章主要给大家介绍了关于vscode调试launch.json常用格式的相关资料,需要的朋友可以参考下
    2024-06-06
  • MobaXterm使用指南(常用功能)

    MobaXterm使用指南(常用功能)

    MobaXterm就是一款SSH客户端,它帮助我们在Windows操作系统下去连接并操作Linux服务器,这篇文章主要介绍了MobaXterm使用指南,需要的朋友可以参考下
    2023-05-05
  • xmind免费安装使用保姆级教程详解

    xmind免费安装使用保姆级教程详解

    xmind 是一款功能强大、易用且具有丰富资源的思维导图软件,本文将为您介绍 xmind 的安装和使用方法,包括基本功能、高级功能、专业版功能、使用技巧、常见问题等,帮助您快速上手使用 xmind
    2023-04-04
  • Base64 编码介绍、Base64编码转换原理与算法

    Base64 编码介绍、Base64编码转换原理与算法

    Base64编码,是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法,需要的朋友可以参考下
    2016-06-06

最新评论