Tüm Ürünler
Search
Belge Merkezi

Realtime Compute for Apache Flink:Python bağımlılıklarını kullanma

Son Güncelleme:Oct 04, 2026

Realtime Compute for Apache Flink için Python dağıtımlarında özel Python sanal ortamları, üçüncü taraf Python paketleri, JAR paketleri ve veri dosyalarını kullanabilirsiniz. Bu konuda, bu bağımlılıkların Python dağıtımlarında nasıl kullanılacağı açıklanmaktadır.

Genel Bakış

Aşağıdaki bölümlerde verilen talimatlara göre Python bağımlılıklarını kullanabilirsiniz:

Önceden yüklenmiş Python ortamı

Tam yönetilen Flink ortamı, önceden yüklenmiş bir Python ortamı ile birlikte gelir. Python sürümleri aşağıdaki gibidir:

  • VVR 8.0.10 ve önceki sürümler: Python 3.7

  • VVR 8.0.11 veya sonraki sürümler ancak VVR 11.7'den önceki sürümler: Python 3.9

  • VVR 11.7 ve sonraki sürümler: Python 3.9, Python 3.10 ve Python 3.11

Not

Python ortamındaki önceden yüklenmiş üçüncü taraf paketler için bkz. Python taslağı geliştirme.

Bazı üçüncü taraf Python paketlerinin glibc sürüm gereksinimleri vardır. Tam yönetilen Flink ortamındaki önceden yüklenmiş glibc sürümleri aşağıdaki gibidir:

X86

  • VVR 8.x ve önceki sürümler: glibc 2,17

  • VVR 11.x ve sonraki sürümler: glibc 2,31

ARM

  • VVR 11.2 ve önceki sürümler: glibc 2,17

  • VVR 11.3 ve sonraki sürümler: glibc 2,31

Not

Glibc ileriye dönük uyumluluğu destekler. Kullandığınız üçüncü taraf Python paketlerinin gerektirdiği glibc sürümü, ortamdaki glibc sürümünden daha yeni olmamalıdır.

Özel Python sanal ortamı kullanma

Not

Ververica Runtime (VVR) 4.X sürümünde yalnızca Python 3.7 sanal ortamlarını kullanabilirsiniz. VVR 6.X veya sonraki sürümlerde ise daha yeni Python sürümlerinin sanal ortamlarını kullanabilirsiniz.

