Seatunel 集群部署

櫰木2年前技术文章1602

1、基础环境准备

  1. java 1.8 并配置java home

  2. 操作系统:centos7.9

  3. 下载安装包:https://www.apache.org/dyn/closer.lua/seatunnel/2.3.3/apache-seatunnel-2.3.3-bin.tar.gz

2、安装包部署

集群中的每个节点都按照以下方式进行部署

  1. 配置环境变量

    echo "export SEATUNNEL_HOME=/opt/seatunnel" >> /etc/profile
    echo "export PATH=$PATH:$SEATUNNEL_HOME/bin" >> /etc/profile
  1. 添加用户

    useradd seatunnel
  1. 解压安装包,配置软链

    tar -xzvf apache-seatunnel-2.3.3-bin.tar.gz  -C /opt
    ln -s /opt/apache-seatunnel-2.3.3  /opt/seatunnel

3、集群配置

  1. 配置seatunnel服务。切换到/opt/seatunnel/config目录

  2. 编辑调整seatunel.yaml配置文件

    vim seatunnel.yaml
    seatunnel:
      engine:
        history-job-expire-minutes: 1440
        backup-count: 1
        queue-type: blockingqueue
        print-execution-info-interval: 60
        print-job-metrics-info-interval: 60
        slot-service:
          dynamic-slot: true
        checkpoint:
          interval: 10000
          timeout: 60000
          storage:
            type: hdfs
            max-retained: 3
            plugin-config:
              namespace: /tmp/seatunnel/checkpoint_snapshot
              storage.type: hdfs
              fs.defaultFS: hdfs://mycluster
              seatunnel.hadoop.dfs.nameservices: mycluster
              seatunnel.hadoop.dfs.ha.namenodes.mycluster: nn1,nn2
              seatunnel.hadoop.dfs.namenode.rpc-address.mycluster.nn2: hadoop002:8020
              seatunnel.hadoop.dfs.namenode.rpc-address.mycluster.nn1: hadoop001:8020

checkpoint 配置使用hdfs存储,并通过nameservice进行操作。通过查看core-site.xml和hdfs-site.xml查看nameservice相关配置

  1. 配置高可用配置

  2. 编辑调整hazelcast.yaml 配置文件

    vim hazelcast.yaml
    hazelcast:
      cluster-name: seatunnel
      network:
        rest-api:
          enabled: true
          endpoint-groups:
            CLUSTER_WRITE:
              enabled: true
            DATA:
              enabled: true
        join:
          tcp-ip:
            enabled: true
            member-list:
              - hadoop001
              - hadoop002
              - hadoop003
        port:
          auto-increment: false
          port: 5801
      properties:
        hazelcast.invocation.max.retry.count: 20
        hazelcast.tcp.join.port.try.count: 30
        hazelcast.logging.type: log4j2
        hazelcast.operation.generic.thread.count: 50

member-list     集群节点列表

cluster-name: seatunnel  集群名称

4、启动集群

  1. 启动集群

    #切换到seatunnel用户
    su - seatunnel
    #启动seatunnel
    cd /opt/seatunnel
    #创建日志目录
    mkdir -p /opt/seatunnel/logs
    /bin/seatunnel-cluster.sh -d 
    #停止seatunnel
    ./bin/stop-seatunnel-cluster.sh

检测是否启动成功

ss -tunlp | grep 5801

image.png

5、测试服务

  1. 配置客户端配置

    vim /opt/seatunnel/config/hazelcast-client.yaml
    hazelcast-client:
      cluster-name: seatunnel
      properties:
        hazelcast.logging.type: log4j2
      network:
        cluster-members:
          - hadoop001:5801
          - hadoop002:5801
          - hadoop003:5801

cluster-name 需要和集群配置文件中一致

cluster-members 集群清单需要和集群节点中一致

  1. 运行测试命令

cd /opt/seatunnel
./bin/seatunnel.sh --config config/v2.batch.config.template

不出现报错则表示成功



相关文章

hbase-auto balancer失效

hbase-auto balancer失效

背景集群中,发现hbase 的compaction 队列一直增长,出现hang住的情况,排查发现,一些表的region集中在某些机器上,分布不均匀。但是排查发现auto balancer是默认开启的。...

RMAN-08137处理

现象:删除归档的时候报错:RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture p...

MySQL运维实战之ProxySQL(9.1)ProxySQL介绍

MySQL运维实战之ProxySQL(9.1)ProxySQL介绍

mysql通过复制技术实现了数据库高层面的可用,但是对于应用来说,当后端MySQL发生高可用切换时,应该怎么处理?我们考虑几种方案:1、使用域名绑定。应用通过dns连接后端实例,当后端发生切换后,将d...

A集群导入B集群中的高可用版rancher,一直处于pending状态

A集群导入B集群中的高可用版rancher,一直处于pending状态

问题现象:已知在B集群中采用helm方式部署了一个高可用版本的rancher,该rancher中已经配置导入了三套集群,并且三套集群状态在rancher控制台处均显示正常,日常可借助该rancher管...

MySQL运维实战(3.2) 常见数据库连接失败问题排查

如果数据库连接失败,可以从如下几方面来排查:1、客户端到服务端的网络是否畅通,服务端端口是否能连通。使用ping、telnet等工具探测服务端的端口是否能访问。[root@box3 ~]#&...

PostgreSQL 流复制

前言PostgreSQL 流复制(Streaming Replication)是 9.0 提供的一种新的 WAL 传递方法。使用流复制时,每当 Primary 节点 WAL 产生,就会马上传递到 St...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。