Guía de implementación del motor Zeta en modo clúster Apache SeaTunnel k8s

archivo

SeaTunnel proporciona un método para ejecutar el motor Zeta (modo clúster), que permite a Kubernetes ejecutar el motor Zeta localmente para lograr una implementación y administración de aplicaciones más eficientes. En este artículo, exploraremos más sobre los SeaTunnel k8 que ejecutan el motor zeta (modo de clúster) y aprenderemos cómo aprovechar mejor el motor Zeta.

  1. Sube SeaTunnel al servidor. He descomprimido y ejecutado install-plugin.sh antes. Por conveniencia, utilicé directamente el Seatunnel después de ejecutar el script install-plugin.sh para demostración.

El directorio lib después de ejecutar install-plugin contiene lo siguiente:

archivo

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. Construya la imagen del túnel del asiento. Cree un Dockerfile en la misma carpeta donde está instalado Seatunnel. La configuración es la siguiente, puedes elegir la versión tú mismo:
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

Ejecutando una orden

docker build -t seatunnel:2.3.3 -f Dockerfile.
  1. Ver imagen
docker images

Reflejado como se muestra a continuación

archivo

  1. Cargue la imagen en k8s. Minikube se utiliza aquí para demostración.
minikube image load seatunnel:2.3.3

Consulte lo anterior: Le enseñaremos paso a paso cómo dominar las habilidades para ejecutar el modo local del motor Zeta en SeaTunnel k8s.

  1. Cree el mapa de configuración de la siguiente manera
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. Utilice Reloader para reiniciar los pods automáticamente después de actualizar el mapa de configuración
wget https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml

kubectl apply -f reloader.yaml

archivo

  1. Cree seatunnel-cluster.yml de la siguiente manera
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. implementar
 kubectl apply -f seatunnel-cluster.yml

archivo

archivo

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

Ejemplo como el siguiente

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

Recordatorio amistoso: no use tabulaciones, use espacios. De lo contrario, se informará un error.

archivo

kubectl edit cm hazelcast-client

archivo

kubectl edit cm seatunnelmap

archivo

Cambie aquí a su propia dirección hdfs.

  1. Puedes ver lo siguiente

archivo

  1. Una vez que todos los nodos se hayan actualizado y estén en estado de ejecución, puede ingresar al contenedor para verificar si la ruta se ha modificado.
kubectl exec -it seatunnel-0 /bin/bash
cat config/hazelcast.yaml

archivo

  1. Ver registros dentro del contenedor
tail -200f logs/seatunnel-engine-server.log

archivo

Descubrimos que el clúster se está ejecutando normalmente.

  1. Ejecutar tareas

Podemos abrir una nueva conexión e iniciar sesión en otro nodo del pod para realizar tareas para probar el clúster:

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

Descubrimos que las tareas también comenzaron a ejecutarse en otros pods.

archivo

Enlace original: https://blog.csdn.net/weixin_41854429/article/details/132836402

¡Este artículo fue publicado por Beluga Open Source Technology !

El equipo de la Fundación Google Python fue despedido. Google confirmó los despidos y los equipos involucrados en Flutter, Dart y Python se apresuraron a la lista caliente de GitHub: ¿Cómo pueden ser tan lindos los lenguajes y marcos de programación de código abierto? Xshell 8 abre la prueba beta: admite el protocolo RDP y puede conectarse de forma remota a Windows 10/11 Cuando los pasajeros se conectan al WiFi del tren de alta velocidad , la "maldición de 35 años" de los codificadores chinos aparece cuando se conectan a la alta velocidad. Rail WiFi, la primera herramienta de búsqueda de IA con soporte a largo plazo de la versión 8.4 GA. Perplexica: completamente de código abierto y gratuito, una alternativa de código abierto a Perplexity. Los ejecutivos de Huawei evalúan el valor del código abierto. Hongmeng: todavía tiene su propio sistema operativo a pesar de la continua supresión. por países extranjeros, la empresa alemana de software para automóviles Elektrobit abrió una solución de sistema operativo para automóviles basada en Ubuntu.
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/SeaTunnel/blog/11066434
Recomendado
Clasificación