Apache SeaTunnel k8s-Clustermodus-Bereitstellungshandbuch für die Zeta-Engine

Datei

SeaTunnel bietet eine Methode zum Ausführen der Zeta-Engine (Cluster-Modus), die es Kubernetes ermöglicht, die Zeta-Engine lokal auszuführen, um eine effizientere Anwendungsbereitstellung und -verwaltung zu erreichen. In diesem Artikel erfahren Sie mehr über SeaTunnel k8s mit Zeta-Engine (Cluster-Modus) und erfahren, wie Sie die Vorteile der Zeta-Engine besser nutzen können.

  1. Laden Sie SeaTunnel auf den Server hoch. Ich habe install-plugin.sh zuvor dekomprimiert und ausgeführt. Der Einfachheit halber habe ich den Seatunnel direkt nach der Ausführung des install-plugin.sh-Skripts zur Demonstration verwendet.

Das lib-Verzeichnis nach der Ausführung von install-plugin enthält Folgendes:

Datei

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. Erstellen Sie das Seetunnelbild. Erstellen Sie eine Docker-Datei im selben Ordner, in dem Seatunnel installiert ist. Die Konfiguration ist wie folgt, Sie können die Version selbst wählen:
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

Einen Befehl ausführen

docker build -t seatunnel:2.3.3 -f Dockerfile.
  1. Bild ansehen
docker images

Gespiegelt wie unten gezeigt

Datei

  1. Das Laden des Bildes in k8s wird hier zur Demonstration verwendet.
minikube image load seatunnel:2.3.3

Bitte beachten Sie das Obige: Bringen Sie Ihnen Schritt für Schritt bei, wie Sie die Fähigkeiten zum Ausführen des Zeta-Engine-Lokalmodus auf SeaTunnel k8s beherrschen

  1. Erstellen Sie eine Konfigurationszuordnung wie folgt
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. Verwenden Sie Reloader, um Pods nach der Aktualisierung der Konfigurationszuordnung automatisch neu zu starten
wget https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml

kubectl apply -f reloader.yaml

Datei

  1. Erstellen Sie seatunnel-cluster.yml wie folgt
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. implementieren
 kubectl apply -f seatunnel-cluster.yml

Datei

Datei

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

Beispiel wie unten

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

Freundliche Erinnerung: Verwenden Sie keine Tabulatoren, sondern Leerzeichen. Andernfalls wird ein Fehler gemeldet

Datei

kubectl edit cm hazelcast-client

Datei

kubectl edit cm seatunnelmap

Datei

Wechseln Sie hier zu Ihrer eigenen HDFS-Adresse.

  1. Sie können Folgendes sehen

Datei

  1. Nachdem alle Knoten aktualisiert wurden und sich im Ausführungsstatus befinden, können Sie den Container betreten, um zu überprüfen, ob der Pfad geändert wurde.
kubectl exec -it seatunnel-0 /bin/bash
cat config/hazelcast.yaml

Datei

  1. Protokolle im Container anzeigen
tail -200f logs/seatunnel-engine-server.log

Datei

Wir haben festgestellt, dass der Cluster normal läuft.

  1. Aufgaben ausführen

Wir können eine neue Verbindung öffnen und uns bei einem anderen Pod-Knoten anmelden, um Aufgaben zum Testen des Clusters auszuführen:

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

Wir haben festgestellt, dass die Ausführung von Aufgaben auch in anderen Pods begonnen hat

Datei

Ursprünglicher Link: https://blog.csdn.net/weixin_41854429/article/details/132836402

Dieser Artikel wurde von Beluga Open Source Technology veröffentlicht !

Das Team der Google Python Foundation wurde entlassen , und die an Flutter, Dart und Python beteiligten Teams stürmten auf die GitHub-Hotlist – Wie können Open-Source-Programmiersprachen und Frameworks so süß sein? Xshell 8 startet Betatest: Unterstützt das RDP-Protokoll und kann eine Fernverbindung zu Windows 10/11 herstellen. Wenn Passagiere eine Verbindung zum Hochgeschwindigkeits-WLAN der Bahn herstellen , taucht der „35 Jahre alte Fluch“ chinesischer Programmierer auf, wenn sie sich mit Hochgeschwindigkeit verbinden Rail WiFi. MySQLs erstes KI-Suchtool mit Langzeitunterstützung für Version 8.4 GA : Vollständig Open Source und kostenlos, eine Open-Source-Alternative zu Perplexity. Hongmeng: Es verfügt trotz anhaltender Unterdrückung immer noch über ein eigenes Betriebssystem Das deutsche Automobilsoftwareunternehmen Elektrobit hat eine auf Ubuntu basierende Automobil-Betriebssystemlösung als Open Source bereitgestellt .
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/SeaTunnel/blog/11066434
Empfohlen
Rangfolge