Componente Flink de Dataproc

Puedes instalar componentes adicionales cuando creas un clúster de Dataproc con la función de componentes opcionales. En esta página, se describe el componente Flink.

El componente Flink de Dataproc instala Apache Flink en un clúster de Dataproc.

Instala el componente

Instala el componente cuando crees un clúster de Dataproc. El componente Flink de Dataproc se puede instalar en clústeres creados con la imagen versión 1.5 de Dataproc o una versión posterior.

Consulta las versiones compatibles de Dataproc para la versión del componente incluida en cada versión de la imagen de Dataproc.

Comando de gcloud

Para crear un clúster de Dataproc que incluya el componente Flink, usa el comando gcloud dataproc clusters create cluster-name con la marca --optional-components.

gcloud dataproc clusters create cluster-name \
    --optional-components=FLINK \
    --region=region \
    --image-version=1.5 \
    --enable-component-gateway \
    ... other flags

Nota: Dado que una sesión de Flink YARN consume recursos YARN de manera significativa, de forma predeterminada Dataproc no inicia una sesión de Flink cuando se inicia el clúster de Dataproc. Para iniciar una sesión cuando inicias tu clúster de Flink, agrega la marca --metadata flink-start-yarn-session=true al comando gcloud dataproc clusters create.

API de REST

El componente Flink se puede especificar a través de la API de Dataproc mediante SoftwareConfig.Component como parte de una solicitud clusters.create.

Console

  1. Habilita la puerta de enlace del componente y el componente.
    • En Cloud Console, abre la página Create a cluster (Crear un clúster) de Dataproc. Se selecciona el panel Configurar clúster.
    • En la sección Componentes, sigue estos pasos:

Después de que se inicie un clúster de Dataproc con Flink, accede al nodo principal de Dataproc y, luego, ejecuta los trabajos de Flink.

Ejemplo:

Ejecuta un trabajo único de Flink. Después de aceptar el trabajo, Flink inicia un Administrador de trabajos y ranuras para el trabajo en YARN. El trabajo de Flink se ejecutará en el clúster de YARN hasta que se complete. El Administrador de trabajos se cierra una vez finalizado el trabajo. Los registros de trabajos están disponibles en los registros de YARN.

flink run -m yarn-cluster /usr/lib/flink/examples/batch/WordCount.jar

Ejemplo:

Inicia una sesión de Flink YARN de larga duración y, luego, ejecuta un trabajo.

Inicia la sesión. Nota: Como alternativa, puedes iniciar una sesión de Flink YARN cuando creas el clúster de Flink con la marca gcloud dataproc clusters create --metadata flink-start-yarn-session=true.

. /usr/bin/flink-yarn-daemon

Ejecute el trabajo:

HADOOP_CLASSPATH=`hadoop classpath` \
    flink run -m JOB_MANAGER_HOSTNAME:REST_API_PORT /usr/lib/flink/examples/batch/WordCount.jar

Ejecuta trabajos de Apache Beam

Puedes ejecutar trabajos de Apache Beam en Dataproc con FlinkRunner.

Después de establecer una conexión SSH al nodo principal de Dataproc, puedes ejecutar trabajos de Beam en Flink de dos maneras:

  1. Trabajos de Java Beam
  2. Trabajos de Portable Beam

Trabajos de Java Beam

Empaqueta tus trabajos de Beam en un archivo jar y, luego, ejecuta el trabajo.

mvn package -Pflink-runner
bin/flink run -c org.apache.beam.examples.WordCount /path/to/your.jar \
    --runner=FlinkRunner \
    --other-parameters

Trabajos de Portable Beam

Para ejecutar trabajos de Beam escritos en Python, Go o en otros lenguajes compatibles, haz lo siguiente:

  1. Utiliza el PortableRunner (consultaHoja de ruta del marco de trabajo de portabilidad ).

  2. El clúster de Dataproc debe crearse con el componente de Docker habilitado, que instala Docker en cada nodo del clúster. Para agregar el componente de Docker al clúster, crea el clúster mediante la instalación de los componentes de Flink y Docker.

    Ejemplo gcloud:

    gcloud dataproc clusters create cluster-name \
        --optional-components=FLINK,DOCKER \
        --region=region \
        --image-version=1.5 \
        --enable-component-gateway \
        ... other flags
    

  3. Instala las bibliotecas necesarias de Python o de otro tipo que necesite Beam, como apache_beam o apache_beam[gcp]. Puedes pasar la URL principal de Flink u omitirla y ejecutar un solo trabajo.

    Ejemplo de Python:

    import apache_beam as beam
    from apache_beam.options.pipeline_options import PipelineOptions
    options = PipelineOptions([
        "--runner=FlinkRunner",
        "--flink_version=1.9",
        "--flink_master=localhost:8081",
        "--environment_type=DOCKER"
    ])
    with beam.Pipeline(options=options) as p:
    

El componente de Dataproc Flink admite clústeres con Kerberos. Se necesita un ticket válido de Kerberos para enviar y conservar un trabajo de Flink o iniciar un clúster de Flink. De forma predeterminada, los boletos son válidos durante 7 días.

La interfaz web del administrador de trabajo de Flink está disponible mientras se ejecuta un clúster de Flink o un clúster de sesión de Flink. La IU del administrador de trabajos de Flink se puede abrir desde la aplicación de la instancia principal de la aplicación de Flink en YARN.

Para habilitar y usar el acceso a la IU, sigue estos pasos:

  1. Crea el clúster de Dataproc con la puerta de enlace de componentes habilitada.
  2. Después de la creación del clúster, haz clic en el vínculo ResourceManager de YARN de la puerta de enlace de componentes en la pestaña de interfaz web en la página Detalles del clúster en Google Cloud Console.
  3. En la página Resource Manager de YARN, identifica la entrada de la aplicación del clúster de Flink y haz clic en el vínculo Application principal.
  4. Se abrirá el panel de Flink.