部署SeaTunnel分布式集群

这篇具有很好参考价值的文章主要介绍了部署SeaTunnel分布式集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

深入理解SeaTunnel:易用、高性能、支持实时流式和离线批处理的海量数据集成平台

一、部署SeaTunnel引擎

SeaTunnel Engine 是 SeaTunnel 的默认引擎。SeaTunnel的安装包中已经包含了SeaTunnel Engine的所有内容。

二、配置环境变量

在/etc/profile.d/seatunnel.sh中配置环境变量

export SEATUNNEL_HOME=${seatunnel install path}
export PATH=$PATH:$SEATUNNEL_HOME/bin

三、配置 SeaTunnel Engine JVM

SeaTunnel Engine 支持两种设置 jvm 选项的方式。

  1. 将 JVM 选项添加到$SEATUNNEL_HOME/bin/seatunnel-cluster.sh第一行
JAVA_OPTS="-Xms2G -Xmx2G"
  1. 启动 SeaTunnel 引擎时添加 JVM 选项。例如seatunnel-cluster.sh -DJvmOption=“-Xms2G -Xmx2G”

四、配置SeaTunnel

SeaTunnel Engine提供了很多功能,需要在seatunnel.yaml中进行配置。

1.备份

SeaTunnel Engine 基于Hazelcast IMDG实现集群管理。集群的状态数据(作业运行状态,资源状态)存储在Hazelcast IMap中。Hazelcast IMap 中保存的数据将分布存储在集群的所有节点中。Hazelcast 会对存储在 Imap 中的数据进行分区。每个分区可以指定备份的数量。因此,SeaTunnel Engine可以在不使用其他服务(例如zookeeper)的情况下实现集群HA。

用于backup count定义同步备份的数量。例如,如果设置为 1,分区的备份将放在另外一个成员上。如果是2,就会放在另外两个成员身上。

我们建议 的backup-count值为min(1, max(5, N/2))。N是集群节点的编号。

seatunnel:
    engine:
        backup-count: 1
        # other config

2.Slots

Slots的数量决定了集群节点可以并行运行的TaskGroups的数量。SeaTunnel Engine是一个数据同步引擎,大部分作业都是IO密集型的。

建议使用动态插槽。

seatunnel:
    engine:
        slot-service:
            dynamic-slot: true
        # other config

3.检查点

与 Flink 一样,SeaTunnel Engine 支持 Chandy–Lamport 算法。因此,SeaTunnel Engine可以实现数据同步,不丢失数据,不重复数据。

间隔:

  • 两个检查点之间的间隔,单位是毫秒。如果在作业配置文件checkpoint.interval中配置了该参数env,则此处设置的值将被覆盖。

暂停:

  • 检查点超时。如果在超时期限内无法完成检查点,则会触发检查点故障。

最大并发:

  • 最多可以同时执行多少个检查点。

可容忍的失败

  • 检查点失败后的最大重试次数。
seatunnel:
    engine:
        backup-count: 1
        print-execution-info-interval: 10
        slot-service:
            dynamic-slot: true
        checkpoint:
            interval: 300000
            timeout: 10000
            max-concurrent: 1
            tolerable-failure: 2

五、配置SeaTunnel引擎

文件中的所有 SeaTunnel 引擎服务器配置hazelcast.yaml。

SeaTunnel Engine 节点使用集群名称来判断对方是否与自己是一个集群。如果两个节点之间的集群名称不同,SeaTunnel Engine 将拒绝服务请求。

基于Hazelcast,SeaTunnel Engine 集群是运行 SeaTunnel Engine Server 的集群成员网络。集群成员自动连接在一起形成一个集群。这种自动加入是通过集群成员用来相互查找的各种发现机制进行的。

请注意,集群形成后,无论使用何种发现机制,集群成员之间的通信始终通过 TCP/IP。

SeaTunnel Engine 使用以下发现机制。可以将 SeaTunnel Engine 配置为完整的 TCP/IP 集群。

hazelcast:
  cluster-name: seatunnel
  network:
    join:
      tcp-ip:
        enabled: true
        member-list:
          - hostname1
    port:
      auto-increment: false
      port: 5801
  properties:
    hazelcast.logging.type: log4j2

TCP 是我们在独立 SeaTunnel Engine 集群中的建议方式。

类型

imap 持久化的类型,目前只支持hdfs.

命名空间

用于区分不同业务的数据存储位置,如OSS bucket名称。

集群名称

这个参数主要是用来做集群隔离的,我们可以用这个来区分不同的集群,比如cluster1,cluster2,这个也用来区分不同的业务

fs.defaultFS

我们使用hdfs api读写文件,所以使用这个存储需要提供hdfs配置

如果你使用 HDFS,你可以这样配置:

map:
    engine*:
       map-store:
         enabled: true
         initial-mode: EAGER
         factory-class-name: org.apache.seatunnel.engine.server.persistence.FileMapStoreFactory
         properties:
           type: hdfs
           namespace: /tmp/seatunnel/imap
           clusterName: seatunnel-cluster
           fs.defaultFS: hdfs://localhost:9000

