Guide de déploiement du moteur Zeta en mode cluster Apache SeaTunnel k8s

déposer

SeaTunnel fournit une méthode pour exécuter le moteur Zeta (mode cluster), qui permet à Kubernetes d'exécuter le moteur Zeta localement pour obtenir un déploiement et une gestion plus efficaces des applications. Dans cet article, nous explorerons davantage le moteur Zeta du SeaTunnel k8 (mode cluster) et apprendrons comment mieux tirer parti du moteur Zeta.

  1. Téléchargez SeaTunnel sur le serveur. J'ai déjà décompressé et exécuté install-plugin.sh Pour plus de commodité, j'ai directement utilisé le Seatunnel après avoir exécuté le script install-plugin.sh pour la démonstration.

Le répertoire lib après l'exécution de install-plugin contient les éléments suivants :

déposer

tar -zxvf apache-seatunnel-2.3.3-bin.tar.gz
sh apache-seatunnel-2.3.3/bin/install-plugin.sh
tar -czvf  apache-seatunnel-2.3.3-bin.tar.gz  apache-seatunnel-2.3.3
  1. Créez l'image du tunnel de siège. Créez un Dockerfile dans le même dossier où Seatunnel est installé. La configuration est la suivante, vous pouvez choisir vous-même la version :
FROM openjdk:8
ENV SEATUNNEL_HOME="/opt/seatunnel"
ENV SEATUNNEL_VERSION="2.3.3"
COPY /apache-seatunnel-${SEATUNNEL_VERSION}-bin.tar.gz /opt/apache-seatunnel-${SEATUNNEL_VERSION}-bin.tar.gz
WORKDIR /opt
RUN tar -xzvf apache-seatunnel-${SEATUNNEL_VERSION}-bin.tar.gz
RUN mv apache-seatunnel-${SEATUNNEL_VERSION} seatunnel
RUN rm -f /opt/apache-seatunnel-${SEATUNNEL_VERSION}-bin.tar.gz
WORKDIR /opt/seatunnel

Exécuter une commande

docker build -t seatunnel:2.3.3 -f Dockerfile.
  1. Voir l'image
docker images

En miroir comme indiqué ci-dessous

déposer

  1. Chargez l'image dans k8s. Minikube est utilisé ici pour la démonstration.
minikube image load seatunnel:2.3.3

Veuillez vous référer à ce qui précède : Apprenez étape par étape à maîtriser les compétences nécessaires pour exécuter le mode local du moteur Zeta sur les SeaTunnel k8.

  1. Créez une carte de configuration comme suit
kubectl create configmap hazelcast-client  --from-file= config/hazelcast-client.yaml
kubectl create configmap hazelcast  --from-file=config/hazelcast.yaml
kubectl create configmap seatunnelmap  --from-file=config/seatunnel.yaml
  1. Utilisez Reloader pour redémarrer automatiquement les pods après la mise à jour de la configuration
wget https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml

kubectl apply -f reloader.yaml

déposer

  1. Créez Seatunnel-cluster.yml comme suit
apiVersion: v1
kind: Service
metadata:
  name: seatunnel
spec:
  selector:
    app: seatunnel
  ports:
  - port: 5801
    name: seatunnel
  clusterIP: None
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: seatunnel
  annotations:
    configmap.reloader.stakater.com/reload: "hazelcast,hazelcast-client,seatunnelmap"
