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.
- 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:
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
- 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.
- Ver imagen
docker images
Reflejado como se muestra a continuación
- 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.
- 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
- 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
- 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
- implementar
kubectl apply -f seatunnel-cluster.yml
- 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.
kubectl edit cm hazelcast-client
kubectl edit cm seatunnelmap
Cambie aquí a su propia dirección hdfs.
- Puedes ver lo siguiente
- 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
- Ver registros dentro del contenedor
tail -200f logs/seatunnel-engine-server.log
Descubrimos que el clúster se está ejecutando normalmente.
- 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.
Enlace original: https://blog.csdn.net/weixin_41854429/article/details/132836402
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.¡Este artículo fue publicado por Beluga Open Source Technology !