Önceden yüklenmiş Python ortamı ihtiyaçlarınızı karşılamıyorsa, Python sanal ortamları aracılığıyla özel bir Python sürümü kullanabilirsiniz. Her Python sanal ortamı eksiksiz bir Python çalışma zamanı ortamı sağlar. Bir sanal ortama bir dizi Python bağımlılık paketi yükleyebilirsiniz. Aşağıdaki bölümde bir Python sanal ortamının nasıl hazırlanacağı açıklanmaktadır.

  1. Bir Python sanal ortamı hazırlayın.

    1. Yerel cihazınızda setup-pyflink-virtual-env.sh betiğini hazırlayın. Aşağıdaki kod, betiğin içeriğini göstermektedir.

      X86

      set -e
      # Download the miniforge.sh script.
      wget "https://github.com/conda-forge/miniforge/releases/download/25.11.0-1/Miniforge3-25.11.0-1-Linux-x86_64.sh" -O "miniforge.sh"
      
      # Add execution permissions to the miniforge.sh script.
      chmod +x miniforge.sh
      
      # Install miniforge.
      ./miniforge.sh -b
      source /root/miniforge3/bin/activate
      
      # Create a Python virtual environment.
      mamba create -n venv python=3.10 -y
      eval "$(mamba shell hook --shell bash)"
      
      # Activate the Python virtual environment.
      mamba activate venv
      
      # Install the PyFlink dependency.
      pip install "ververica-flink==11.7.0"
      # For VVR 11.5 and earlier, no dedicated PyPI package is available. Install the open-source PyFlink instead:
      # pip install "apache-flink==1.20.3" "setuptools<81"
      
      # Remove unnecessary JAR files to reduce the package size.
      find /root/miniforge3/envs/venv/lib/python3.10/site-packages/pyflink/ -name *.jar | xargs rm
      
      # Deactivate the Conda Python virtual environment.
      mamba deactivate
      
      # Package the prepared Conda Python virtual environment.
      cd /root/miniforge3/envs/ && zip -r /root/venv.zip venv 

      ARM

      set -e
      # Download the miniforge.sh script.
      wget "https://github.com/conda-forge/miniforge/releases/download/25.11.0-1/Miniforge3-25.11.0-1-Linux-aarch64.sh" -O "miniforge.sh"
      
      # Add execution permissions to the miniforge.sh script.
      chmod +x miniforge.sh
      
      # Install miniforge.
      ./miniforge.sh -b
      source /root/miniforge3/bin/activate
      
      # Create a Python virtual environment.
      mamba create -n venv python=3.10 -y
      eval "$(mamba shell hook --shell bash)"
      
      # Activate the Python virtual environment.
      mamba activate venv
      
      # Install the PyFlink dependency.
      yum install -y java-11-openjdk-devel
      export JAVA_HOME=/usr/lib/jvm/java-11
      wget "https://raw.githubusercontent.com/apache/flink/release-1.20/flink-python/dev/dev-requirements.txt" -O dev-requirements.txt
      pip install -r dev-requirements.txt
      pip install "ververica-flink==11.7.0"
      # For VVR 11.5 and earlier, no dedicated PyPI package is available. Install the open-source PyFlink instead:
      # pip install "apache-flink==1.20.3" "setuptools<81"
      
      # Remove unnecessary JAR files to reduce the package size.
      find /root/miniforge3/envs/venv/lib/python3.10/site-packages/pyflink/ -name *.jar | xargs rm
      
      # Deactivate the Conda Python virtual environment.
      mamba deactivate
      
      # Package the prepared Conda Python virtual environment.
      cd /root/miniforge3/envs && zip -r /root/venv.zip venv
      Not

      Bu konuda dağıtım VVR 11.7 kullanır ve Python 3.10 sanal ortamında çalıştırılır. Farklı bir VVR sürümü kullanmak veya başka bir Python sürümünün sanal ortamını yüklemek istiyorsanız aşağıdaki parametreleri değiştirmeniz gerekir:

      • mamba create: İstediğiniz Python sürümüne göre değiştirin.

      • pip install:

        • VVR 11.6 ve sonraki sürümler: ververica-flink paketini yükleyin ve sürümü dağıtımınızın VVR sürümüyle eşleşecek şekilde değiştirin.

        • VVR 11.5 ve önceki sürümler: apache-flink paketini yükleyin ve sürümü dağıtımınızın VVR sürümüne karşılık gelen Flink sürümüyle değiştirin. Flink sürümünü görüntüleme hakkında daha fazla bilgi için bkz. Depolama yönetimi.

    2. Yerel cihazınızda build.sh betiğini hazırlayın. Aşağıdaki kod, betiğin içeriğini göstermektedir.

      #!/bin/bash
      set -e -x
      
      yum install -y zip wget
      
      cd /root/
      bash /build/setup-pyflink-virtual-env.sh
      mv venv.zip /build/
    3. CLI'da Python sanal ortamını yüklemek için aşağıdaki komutu çalıştırın:

      X86

      docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux_2_28_x86_64 bash ./build.sh

      ARM

      docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux_2_28_aarch64 bash ./build.sh

      Komutu çalıştırdıktan sonra venv.zip adlı bir dosya oluşturulur. Bu örnekte Python 3.10 sanal ortamı kullanılmaktadır.

      Gerekli üçüncü taraf Python paketini sanal ortama yüklemek için yukarıdaki betiği de değiştirebilirsiniz.

  2. Python dağıtımlarında Python sanal ortamını kullanın.

    1. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

    2. Fully Managed Flink sekmesinde yönetmek istediğiniz çalışma alanını bulun ve Actions sütunundaki Console seçeneğine tıklayın.

    3. Sol gezinme bölmesinde Artifacts seçeneğine tıklayın. Artifacts sayfasında Upload Artifact seçeneğine tıklayın. Açılan iletişim kutusunda venv.zip paketini seçin.

    4. O&M > Deployments sayfasında istediğiniz işin adına tıklayın.

    5. Configuration sekmesinde Basic bölümünün sağ üst köşesindeki Edit seçeneğine tıklayın ve Python Archives açılır listesinden venv.zip paketini seçin.

      Dağıtım, Python kullanıcı tanımlı işlevlerini (UDF'ler) kullanması gereken bir SQL dağıtımıysa Parameters bölümünün sağ üst köşesindeki Edit seçeneğine tıklayın ve aşağıdaki yapılandırmayı Other Configuration alanına ekleyin:

      python.archives: oss://.../venv.zip
    6. Parameters bölümünde, dağıtımınızın VVR sürümüne göre belirtilen Python sanal ortamının yükleme yoluna ilişkin yapılandırma bilgilerini Other Configuration alanına ekleyin.

      • VVR 6.X veya sonraki sürümler

        python.executable: venv.zip/venv/bin/python
        python.client.executable: venv.zip/venv/bin/python
      • VVR 6.X'ten önceki bir altyapı sürümü

        python.executable: venv.zip/venv/bin/python

Üçüncü taraf Python paketi kullanma

Not

Aşağıdaki açıklamada yer alan Zip Safe, PyPI ve manylinux bağlantıları üçüncü taraf web sitelerinde sunulmaktadır. Bu web sitelerini ziyaret ettiğinizde sitelere erişilemeyebilir veya erişim gecikebilir.

requirements.txt kullanarak bağımlılıkları yükleme

VVR 11.9.preview.1 sürümünden itibaren Python işleri requirements.txt dosyasında üçüncü taraf Python paketlerini bildirebilir. İş başladığında sistem, dosyada bildirilen bağımlılıkları yüklemek için pip'i çalıştırır ve yüklenen paketleri Python worker'ın PYTHONPATH değişkenine ekler. Aşağıdaki adımları uygulayın:

  1. requirements.txt dosyasını hazırlayın.

    Bilgisayarınızda requirements.txt dosyasını oluşturun ve üçüncü taraf bağımlılıklarını pip requirements biçiminde bildirin.

    package-a==1.2.3
    package-b==4.5.6

    requirements.txt dosyasında yalnızca iş tarafından kullanılan üçüncü taraf paketleri bildirin. VVR'de önceden yüklenmiş olan paketleri bildirmenize gerek yoktur ve sürümlerin önceden yüklenmiş paketlerle uyumlu olması gerekir. Önceden yüklenmiş paketler ve sürümleri için bkz. Önceden yüklenmiş paketler.

    Dosyayı hazırladıktan sonra:

    1. Realtime Compute konsolunda oturum açın.

    2. Sol gezinme bölmesinde Artifacts seçeneğine tıklayın ve requirements.txt dosyasını yükleyin.

    3. O&M > Deployments sayfasında hedef işin adına tıklayın.

    4. Configuration sekmesinde Basic bölümünde Edit seçeneğine tıklayın.

    5. Additional Dependencies alanında yüklediğiniz requirements.txt dosyasını seçin.

    Yüklenen ek bağımlılık dosyası /flink/usrlib dizininde depolanır. Örneğin, requirements.txt dosyasının çalışma zamanı yolu /flink/usrlib/requirements.txt şeklindedir.

  2. Flink parametrelerini yapılandırın.

    1. Realtime Compute konsolunda oturum açın.

    2. Sol gezinme bölmesinde O&M > Deployments seçeneğine tıklayın.

    3. Yapılandırmak istediğiniz Python işinin adına tıklayın.

    4. Configuration sekmesinde Parameters bölümünü bulun ve bölümün sağ tarafındaki Edit seçeneğine tıklayın.

    5. Other Configuration alanına aşağıdaki satırı ekleyin:

      python.requirements: /flink/usrlib/requirements.txt
    6. (İsteğe bağlı) pip depo URL'sini belirtin. İşin ağ üzerinden bu URL'ye erişebildiğinden emin olun. Daha fazla bilgi için bkz. Ağ bağlantısı:

      python.pip.index-url: <your pip index URL>
    7. Save seçeneğine tıklayın.

Manuel yükleme

Aşağıdaki iki senaryoda üçüncü taraf bir Python paketinin nasıl kullanılacağı gösterilmektedir:

  • Doğrudan içe aktarılabilen üçüncü taraf Python paketi kullanma

    Üçüncü taraf Python paketiniz bir Zip Safe paketiyse aşağıdaki adımları uygulayarak paketi kurulum yapmadan doğrudan Python dağıtımlarında kullanabilirsiniz:

    1. Doğrudan içe aktarılabilen bir üçüncü taraf Python paketi indirin.

      1. Web tarayıcınızda PyPI adresini ziyaret edin.

      2. Arama kutusuna apache-flink 1.20.3 gibi bir üçüncü taraf Python paketi adı girin.

      3. Arama sonuçlarında kullanmak istediğiniz paketin adına tıklayın.

      4. Açılan sayfanın sol gezinme bölmesinde Download files seçeneğine tıklayın.

      5. Adında cp39-cp39-manylinux1 ifadesi geçen paketin adına tıklayarak paketi indirin.

    2. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

    3. Streaming Compute Flink sekmesinde çalışma alanınızı bulun ve Actions sütunundaki Console seçeneğine tıklayın.

    4. Sol gezinme bölmesinde Artifacts seçeneğine tıklayın. Artifacts sayfasında Upload Artifact seçeneğine tıklayın. Açılan iletişim kutusunda gerekli üçüncü taraf Python paketini seçin.

    5. Sol gezinme bölmesinde O&M > Deployments seçeneğine tıklayın. Deployments sayfasında Create Deployment > Python Deployment seçeneğine tıklayın. İletişim kutusunda Python Libraries alanında yüklediğiniz üçüncü taraf Python paketini seçin.

    6. Save seçeneğine tıklayın.

  • Derleme gerektiren üçüncü taraf Python paketi kullanma

    Bir üçüncü taraf Python paketi aşağıdaki koşulları karşılıyorsa kullanılmadan önce derlenmelidir: Üçüncü taraf Python paketi tar.gz biçiminde sıkıştırılmış bir paket veya başka bir konumdan indirdiğiniz bir kaynak pakettir ve sıkıştırılmış paketin kök dizini altında setup.py dosyası bulunur. Üçüncü taraf Python paketini bir Python dağıtımında çağırmadan önce Flink ile uyumlu bir ortamda derlemeniz gerekir.

    Üçüncü taraf Python paketlerini derlemek için quay.io/pypa/manylinux_2_28_x86_64 görüntüsündeki Python 3.9 sürümünü kullanmanızı öneririz. Görüntü tarafından oluşturulan paketler çoğu Linux işletim sistemiyle uyumludur. Görüntü hakkında daha fazla bilgi için bkz. manylinux.

    Not

    /opt/python/cp39-cp39/bin/python3 dizininde Python 3.9 yüklüdür.

    Aşağıdaki örnekte opencv-python-headless üçüncü taraf Python paketinin nasıl derleneceği ve kullanılacağı gösterilmektedir.

    1. Bir üçüncü taraf Python paketi derleyin.

      1. Yerel cihazınızda requirements.txt dosyasını hazırlayın. Aşağıdaki kod, dosyanın içeriğini göstermektedir:

        opencv-python-headless
        numpy<2
      2. Yerel cihazınızda build.sh betiğini hazırlayın. Aşağıdaki kod, betiğin içeriğini göstermektedir:

        #!/bin/bash
        set -e -x
        
        yum install -y zip
        
        #PYBIN=/opt/python/cp37-cp37m/bin
        #PYBIN=/opt/python/cp38-cp38/bin
        PYBIN=/opt/python/cp39-cp39/bin
        #PYBIN=/opt/python/cp310-cp310/bin
        #PYBIN=/opt/python/cp311-cp311/bin
        
        "${PYBIN}/pip" install --target __pypackages__ -r requirements.txt
        cd __pypackages__ && zip -r deps.zip . && mv deps.zip ../ && cd ..
        rm -rf __pypackages__
      3. CLI'da aşağıdaki komutu çalıştırın:

        X86

        docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux_2_28_x86_64 bash ./build.sh

        ARM

        docker run -it --rm -v $PWD:/build -w /build quay.io/pypa/manylinux_2_28_aarch64 bash ./build.sh

        Komutu çalıştırdıktan sonra deps.zip adlı bir dosya oluşturulur. Bu dosya, derlenen üçüncü taraf Python paketidir.

        Diğer gerekli üçüncü taraf Python paketlerini yüklemek için requirements.txt dosyasının içeriğini de değiştirebilirsiniz. Ayrıca requirements.txt dosyasında birden çok Python bağımlılığı belirtilebilir.

    2. Python dağıtımlarında deps.zip üçüncü taraf Python paketini kullanın.

      1. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

      2. Çalışma alanınızı bulun ve Actions sütunundaki Console seçeneğine tıklayın.

      3. Sol gezinme bölmesinde Artifacts seçeneğine tıklayın. Artifacts sayfasında Upload Artifact seçeneğine tıklayın. İletişim kutusunda deps.zip dosyasını seçin.

      4. O&M > Deployments sayfasında dağıtımınıza tıklayın. Configuration sekmesinde Basic bölümünün sağ üst köşesindeki Edit seçeneğine tıklayın ve Python Libraries açılır listesinden deps.zip paketini seçin.

    1. Save seçeneğine tıklayın.

JAR paketi kullanma

Python dağıtımınızda bir bağlayıcı veya Java UDF gibi Java sınıfları kullanıyorsanız bağlayıcının veya Java UDF'nin JAR paketini belirtmek için aşağıdaki işlemleri gerçekleştirebilirsiniz.

  1. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

  2. Fully Managed Flink sekmesinde yönetmek istediğiniz çalışma alanını bulun ve Actions sütunundaki Console seçeneğine tıklayın.

  3. Sol gezinme bölmesinde Artifacts seçeneğine tıklayın. Artifacts sayfasında Upload Artifact seçeneğine tıklayın. İletişim kutusunda kullanmak istediğiniz JAR paketini seçin.

  4. Deployments sayfasında istediğiniz dağıtımın adına tıklayın. Configuration sekmesinde Basic bölümünün sağ üst köşesindeki Edit seçeneğine tıklayın ve Additional Dependencies açılır listesinden gerekli JAR paketini seçin.

  5. Configuration sekmesinde Parameters bölümünün sağ üst köşesindeki Edit seçeneğine tıklayın ve aşağıdaki yapılandırmayı Other Configuration alanına ekleyin.

    Örneğin, taslak jar1.jar ve jar2.jar adlı iki JAR paketine bağımlıysa aşağıdaki yapılandırma bilgilerini ekleyin:

    pipeline.classpaths: 'file:///flink/usrlib/jar1.jar;file:///flink/usrlib/jar2.jar'
  6. Save seçeneğine tıklayın.

Yerleşik bağlayıcıları, veri biçimlerini ve katalogları kullanma

Not

Yerleşik bağlayıcılar, veri biçimleri ve kataloglar yalnızca VVR 11.2 ve sonraki sürümlerde desteklenir.

Bir Flink Python işinde yerleşik bağlayıcıları, veri biçimlerini ve katalogları kullanmak için bunları aşağıdaki şekilde belirtin.

  1. Parameters bölümünde yapılandırmayı Other Configuration alanına ekleyin.

    kafka ve sls adlı birden çok yerleşik bağlayıcıya bağımlı olmak için aşağıdaki yapılandırmayı ekleyin. Yerleşik bağlayıcıların adları için bkz. Desteklenen bağlayıcılar içindeki her bağlayıcının belgeleri.

    pipeline.used-builtin-connectors: kafka;sls

    avro ve parquet adlı birden çok yerleşik veri biçimine bağımlı olmak için aşağıdaki yapılandırmayı ekleyin. Yerleşik veri biçimlerinin adları için desteklenen Veri biçimleri belgelerine bakın.

    pipeline.used-builtin-formats: avro;parquet

    hive-2.3.6 ve paimon adlı birden çok yerleşik kataloga bağımlı olmak için aşağıdaki yapılandırmayı ekleyin. Yerleşik katalogların adları için bkz. Kataloglar içindeki her kataloğun belgeleri.

    pipeline.used-builtin-catalogs: hive-2.3.6;paimon
  2. Save seçeneğine tıklayın.

Veri dosyalarını kullanma

Not

Tam yönetilen Flink, veri dosyaları yükleyerek Python dağıtımlarında hata ayıklamanıza izin vermez.

Aşağıdaki senaryolarda veri dosyalarının nasıl kullanılacağı gösterilmektedir:

  • Python Archives açılır listesinden bir paket seçme

    Çok sayıda veri dosyanız varsa bu dosyaları bir ZIP dosyasında paketleyebilir ve Python dağıtımlarında kullanmak için aşağıdaki işlemleri gerçekleştirebilirsiniz:

    1. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

    2. Çalışma alanınızı bulun ve Actions sütunundaki Console seçeneğine tıklayın.

    3. Sol gezinme bölmesinde Artifacts seçeneğine tıklayın. Artifact sayfasında Upload Artifact seçeneğine tıklayın. Açılan iletişim kutusunda istediğiniz veri dosyasının ZIP paketini seçin.

    4. O&M > Deployments sayfasında dağıtımınızın adına tıklayın. Configuration sekmesinde Basic bölümünün sağ üst köşesindeki Edit seçeneğine tıklayın ve Python Archives açılır listesinden gerekli ZIP paketini seçin.

    5. Python UDF'lerinde bir veri dosyasına erişmek için aşağıdaki komutu çalıştırın. Bu örnekte veri dosyalarını içeren paketin adı mydata.zip şeklindedir.

      def map():
          with open("mydata.zip/mydata/data.txt") as f:
          ...
  • Additional Dependencies açılır listesinden bir veri dosyası seçme

    Az sayıda veri dosyanız varsa bu dosyalara Python dağıtımlarında erişmek için aşağıdaki işlemleri gerçekleştirebilirsiniz:

    1. Realtime Compute for Apache Flink konsolu üzerinde oturum açın.

    2. Çalışma alanınızı bulun ve Actions sütunundaki Console seçeneğine tıklayın.

    3. Sol gezinme bölmesinde Artifacts seçeneğine tıklayın. Artifact sayfasında Upload Artifact seçeneğine tıklayın. Açılan iletişim kutusunda istediğiniz veri dosyasını seçin.

    4. O&M > Deployments sayfasında istediğiniz dağıtımın adına tıklayın. Configuration sekmesinde Basic bölümünün sağ üst köşesindeki Edit seçeneğine tıklayın ve Additional Dependencies açılır listesinden gerekli veri dosyasını seçin.

    5. Python UDF'lerinde bir veri dosyasına erişmek için aşağıdaki komutu çalıştırın. Bu örnekte veri dosyasının adı data.txt şeklindedir.

      def map():
          with open("/flink/usrlib/data.txt") as f:
          ...

Referanslar

  • Bir Python API taslağının nasıl geliştirileceği hakkında daha fazla bilgi için bkz. PyFlink işleri geliştirme.

  • Realtime Compute for Apache Flink için bir Python dağıtımının nasıl geliştirileceği hakkında daha fazla bilgi için bkz. PyFlink işi.

  • Tam yönetilen Flink, SQL taslaklarını ve DataStream taslaklarını destekler. SQL taslaklarının ve DataStream taslaklarının nasıl geliştirileceği hakkında daha fazla bilgi için bkz. İş geliştirme genel bakışı ve JAR işi geliştirme.