如果没有 HDFS 并且您的集群只有一个节点,您可以像这样配置使用本地文件:

map:
    engine*:
       map-store:
         enabled: true
         initial-mode: EAGER
         factory-class-name: org.apache.seatunnel.engine.server.persistence.FileMapStoreFactory
         properties:
           type: hdfs
           namespace: /tmp/seatunnel/imap
           clusterName: seatunnel-cluster
           fs.defaultFS: file:///

六、配置 SeaTunnel 引擎服务器

cluster-name客户端必须与 SeaTunnel Engine相同。否则,SeaTunnel Engine 将拒绝客户端请求。

集群成员

所有SeaTunnel Engine Server Node地址都需要添加到这里。

hazelcast-client:
  cluster-name: seatunnel
  properties:
      hazelcast.logging.type: log4j2
  network:
    cluster-members:
      - hostname1:5801

启动SeaTunnel Engine Server

mkdir -p $SEATUNNEL_HOME/logs
nohup bin/seatunnel-cluster.sh 2>&1 &

日志将写入$SEATUNNEL_HOME/logs/seatunnel-engine-server.log

只需要将$SEATUNNEL_HOMESeaTunnel Engine节点上的目录复制到Client节点,并配置SEATUNNEL_HOME类似的SeaTunnel Engine Server节点即可。

七、部署SeaTunnel分布式集群

这是在生产环境中最推荐使用 SeaTunnel Engine 的方式。该模式支持SeaTunnel Engine的全部功能,集群模式的性能和稳定性会更好。

集群模式下,需要先部署SeaTunnel Engine集群,客户端将作业提交给SeaTunnel Engine集群运行。

提交命令

$SEATUNNEL_HOME/bin/seatunnel.sh --config $SEATUNNEL_HOME/config/v2.batch.config.template

八、检查点存储

Checkpoint是一种容错恢复机制。这种机制保证了程序运行时,即使突然遇到异常,也能自行恢复。

检查点
Checkpoint Storage是一种存储检查点数据的存储机制。

