Guía de inicio rápido de uso de Java y Apache Maven

En esta página, se muestra cómo configurar tu proyecto de Google Cloud, crear un proyecto de Maven con el SDK de Apache Beam y ejecutar una canalización de ejemplo en el servicio de Dataflow.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyecto

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Descubre cómo confirmar que tienes habilitada la facturación en un proyecto.

  4. Habilita las API de Cloud Dataflow, Compute Engine, Stackdriver Logging, Cloud Storage, JSON de Cloud Storage, BigQuery, Cloud Pub/Sub, Cloud Datastore y Cloud Resource Manager.

    Habilita las API

  5. Crea una cuenta de servicio:

    1. En Cloud Console, ve a la página Crear cuenta de servicio.

      Ir a Crear cuenta de servicio
    2. Selecciona un proyecto
    3. Ingresa un nombre en el campo Nombre de cuenta de servicio. Cloud Console completa el campo ID de cuenta de servicio con este nombre.

      En el campo Descripción de la cuenta de servicio, ingresa una descripción. Por ejemplo, Service account for quickstart.

    4. Haga clic en Crear.
    5. Haz clic en el campo Seleccionar una función.

      En Acceso rápido, haz clic en Básica y, luego, en Propietario.

    6. Haga clic en Continuar.
    7. Haz clic en Listo para terminar de crear la cuenta de servicio.

      No cierres la ventana del navegador. La usarás en la próxima tarea.

  6. Para crear una clave de cuenta de servicio, haz lo siguiente:

    1. En Cloud Console, haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
    2. Haz clic en Claves.
    3. Haz clic en Agregar clave y, luego, en Crear clave nueva.
    4. Haga clic en Crear. Se descargará un archivo de claves JSON a tu computadora.
    5. Haga clic en Cerrar.
  7. Configura la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta del archivo JSON que contiene la clave de tu cuenta de servicio. Esta variable solo se aplica a la sesión actual de shell. Por lo tanto, si abres una sesión nueva, deberás volver a configurar la variable.

  8. Crea un bucket de Cloud Storage:
    1. En Cloud Console, ve a la página Navegador de Cloud Storage.

      Ir al navegador

    2. Haz clic en Crear bucket.
    3. En la página Crear un bucket, ingresa la información de tu bucket. Para ir al siguiente paso, haz clic en Continuar.
      • Para Asignar un nombre a tu depósito, ingresa un nombre de bucket único. No incluyas información sensible en el nombre del bucket porque su espacio de nombres es global y públicamente visible.
      • Para Elige dónde almacenar tus datos, sigue estos pasos:
        • Seleccione una opción de Tipo de ubicación.
        • Selecciona una opción de Ubicación.
      • Para Elegir una clase de almacenamiento predeterminado para tus datos, selecciona lo siguiente:Estándar.
      • En Elegir cómo controlar el acceso a los objetos, selecciona una opción Control de acceso.
      • En Configuración avanzada (opcional), especifica un método de encriptación, una política de retención o etiquetas de depósito.
    4. Haga clic en Crear.
  9. Descarga y, luego, instala la versión 8 del Java Development Kit (JDK) . Verifica que la variable de entorno JAVA_HOME esté configurada y orientada a tu instalación de JDK.
  10. Descarga y, luego, instala Apache Maven mediante los pasos de la guía de instalación de Maven para tu sistema operativo específico.

Obtén el código de WordCount

El SDK de Apache Beam es un modelo de programación de código abierto para canalizaciones de datos. Debes definir estas canalizaciones con un programa Apache Beam y puedes elegir un ejecutor, como Dataflow, para ejecutar tu canalización.

Crea un proyecto de Maven que contenga ejemplos de WordCount del SDK de Apache Beam con el complemento de arquetipo de Maven. Desde un directorio en tu computadora, ejecuta el comando mvn archetype:generate en la shell o terminal de la siguiente manera:

$ mvn archetype:generate \
      -DarchetypeGroupId=org.apache.beam \
      -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
      -DarchetypeVersion=2.25.0 \
      -DgroupId=org.example \
      -DartifactId=word-count-beam \
      -Dversion="0.1" \
      -Dpackage=org.apache.beam.examples \
      -DinteractiveMode=false

Después de ejecutar el comando, deberías ver un directorio nuevo llamado word-count-beam en tu directorio actual. word-count-beam contiene un archivo pom.xml simple y una serie de canalizaciones de ejemplo que cuentan palabras en archivos de texto.

$ cd word-count-beam/

$ ls
pom.xml	src

$ ls src/main/java/org/apache/beam/examples/
DebuggingWordCount.java	WindowedWordCount.java	common
MinimalWordCount.java	WordCount.java

Para obtener una introducción detallada de los conceptos de Apache Beam utilizados en estos ejemplos, consulta la explicación de ejemplos de WordCount. En el siguiente ejemplo, se ejecuta WordCount.java.

Ejecuta WordCount de manera local

Ejecuta WordCount de manera local mediante el comando siguiente desde tu directorio word-count-beam:

$ mvn compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--output=counts"
Los archivos de salida tienen el prefijo counts y se escriben en el directorio word-count-beam. Contienen palabras únicas del texto de entrada y la cantidad de veces que aparece cada palabra.

Ejecuta WordCount en el servicio de Dataflow

Crea y ejecuta WordCount en el servicio de Dataflow:

  • Para el argumento --project, especifica el ID del proyecto del proyecto de Google Cloud que creaste.
  • Para los argumentos --stagingLocation y --output, debes especificar el nombre del depósito de Cloud Storage que creaste como parte de la ruta.

  • En el argumento --region, especifica un extremo regional de Dataflow.
$ mvn -Pdataflow-runner compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--project=<PROJECT_ID> \
      --stagingLocation=gs://<STORAGE_BUCKET>/staging/ \
      --output=gs://<STORAGE_BUCKET>/output \
      --runner=DataflowRunner \
      --region=<REGION>"

Ve los resultados

  1. Abre la IU web de Dataflow.
    Ir a la IU web de Dataflow

    Verás el trabajo de conteo de palabras (wordcount) con el estado (status) En ejecución primero y, luego, Correcto (Succeeded):

    Trabajos de Cloud Dataflow
  2. Abre el navegador de Cloud Storage en Google Cloud Console.
    Ir al navegador de Cloud Storage

    En el bucket, deberías ver los archivos generados y los archivos de etapa de pruebas que creó el trabajo:

    Bucket de Cloud Storage

Realiza una limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta guía de inicio rápido.

  1. En Cloud Console, ve a la página Navegador de Cloud Storage.

    Ir al navegador

  2. Haz clic en la casilla de verificación del bucket que deseas borrar.
  3. Para borrar el bucket, haz clic en Borrar y, luego, sigue las instrucciones.

¿Qué sigue?