SeaTunnel은 Zeta 엔진(클러스터 모드)을 실행하는 방법을 제공합니다. 이를 통해 Kubernetes는 Zeta 엔진을 로컬에서 실행하여 보다 효율적인 애플리케이션 배포 및 관리를 달성할 수 있습니다. 이 기사에서는 Zeta 엔진(클러스터 모드 모드)을 실행하는 SeaTunnel k8에 대해 자세히 알아보고 Zeta 엔진을 더 잘 활용하는 방법을 알아봅니다.
- SeaTunnel을 서버에 업로드합니다. 이전에 install-plugin.sh를 압축해제하여 실행한 적이 있었는데, 편의상 시연을 위해 install-plugin.sh 스크립트를 실행한 후 바로 situnnel을 사용했습니다.
install-plugin을 실행한 후 lib 디렉터리에는 다음이 포함됩니다.
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
- Seatunnel 이미지를 빌드합니다. Seatunnel이 설치된 폴더에 Dockerfile을 생성합니다. 구성은 다음과 같습니다. 버전을 직접 선택할 수 있습니다.
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
주문 실행
docker build -t seatunnel:2.3.3 -f Dockerfile.
- 이미지 보기
docker images
아래와 같이 미러링됨
- 여기에서는 데모를 위해 Minikube를 사용하여 이미지를 로드합니다.
minikube image load seatunnel:2.3.3
위 내용을 참조하세요. SeaTunnel k8s에서 Zeta 엔진 로컬 모드를 실행하는 기술을 습득하는 방법을 단계별로 가르쳐주세요.
- 다음과 같이 configmap을 생성합니다.
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
- configmap을 업데이트한 후 Reloader를 사용하여 Pod를 자동으로 다시 시작
wget https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml
kubectl apply -f reloader.yaml
- 다음과 같이 situnnel-cluster.yml을 생성합니다.
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
- 구현하다
kubectl apply -f seatunnel-cluster.yml
- configmap에서 구성 수정
kubectl edit cm hazelcast
修改集群地址
这里采用的是headless service访问模式
一般pod之间访问其格式为 <pod-name>.<service-name>.<namespace>.svc.cluster.local
아래와 같은 예
- Seatunnel-0.seatunnel.default.svc.cluster.local
- Seatunnel-1.seatunnel.default.svc.cluster.local
- Seatunnel-2.seatunnel.default.svc.cluster.local
친절한 알림: 탭을 사용하지 말고 공백을 사용하세요. 그렇지 않으면 오류가 보고됩니다.
kubectl edit cm hazelcast-client
kubectl edit cm seatunnelmap
여기에서 자신의 hdfs 주소로 변경하세요.
- 다음을 볼 수 있습니다
- 모든 노드가 업데이트되어 실행 중인 상태가 되면 컨테이너에 들어가 경로가 수정되었는지 확인할 수 있습니다.
kubectl exec -it seatunnel-0 /bin/bash
cat config/hazelcast.yaml
- 컨테이너 내의 로그 보기
tail -200f logs/seatunnel-engine-server.log
클러스터가 정상적으로 실행되고 있는 것으로 확인되었습니다.
- 작업 실행
새 연결을 열고 다른 포드 노드에 로그인하여 클러스터를 테스트하는 작업을 수행할 수 있습니다.
kubectl exec -it seatunnel-1 /bin/bash
bin/seatunnel.sh --config config/v2.streaming.conf.template
작업이 다른 포드에서도 실행되기 시작했음을 발견했습니다.
원본 링크: https://blog.csdn.net/weixin_41854429/article/details/132836402
Google Python Foundation 팀이 해고되었습니다. Google은 해고를 확인했으며 Flutter, Dart 및 Python 관련 팀은 GitHub 핫리스트로 돌진했습니다. 오픈 소스 프로그래밍 언어와 프레임워크가 어떻게 그렇게 귀여울 수 있습니까? Xshell 8 베타 테스트 개시: RDP 프로토콜을 지원하고 Windows 10/11에 원격으로 연결할 수 있습니다. 승객이 고속철 WiFi에 연결하면 중국 코더의 "35세 저주"가 고속으로 연결됩니다. 레일 WiFi MySQL의 첫 번째 장기 지원 버전 8.4 GA AI 검색 도구 Perplexica: 완전히 오픈 소스이며 무료이며 Perplexity의 오픈 소스 대안입니다. Huawei 경영진은 오픈 소스 Hongmeng의 가치를 평가합니다. 지속적인 탄압에도 불구하고 여전히 자체 운영 체제가 있습니다. 독일의 자동차 소프트웨어 회사 인 Elektrobit는 우분투 기반의 자동차 운영체제 솔루션을 오픈소스화했습니다.이 기사는 Beluga Open Source Technology 에서 출판되었습니다 !
{{o.이름}}
{{이름}}