暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

SeaTunnel 2023-06-08
2300

点击蓝字 关注我们


作者 | 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⭐️!

                                    文章转载自SeaTunnel,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                    评论