全部产品
Search
文档中心

Realtime Compute for Apache Flink:Gunakan dependensi Python

更新时间:Jan 23, 2026

Anda dapat menggunakan lingkungan virtual Python kustom, paket Python pihak ketiga, paket JAR, dan file data dalam pekerjaan Python Flink. Topik ini menjelaskan cara menggunakan dependensi tersebut dalam pekerjaan Python Anda.

Informasi latar belakang

Topik ini menjelaskan cara menggunakan dependensi Python dalam skenario berikut:

Lingkungan Python pra-instal

Lingkungan yang sepenuhnya dikelola dilengkapi dengan Python yang telah dipasang sebelumnya. Versi yang tersedia adalah sebagai berikut:

  • Ververica Runtime (VVR) 8.0.10 dan versi sebelumnya: Python 3.7

  • VVR 8.0.11 dan versi setelahnya: Python 3.9

Catatan

Untuk informasi lebih lanjut mengenai paket perangkat lunak pihak ketiga yang telah dipasang sebelumnya di lingkungan Python, lihat Pengembangan pekerjaan Python.

Beberapa paket Python pihak ketiga memiliki persyaratan terhadap versi GNU C Library (glibc). Versi glibc yang telah dipasang sebelumnya di lingkungan Flink yang sepenuhnya dikelola adalah sebagai berikut:

X86

  • VVR 8.x dan versi sebelumnya: glibc 2.17

  • VVR 11.x dan versi setelahnya: glibc 2.31

ARM

  • VVR 11.2 dan versi sebelumnya: glibc 2.17

  • VVR 11.3 dan versi setelahnya: glibc 2.31

Catatan

Glibc mendukung kompatibilitas maju (forward compatibility). Oleh karena itu, versi glibc yang dibutuhkan oleh library Python pihak ketiga Anda tidak boleh lebih baru daripada versi glibc di lingkungan tersebut.

Gunakan lingkungan virtual Python kustom

Catatan

VVR 4.x hanya mendukung lingkungan virtual Python 3.7. VVR 6.x dan versi setelahnya tidak memiliki batasan ini. Anda dapat menggunakan lingkungan virtual Python versi yang lebih baru.

Jika lingkungan Python pra-instal tidak memenuhi kebutuhan Anda, Anda dapat menggunakan versi Python kustom dengan lingkungan virtual Python. Setiap lingkungan virtual Python memiliki runtime Python lengkap, dan Anda dapat menginstal berbagai paket dependensi Python di dalamnya. Bagian ini menjelaskan cara menyiapkan lingkungan virtual Python.

  1. Siapkan lingkungan virtual Python.

    1. Di mesin lokal Anda, siapkan skrip setup-pyflink-virtual-env.sh. Isinya sebagai berikut.

      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 execute 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.
      # update the PyFlink version if needed
      pip install "apache-flink==1.20.3"
      
      # Remove unnecessary JAR packages 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 execute 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.
      # update the PyFlink version if needed
      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 "apache-flink==1.20.3"
      
      # Remove unnecessary JAR packages 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
    2. Catatan

      Topik ini menggunakan contoh pekerjaan pada VVR 11.x dan Python 3.10. Untuk menggunakan versi VVR yang berbeda atau menginstal versi Python yang berbeda untuk lingkungan virtual, Anda dapat mengubah parameter berikut:

      • mamba create: Ubah versi Python ke versi yang Anda inginkan.

      • apache-flink: Ubah versi Flink ke versi yang sesuai dengan versi VVR pekerjaan Anda. Untuk informasi lebih lanjut tentang cara melihat versi Flink, lihat Manajemen dan operasi ruang kerja.

    3. Di mesin lokal Anda, siapkan skrip build.sh. Isinya sebagai berikut.

      #!/bin/bash
      set -e -x
      
      yum install -y zip wget
      
      cd /root/
      bash /build/setup-pyflink-virtual-env.sh
      mv venv.zip /build/
    4. Di command line, jalankan perintah berikut untuk menyelesaikan instalasi lingkungan virtual Python.

      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

      Setelah menjalankan perintah ini, file bernama venv.zip akan dihasilkan. Contoh ini membuat lingkungan virtual untuk Python 3.10.

      Anda juga dapat memodifikasi skrip di atas untuk menginstal paket Python pihak ketiga yang diperlukan dalam lingkungan virtual.

  2. Gunakan lingkungan virtual Python dalam pekerjaan Python.

    1. Masuk ke Konsol Realtime Compute for Apache Flink.

    2. Pada kolom Actions ruang kerja target, klik Console.

    3. Di panel navigasi kiri, klik File Management dan unggah file venv.zip.

    4. Pada halaman Operation Center > Job O&M, klik nama pekerjaan target.

    5. Pada tab Deployment Details, di bagian Basic Configuration, pilih file venv.zip untuk opsi Python Archives.

      Jika pekerjaan SQL menggunakan fungsi user-defined (UDF) Python dalam lingkungan virtual, tambahkan konfigurasi berikut di bidang Other Configuration pada bagian Parameter Settings.

      python.archives: oss://.../venv.zip
    6. Di bagian Parameter Settings, pada bidang Other Configuration, tambahkan konfigurasi yang menentukan path instalasi lingkungan virtual Python berdasarkan versi VVR pekerjaan Anda.

      • VVR 6.x dan versi setelahnya

        python.executable: venv.zip/venv/bin/python
        python.client.executable: venv.zip/venv/bin/python
      • Versi sebelum VVR 6.x

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

