Tabla de contenido
Use un entorno virtual de Python personalizado
Método 1: crear un entorno virtual de Python en un nodo del clúster
Método 2: Cree un entorno virtual de Python en la máquina de desarrollo local
Usar dependencias de Python
Permíteme presentarte cómo usar las dependencias de Python a través de los siguientes escenarios:
- Use un entorno virtual de Python personalizado
- Usar paquetes de Python de terceros
- Usar paquete JAR
- usar archivo de datos
Use un entorno virtual de Python personalizado
Método 1: crear un entorno virtual de Python en un nodo del clúster
set -e
# Crear un entorno virtual para Python .
python3.6 -m venv venv
#Activar el entorno virtual de Python .
source venv/bin/activate
# Preparar el entorno virtual de Python.
pip install --upgrade pip
#Instalar las dependencias de PyFlink .
pip install "apache-flink==1.13.0"
#Salir del entorno virtual de Python .
deactivate
Después de ejecutar el comando, se generará un directorio llamado venv, que es el entorno virtual de Python 3.6. También puede modificar el script anterior para instalar otras versiones del entorno virtual de Python.
Para utilizar el entorno virtual de Python, puede optar por distribuir el entorno virtual de Python a todos los nodos del clúster, o puede especificar el uso del entorno virtual de Python al enviar un trabajo de PyFlink.
Los siguientes comandos muestran diferentes casos de uso de envío de trabajos de PyFlink :
- Ejecutar trabajo de PyFlink:
$ ./bin/flink run --python examples/python/table/batch/word_count.py
- Ejecute un trabajo de PyFlink con pyFiles y el módulo de entrada principal especificado en --pyModule:
./bin/flink run \
--pyModule batch.word_count \
--pyFiles examples/python/table/batch
- Envíe un trabajo de PyFlink en un JobManager que se ejecuta en un host específico <jobmanagerHost> (ajuste el comando según corresponda):
$ ./bin/flink run \
--jobmanager <jobmanagerHost>:8081 \
--python examples/python/table/batch/word_count.py
- Ejecute el trabajo de PyFlink en el modo Por trabajo en el grupo de hilos:
$ ./bin/flink run \
--target yarn-per-job
--python examples/python/table/batch/word_count.py
Método 2: Cree un entorno virtual de Python en la máquina de desarrollo local
set -e
#Descargue el script Python 3.7 miniconda.sh .
wget "https://repo.continuum.io/miniconda/Miniconda3-py37_4.9.2-Linux-x86_64.sh" -O "miniconda.sh"
# Agregar permiso de ejecución para el script Python 3.7 miniconda.sh .
chmod +x miniconda.sh
# Crear un entorno virtual para Python .
./miniconda.sh -b -p venv
# Activar el entorno virtual Conda Python .
source venv/bin/activate ""
# Instale las dependencias de PyFlink .
pip install "apache-flink==1.13.0"
# Salga del entorno virtual Conda Python .
conda deactivate
# Eliminar paquetes almacenados en caché.
rm -rf venv/pkgs
# Empaquetar el entorno virtual Conda Python preparado.
zip -r venv.zip venv
Después de ejecutar el comando, se generará un archivo llamado venv.zip, que es el entorno virtual de Python 3.7. También puede modificar la secuencia de comandos anterior para instalar una versión diferente del entorno virtual de Python o instalar el paquete de Python de terceros necesario en el entorno virtual.
Usar paquete JAR
Si se utilizan clases de Java en su trabajo de Flink Python, por ejemplo, cuando se utilizan funciones personalizadas de Connector o Java en el trabajo, debe especificar el paquete JAR donde se encuentran las funciones personalizadas de Connector o Java.
Trabajos de PyFlink que hacen referencia a UDF de Java o conectores externos. El archivo JAR especificado en --jarfile se cargará en el clúster.
$ ./bin/flink run \
--python examples/python/table/batch/word_count.py \
--jarfile <jarFile>
usar archivo de datos
Si necesita acceder a archivos de datos, como archivos de modelo, en su trabajo de Flink Python, puede acceder a ellos a través de Python Archives .
- Ejecute el trabajo de PyFlink, agregue archivos fuente y de recursos, los archivos especificados en --pyFiles se agregarán a PYTHONPATH, para que estén disponibles en el código de Python.
$ ./bin/flink run \
--python examples/python/table/batch/word_count.py \
--pyFiles file:///user.txt,hdfs:///$namenode_address/username.txt