Conector de Cloud Storage

El conector de Cloud Storage es una biblioteca Java de código abierto que te permite ejecutar trabajos de Apache Hadoop o Apache Spark directamente en los datos en Cloud Storage y ofrece una serie de beneficios sobre el sistema de archivos distribuidos de Hadoop (HDFS).

Beneficios del conector de Cloud Storage

  • Acceso directo a los datos: Almacena tus datos en Cloud Storage y accede a ellos directamente. No es necesario que primero la transfieras a HDFS.
  • Compatibilidad con HDFS: Puedes acceder fácilmente a tus datos en Cloud Storage con el prefijo gs:// en lugar de hdfs://.
  • Interoperabilidad: El almacenamiento de datos en Cloud Storage permite una interoperabilidad perfecta entre los servicios de Spark, Hadoop y Google.
  • Accesibilidad a los datos: Cuando cierras un clúster de Hadoop, a diferencia de HDFS, sigues teniendo acceso a tus datos en Cloud Storage.
  • Alta disponibilidad de los datos: Los datos almacenados en Cloud Storage están altamente disponibles y replicados de forma global sin perder rendimiento.
  • Sobrecarga de administración sin almacenamiento: A diferencia de HDFS, Cloud Storage no requiere mantenimiento de rutina, como revisar el sistema de archivos, actualizarlo o revertirlo a una versión anterior del sistema de archivos.
  • Inicio rápido: En HDFS, un trabajo MapReduce no puede iniciarse hasta que el NameNode se encuentre fuera del modo seguro, un proceso que puede demorar unos pocos segundos o varios minutos, según el tamaño y el estado de tus datos. Con Cloud Storage, puedes comenzar tu trabajo en cuanto se inicien los nodos de tareas, lo que genera importantes ahorros de costos a lo largo del tiempo.

Configuración del conector de Cloud Storage del clúster de Dataproc

El conector de Cloud Storage se instala de forma predeterminada en todos los nodos del clúster de Dataproc en el directorio /usr/local/share/google/dataproc/lib/.

En las siguientes secciones, se describen los pasos que puedes seguir para configurar el conector de forma correcta en tu clúster de Dataproc.

Permisos de las cuentas de servicio

Cuando ejecutas el conector dentro de las VM de Compute Engine, incluidos los clústeres de Dataproc, la propiedad google.cloud.auth.service.account.enable se establece en false de forma predeterminada, lo que significa que no necesitas configurar de forma manual una cuenta de servicio para el conector, sino que obtiene las credenciales de la cuenta de servicio del servidor de metadatos de VM.

Versiones de conectores no predeterminadas

Las versiones predeterminadas del conector de Cloud Storage usadas en las últimas imágenes instaladas en los clústeres de Dataproc se enumeran en las páginas de versiones de las imágenes de clústeres (consulta Versiones de Dataproc compatibles). Si tu aplicación depende de una versión de conector no predeterminada implementada en el clúster, debes realizar una de las siguientes acciones:

  1. Crea un clúster con la marca --metadata=GCS_CONNECTOR_VERSION=x.y.z, que actualiza el conector que usan las aplicaciones que se ejecutan en el clúster a la versión especificada del conector.
  2. incluir y reubicar las clases de conectores y las dependencias de conectores de la versión que estás usando en el archivo jar de tu aplicación. La reubicación es necesaria para evitar un conflicto entre la versión del conector implementada y la versión del conector predeterminada instalada en el clúster de Dataproc (consulta el ejemplo de reubicación de dependencias de Maven).

Clústeres que no son de Dataproc

.
  1. Descarga el conector.

    Si deseas descargar el conector de Cloud Storage para Hadoop, sigue estos pasos:

  2. Instala el conector.

    Consulta Instala el conector en GitHub para instalar, configurar y probar el conector de Cloud Storage.

Usa el conector

Hay varias formas de acceder a los datos almacenados en Cloud Storage:

Recursos

Versión de Java

El conector de Cloud Storage requiere Java 8.

Información sobre las dependencias de Apache Maven

<dependency>
    <groupId>com.google.cloud.bigdataoss</groupId>
    <artifactId>gcs-connector</artifactId>
    <version>insert "hadoopX-X.X.X" connector version number here</version>
    <scope>provided</scope>
</dependency>

o para la versión sombreada:

<dependency>
    <groupId>com.google.cloud.bigdataoss</groupId>
    <artifactId>gcs-connector</artifactId>
    <version>insert "hadoopX-X.X.X" connector version number here</version>
    <scope>provided</scope>
    <classifier>shaded</classifier>
</dependency>

Para obtener información más detallada, consulta las notas de la versión del conector de Cloud Storage y la referencia de Javadoc.

¿Qué sigue?