SeaTunnel Engine 支持以下检查点存储类型:

  • HDFS(OSS、S3、HDFS、本地文件)
  • LocalFile(本机),(已弃用:改用 Hdfs(LocalFile)。

我们使用微内核设计模式将检查点存储模块与引擎分离。这允许用户实现自己的检查点存储模块。

checkpoint-storage-api是checkpoint存储模块API,定义了checkpoint存储模块的接口。

如果要实现自己的checkpoint存储模块,需要实现CheckpointStorage并提供相应的CheckpointStorageFactory实现。

检查点存储
模块的配置seatunnel-server在seatunnel.yaml文件中。


seatunnel:
    engine:
        checkpoint:
            storage:
                type: hdfs #plugin name of checkpoint storage, we support hdfs(S3, local, hdfs), localfile (native local file) is the default, but this plugin is de
              # plugin configuration
                plugin-config: 
                  namespace: #checkpoint storage parent path, the default value is /seatunnel/checkpoint/
                  K1: V1 # plugin other configuration
                  K2: V2 # plugin other configuration   

注意:命名空间必须以“/”结尾。

如果你使用 HDFS,你可以这样配置:

seatunnel:
  engine:
    checkpoint:
      storage:
        type: hdfs
        max-retained: 3
        plugin-config:
          storage.type: hdfs
          fs.defaultFS: hdfs://localhost:9000
          // if you used kerberos, you can config like this:
          kerberosPrincipal: your-kerberos-principal
          kerberosKeytab: your-kerberos-keytab  
seatunnel:
  engine:
    checkpoint:
      interval: 6000
      timeout: 7000
      max-concurrent: 5
      tolerable-failure: 2
      storage:
        type: hdfs
        max-retained: 3
        plugin-config:
          storage.type: hdfs
          fs.defaultFS: file:/// # Ensure that the directory has written permission 

九、TCP

TCP网络
如果多播不是您环境的首选发现方式,那么您可以将 SeaTunnel Engine 配置为完整的 TCP/IP 集群。当您将 SeaTunnel Engine 配置为通过 TCP/IP 发现成员时,您必须将所有或部分成员的主机名和/或 IP 地址列为集群成员。您不必列出所有这些集群成员,但当新成员加入时,至少有一个列出的成员必须在集群中处于活动状态。

要将 Hazelcast 配置为完整的 TCP/IP 集群,请设置以下配置元素。有关 TCP/IP 发现配置元素的完整描述,请参阅 tcp-ip 元素部分。

  • 将 tcp-ip 元素的 enabled 属性设置为 true。
  • 在 tcp-ip 元素中提供您的成员元素。

以下是示例声明性配置。

hazelcast:
  network:
    join:
      tcp-ip:
        enabled: true
        member-list:
          - machine1
          - machine2
          - machine3:5799
          - 192.168.1.0-7
          - 192.168.1.21

如上所示,您可以为成员元素提供 IP 地址或主机名。您还可以提供 IP 地址范围,例如192.168.1.0-7.

除了如上所示逐行提供成员,您还可以选择使用成员元素并编写以逗号分隔的 IP 地址,如下所示。

192.168.1.0-7,192.168.1.21

如果您不为成员提供端口,Hazelcast 会自动尝试端口5701,5702依此类推。文章来源地址https://www.toymoban.com/news/detail-484584.html

到了这里,关于部署SeaTunnel分布式集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式应用:Zookeeper 集群与kafka 集群部署

    目录 一、理论 1.Zookeeper   2.部署 Zookeeper 集群 3.消息队列  4.Kafka 5.部署 kafka 集群 6.Filebeat+Kafka+ELK 二、实验 1.Zookeeper 集群部署 2.kafka集群部署 3.Filebeat+Kafka+ELK 三、问题          1.解压文件异常 2.kafka集群建立失败 3.启动 filebeat报错 4.VIM报错 5. kibana无法匹配 四、总结

    2024年02月14日
    浏览(62)
  • 大数据学习06-Spark分布式集群部署

    配置好IP vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改主机名 vi /etc/hostname 做好IP映射 vim /etc/hosts 关闭防火墙 systemctl status firewalld systemctl stop firewalld systemctl disable firewalld 配置SSH免密登录 ssh-keygen -t rsa 下载Scala安装包 配置环境变量 添加如下配置 使环境生效 验证 Spark官网 解压 上

    2024年02月10日
    浏览(70)
  • minio分布式集群安装部署实战详细手册

    Minio是GlusterFS创始人之一Anand Babu Periasamy发布新的开源项目。基于Apache License v2.0开源协议的对象存储项目,采用Golang实现,客户端支Java,Python,Javacript, Golang语言。 其设计的主要目标是作为私有云对象存储的标准方案。主要用于存储海量的图片,视频,文档等。非常适合于存储

    2024年02月12日
    浏览(40)
  • 大数据学习02-Hadoop分布式集群部署

    操作系统:centos7 软件环境:jdk8、hadoop-2.8.5 1.下载VMware,建议支持正版 2.安装到Widows目录下任意位置即可,安装目录自定义。打开VMware,界面如下: 3.创建虚拟机 创建虚拟机—选择自定义 这一步按照默认的配置就好 选择系统,安装程序光盘映像文件iso,这里需要下载cenos镜像

    2024年02月16日
    浏览(62)
  • zookeeper+kafka分布式消息队列集群的部署

    目录 一、zookeeper 1.Zookeeper 定义 2.Zookeeper 工作机制 3.Zookeeper 特点 4.Zookeeper 数据结构 5.Zookeeper 应用场景 (1)统一命名服务 (2)统一配置管理 (3)统一集群管理 (4)服务器动态上下线 6.Zookeeper 选举机制 (1)第一次启动选举机制 (2)非第一次启动选举机制 7.部署zookeepe

    2024年02月14日
    浏览(52)
  • Ubuntu搭建Hadoop3.X分布式和高可用集群,一步步深入

    目录 1. 介绍 2. 基础环境 2.1 关闭防火墙 2.2 修改主机名和主机映射 2.3 免密登录 2.4 安装jdk 3. 搭建hadoop3.x完全分布式 3.1 下载包地址 3.2 上传并解压 3.3 创建目录 3.4 修改配置文件  3.4.1 core.site.xml  3.4.2 hdfs-site.xml  3.4.3 yarn-site.xml 3.4.4 mapred-site.xml 3.4.5 workers 3.4.6 hadoop-env.sh

    2024年02月04日
    浏览(65)
  • JMeter分布式集群---部署多台机器进行性能压力测试

    有些时候,我们在进行压力测试的时候,随着模拟用户的增加,电脑的性能(CPU,内存)占用是非常大的,为了我们得到更加理想的测试结果,我们可以利用jmeter的分布式来缓解机器的负载压力,分布到多台机器同时运行。 1.Jmeter分布式执行原理: 1、Jmeter分布式测试时,选择

    2024年02月11日
    浏览(42)
  • 【简单认识zookeeper+kafka分布式消息队列集群的部署】

    Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已

    2024年02月13日
    浏览(42)
  • 分布式数据库Apache Doris HA集群部署

    📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜😜😜 中国DBA联盟(ACDU)成员,目前服务于工业互联网 擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优

    2024年02月06日
    浏览(53)
  • Hadoop集群部署-(完全分布式模式,hadoop-2.7.4)

    相关软件下载准备:(推荐) 虚拟机运行环境:VMware 16.1.1 映像文件:CentOS-7-x86_64-DVD-1810.iso 远程登录工具:Xshell-7.0.0090.exe Xftp传输工具:Xftp-7.0.0111p.exe 首先掌握VMware的下载与安装,有linux学习基础的同学可以略看。 参考链接:https://mp.weixin.qq.com/s/CUiauodcjCFPIXEFEx8fOw 【软件名

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包