spec:
  serviceName: "seatunnel"
  replicas: 3
  selector:
    matchLabels:
      app: seatunnel
  template:
    metadata:
      labels:
        app: seatunnel
    spec:
      containers:
        - name: seatunnel
          image: seatunnel:2.3.3
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 5801
              name: client
          command: ["/bin/sh","-c","/opt/seatunnel/bin/seatunnel-cluster.sh -DJvmOption=-Xms2G -Xmx2G"]
          resources:
            limits:
              cpu: "1"
              memory: 4G
            requests:
              cpu: "1"
              memory: 2G
          volumeMounts:
            - mountPath: "/opt/seatunnel/config/hazelcast.yaml"
              name: hazelcast
              subPath: hazelcast.yaml
            - mountPath: "/opt/seatunnel/config/hazelcast-client.yaml"
              name: hazelcast-client
              subPath: hazelcast-client.yaml
            - mountPath: "/opt/seatunnel/config/seatunnel.yaml"
              name: seatunnelmap
              subPath: seatunnel.yaml
      volumes:
        - name: hazelcast
          configMap:
            name: hazelcast
        - name: hazelcast-client
          configMap:
            name: hazelcast-client
        - name: seatunnelmap
          configMap:
            name: seatunnelmap
  1. mettre en œuvre
 kubectl apply -f seatunnel-cluster.yml

déposer

déposer

  1. Modifier la configuration dans configmap
kubectl edit cm hazelcast
修改集群地址 
这里采用的是headless service访问模式
一般pod之间访问其格式为 <pod-name>.<service-name>.<namespace>.svc.cluster.local

Exemple comme ci-dessous

  • Seatunnel-0.seatunnel.default.svc.cluster.local
  • Seatunnel-1.seatunnel.default.svc.cluster.local
  • Seatunnel-2.seatunnel.default.svc.cluster.local

Rappel amical : n’utilisez pas de tabulations, utilisez des espaces. Sinon, une erreur sera signalée

déposer

kubectl edit cm hazelcast-client

déposer

kubectl edit cm seatunnelmap

déposer

Remplacez ici par votre propre adresse hdfs.

  1. Vous pouvez voir ce qui suit

déposer

  1. Une fois que tous les nœuds ont été mis à jour et sont en cours d'exécution, vous pouvez entrer dans le conteneur pour vérifier si le chemin a été modifié.
kubectl exec -it seatunnel-0 /bin/bash
cat config/hazelcast.yaml

déposer

  1. Afficher les journaux dans le conteneur
tail -200f logs/seatunnel-engine-server.log

déposer

Nous avons constaté que le cluster fonctionne normalement.

  1. Exécuter des tâches

Nous pouvons ouvrir une nouvelle connexion et nous connecter à un autre nœud de pod pour effectuer des tâches permettant de tester le cluster :

kubectl exec -it seatunnel-1 /bin/bash
bin/seatunnel.sh --config config/v2.streaming.conf.template

Nous avons constaté que les tâches ont également commencé à s'exécuter dans d'autres pods

déposer

Lien d'origine : https://blog.csdn.net/weixin_41854429/article/details/132836402

Cet article est publié par Beluga Open Source Technology !

L'équipe de la Google Python Foundation a été licenciée. Google a confirmé les licenciements et les équipes impliquées dans Flutter, Dart et Python se sont précipitées vers la hot list de GitHub - Comment les langages et frameworks de programmation open source peuvent-ils être si mignons ? Xshell 8 ouvre le test bêta : prend en charge le protocole RDP et peut se connecter à distance à Windows 10/11 Lorsque les passagers se connectent au WiFi ferroviaire à grande vitesse , la « malédiction vieille de 35 ans » des codeurs chinois apparaît lorsqu'ils se connectent au haut débit. rail WiFi. Le premier outil de recherche IA à support à long terme de MySQL version 8.4 Perplexica : Entièrement open source et gratuit, une alternative open source à Perplexity. Les dirigeants de Huawei évaluent la valeur de l'open source Hongmeng : il possède toujours son propre système d'exploitation malgré une suppression continue. par des pays étrangers. La société allemande de logiciels automobiles Elektrobit a ouvert une solution de système d'exploitation automobile basée sur Ubuntu.
{{o.name}}
{{m.nom}}

Je suppose que tu aimes

Origine my.oschina.net/SeaTunnel/blog/11066434
conseillé
Classement