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.
- 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 :
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
- 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.
- Voir l'image
docker images
En miroir comme indiqué ci-dessous
- 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.
- 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
- 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
- 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
- mettre en œuvre
kubectl apply -f seatunnel-cluster.yml
- 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
kubectl edit cm hazelcast-client
kubectl edit cm seatunnelmap
Remplacez ici par votre propre adresse hdfs.
- Vous pouvez voir ce qui suit
- 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
- Afficher les journaux dans le conteneur
tail -200f logs/seatunnel-engine-server.log
Nous avons constaté que le cluster fonctionne normalement.
- 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
Lien d'origine : https://blog.csdn.net/weixin_41854429/article/details/132836402
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.Cet article est publié par Beluga Open Source Technology !