Gunakan paket Python pihak ketiga

Catatan

Zip Safe, PyPI, dan manylinux adalah situs web pihak ketiga. Anda mungkin mengalami kegagalan akses atau penundaan saat mengunjunginya.

Dua skenario berikut menjelaskan cara menggunakan paket Python pihak ketiga:

  • Gunakan paket Python pihak ketiga yang dapat langsung diimpor

    Jika paket Python pihak ketiga Anda Zip Safe, Anda dapat menggunakannya langsung dalam pekerjaan Python tanpa perlu instalasi. Ikuti langkah-langkah berikut:

    1. Unduh paket Python pihak ketiga yang dapat langsung diimpor.

      1. Buka halaman PyPI di browser Anda.

      2. Di kotak pencarian, masukkan nama paket Python pihak ketiga target, misalnya apache-flink 1.20.3.

      3. Pada hasil pencarian, klik nama hasil target.

      4. Di panel navigasi kiri, klik Download files.

      5. Klik nama paket yang berisi cp39-cp39m-manylinux1 untuk mengunduhnya.

    2. Masuk ke Konsol Realtime Compute for Apache Flink.

    3. Pada kolom Actions ruang kerja target, klik Console.

    4. Di panel navigasi kiri, Anda dapat mengklik File Management untuk mengunggah paket Python pihak ketiga.

    5. Pada halaman Operation Center > Job O&M, klik Deploy Job > Python Job. Untuk opsi Python Libraries, pilih paket Python pihak ketiga yang telah diunggah.

    6. Klik Save.

  • Gunakan paket Python pihak ketiga yang memerlukan kompilasi

    Jika paket Python pihak ketiga Anda berupa paket terkompresi dalam format tar.gz atau paket kode sumber yang diunduh dari lokasi lain, dan file setup.py ada di direktori root paket tersebut, biasanya paket tersebut perlu dikompilasi terlebih dahulu sebelum digunakan. Anda harus terlebih dahulu mengompilasi paket Python pihak ketiga tersebut di lingkungan yang kompatibel dengan Flink. Setelah itu, Anda dapat memanggil paket tersebut dalam pekerjaan Python Anda.

    Kami menyarankan Anda menggunakan Python 3.9 dalam kontainer image quay.io/pypa/manylinux_2_28_x86_64 untuk mengompilasi paket Python pihak ketiga. Paket yang dihasilkan oleh kontainer ini kompatibel dengan sebagian besar lingkungan Linux. Untuk informasi lebih lanjut mengenai kontainer image ini, lihat manylinux.

    Catatan

    Path instalasi untuk Python 3.9 adalah /opt/python/cp39-cp39/bin/python3.

    Contoh berikut menunjukkan cara mengompilasi dan menggunakan paket Python pihak ketiga opencv-python-headless.

    1. Kompilasi paket Python pihak ketiga.

      1. Di mesin lokal Anda, siapkan file requirements.txt. Isinya sebagai berikut.

        opencv-python-headless
        numpy<2
      2. Di mesin lokal Anda, siapkan skrip build.sh. Isinya sebagai berikut.

        #!/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. Di command line, jalankan perintah berikut.

        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

        Setelah perintah ini dijalankan, file bernama deps.zip akan dihasilkan. File ini merupakan paket Python pihak ketiga yang telah dikompilasi.

        Anda juga dapat memodifikasi requirements.txt untuk menginstal paket Python pihak ketiga lain yang diperlukan. Selain itu, Anda dapat menentukan beberapa dependensi Python dalam file requirements.txt.

    2. Gunakan paket Python pihak ketiga deps.zip dalam pekerjaan Python.

      1. Masuk ke Konsol Realtime Compute for Apache Flink.

      2. Pada kolom Actions ruang kerja target, klik Console.

      3. Di panel navigasi kiri, klik Files, dan unggah deps.zip.

      4. Pada halaman Operation Center > Job O&M, klik nama pekerjaan target. Pada tab Deployment Details, di bagian Basic Configuration, klik Edit. Lalu, untuk opsi Python Libraries, pilih deps.zip.

    1. Klik Save.

