Apache SeaTunnel k8s 클러스터 모드 Zeta 엔진 배포 가이드

파일

SeaTunnel은 Zeta 엔진(클러스터 모드)을 실행하는 방법을 제공합니다. 이를 통해 Kubernetes는 Zeta 엔진을 로컬에서 실행하여 보다 효율적인 애플리케이션 배포 및 관리를 달성할 수 있습니다. 이 기사에서는 Zeta 엔진(클러스터 모드 모드)을 실행하는 SeaTunnel k8에 대해 자세히 알아보고 Zeta 엔진을 더 잘 활용하는 방법을 알아봅니다.

  1. 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
  1. 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.
  1. 이미지 보기
docker images

아래와 같이 미러링됨

파일

  1. 여기에서는 데모를 위해 Minikube를 사용하여 이미지를 로드합니다.
minikube image load seatunnel:2.3.3

위 내용을 참조하세요. SeaTunnel k8s에서 Zeta 엔진 로컬 모드를 실행하는 기술을 습득하는 방법을 단계별로 가르쳐주세요.

  1. 다음과 같이 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
  1. configmap을 업데이트한 후 Reloader를 사용하여 Pod를 자동으로 다시 시작
wget https://raw.githubusercontent.com/stakater/Reloader/master/deployments/kubernetes/reloader.yaml

kubectl apply -f reloader.yaml

파일

  1. 다음과 같이 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
  1. 구현하다
 kubectl apply -f seatunnel-cluster.yml

파일

파일

  1. 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 주소로 변경하세요.

  1. 다음을 볼 수 있습니다

파일

  1. 모든 노드가 업데이트되어 실행 중인 상태가 되면 컨테이너에 들어가 경로가 수정되었는지 확인할 수 있습니다.
kubectl exec -it seatunnel-0 /bin/bash
cat config/hazelcast.yaml

파일

  1. 컨테이너 내의 로그 보기
tail -200f logs/seatunnel-engine-server.log

파일

클러스터가 정상적으로 실행되고 있는 것으로 확인되었습니다.

  1. 작업 실행

새 연결을 열고 다른 포드 노드에 로그인하여 클러스터를 테스트하는 작업을 수행할 수 있습니다.

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

이 기사는 Beluga Open Source Technology 에서 출판되었습니다 !

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는 우분투 기반의 자동차 운영체제 솔루션을 오픈소스화했습니다.
{{o.이름}}
{{이름}}

추천

출처my.oschina.net/SeaTunnel/blog/11066434