Gunakan paket JAR

Jika pekerjaan Python Flink Anda menggunakan kelas Java, seperti konektor atau Java UDF, Anda harus menentukan paket JAR untuk konektor atau Java UDF tersebut. Anda dapat melakukan langkah-langkah berikut:

  1. Masuk ke Konsol Realtime Compute for Apache Flink.

  2. Pada kolom Actions ruang kerja target, klik Console.

  3. Di panel navigasi kiri, klik Files, dan unggah paket JAR yang akan digunakan.

  4. Pada halaman Operation Center > Job O&M, klik nama pekerjaan target. Pada tab Deployment Details, di bagian Basic Configuration, klik Edit. Lalu, untuk opsi Additional Dependencies, pilih paket JAR yang akan digunakan.

  5. Di bagian Parameter Settings, pada bidang Other Configuration, tambahkan konfigurasi.

    Sebagai contoh, untuk bergantung pada beberapa paket JAR bernama jar1.jar dan jar2.jar, konfigurasinya adalah sebagai berikut.

    pipeline.classpaths: 'file:///flink/usrlib/jar1.jar;file:///flink/usrlib/jar2.jar'
  6. Klik Save.

Gunakan konektor bawaan, format data, dan Catalogs

Catatan

Hanya pekerjaan yang berjalan pada VVR 11.2 atau versi setelahnya yang mendukung konektor bawaan, format data, dan Catalogs.

Untuk menggunakan konektor bawaan, format data, dan Catalogs dalam pekerjaan Python Flink, Anda dapat menentukannya sebagai berikut:

  1. Di bagian Parameter Settings, pada bidang Other Configuration, tambahkan konfigurasi.

    Sebagai contoh, untuk bergantung pada beberapa konektor bawaan bernama kafka dan sls, konfigurasinya adalah sebagai berikut. Untuk nama spesifik konektor bawaan, lihat dokumentasi masing-masing konektor di Konektor yang didukung.

    pipeline.used-builtin-connectors: kafka;sls

    Sebagai contoh, untuk bergantung pada beberapa format data bawaan bernama avro dan parquet, konfigurasinya adalah sebagai berikut. Untuk nama spesifik format data bawaan, lihat dokumentasi di Format data.

    pipeline.used-builtin-formats: avro;parquet

    Sebagai contoh, untuk bergantung pada beberapa Catalogs bawaan bernama hive-2.3.6 dan paimon, konfigurasinya adalah sebagai berikut. Untuk nama spesifik Catalogs bawaan, lihat dokumentasi Catalog yang sesuai di Data Management.

    pipeline.used-builtin-catalogs: hive-2.3.6;paimon
  2. Klik Save.

Gunakan file data

Catatan

Flink tidak mendukung debugging pekerjaan Python dengan mengunggah file data.

Dua skenario berikut menjelaskan cara menggunakan file data:

  • Menggunakan opsi Python Archives

    Jika Anda memiliki banyak file data, Anda dapat mengemasnya ke dalam file ZIP dan menggunakannya dalam pekerjaan Python dengan mengikuti langkah-langkah berikut:

    1. Masuk ke Konsol Realtime Compute for Apache Flink.

    2. Pada kolom Actions ruang kerja target, klik Console.

    3. Di panel navigasi kiri, klik File Management dan unggah paket ZIP file data target.

    4. Pada halaman Operation Center > Job O&M, klik nama pekerjaan target. Pada tab Deployment Details, di bagian Basic Configuration, klik Edit. Lalu, untuk opsi Python Archives, pilih paket ZIP file data yang akan digunakan.

    5. Dalam UDF Python, Anda dapat mengakses file data sebagai berikut. Contoh ini mengasumsikan paket terkompresi yang berisi file data bernama mydata.zip.

      def map():
          with open("mydata.zip/mydata/data.txt") as f:
          ...
  • Menggunakan opsi Additional Dependencies

    Jika Anda memiliki sedikit file data, Anda dapat menggunakannya dalam pekerjaan Python dengan mengikuti langkah-langkah berikut:

    1. Masuk ke Konsol Realtime Compute for Apache Flink.

    2. Pada kolom Actions ruang kerja target, klik Console.

    3. Di panel navigasi kiri, klik Files, dan unggah file data target.

    4. Pada halaman Operation Center > Job O&M, klik nama pekerjaan target. Pada tab Deployment Details, di bagian Basic Configuration, klik Edit. Lalu, untuk opsi Additional Dependencies, pilih file data yang akan digunakan.

    5. Dalam UDF Python, Anda dapat mengakses file data sebagai berikut. Kode berikut menggunakan file data bernama data.txt sebagai contoh.

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

Referensi