Cómo migrar trabajos locales de Hadoop a Cloud Dataproc

En esta guía, se describe cómo trasladar tus trabajos de Apache Hadoop a Google Cloud Platform (GCP) mediante Cloud Dataproc.

Esta es la tercera de tres guías en las que se describe cómo migrar desde Hadoop local:

Cómo ejecutar trabajos de Hadoop en GCP

Puedes utilizar Cloud Dataproc para ejecutar la mayoría de tus trabajos de Hadoop en GCP. La siguiente lista es un resumen del procedimiento básico:

  1. Actualiza tu trabajo para que apunte a tus datos persistentes almacenados en Cloud Storage.

  2. Crea un clúster de Cloud Dataproc en el cual ejecutarás el trabajo. Este tipo de clúster temporario y de un solo uso se llama efímero.

  3. Envía tu trabajo al clúster efímero.

  4. Tienes la opción de supervisar los registros de tu trabajo mediante Stackdriver Logging o Cloud Storage. Los registros se capturan en Cloud Storage de forma predeterminada, mediante un depósito de staging que especificas cuando creas el clúster.

  5. Controla el resultado de tu trabajo en Cloud Storage.

  6. Cuando se complete tu trabajo, borra el clúster.

Trabajos compatibles

Cloud Dataproc ejecuta Hadoop, por lo que muchos tipos de trabajos son compatibles de forma automática. Cuando creas un clúster con Cloud Dataproc, las siguientes tecnologías se configuran de forma predeterminada:

  • Hadoop
  • Spark
  • Hive
  • Pig

Cloud Dataproc proporciona diferentes versiones de imágenes de máquina con distintas versiones de software de código abierto preinstalado. Puedes ejecutar muchos trabajos solo con el software preinstalado en una imagen. Para algunos trabajos, podrías tener que instalar otros paquetes. Cloud Dataproc proporciona un mecanismo denominado instrucciones para inicializar acciones, que te permite personalizar el software que se está ejecutando en los nodos de tu clúster. Puedes utilizar acciones de inicialización a fin de crear secuencias de comandos que se ejecutan en cada nodo cuando se crea.

Cómo actualizar ubicaciones de datos (URI)

El conector de Cloud Storage, que viene preinstalado en los nodos del clúster de Cloud Dataproc, permite que tus trabajos utilicen Cloud Storage como un sistema de archivos compatible con Hadoop (HCFS). Almacena tus datos en Cloud Storage para que puedas aprovechar el conector. En ese caso, el único cambio necesario en tus trabajos es actualizar los URI; para ello, reemplaza hdfs:// con gs://.

Si reorganizas tus datos como parte de la migración, registra todas las rutas de origen y destino para que puedas actualizar fácilmente tus trabajos a fin de que funcionen con la nueva organización de datos.

Si bien es posible almacenar tus datos en HDFS en clústeres persistentes en la nube, no es recomendable. Puedes obtener más información acerca de cómo trasladar los datos en la guía sobre migración de datos.

Cómo configurar clústeres para ejecutar tus trabajos

En el enfoque recomendado para ejecutar tus trabajos en GCP, crea clústeres efímeros cuando los necesites y bórralos cuando termines los trabajos. Este enfoque te da mucha flexibilidad sobre cómo configurar los clústeres. Puedes utilizar configuraciones distintas para cada trabajo o crear varias configuraciones de clústeres estándar que sirvan para grupos de trabajos.

Puedes encontrar los pasos básicos para crear clústeres en la documentación de Cloud Dataproc. En el resto de esta sección, se describen algunas consideraciones importantes sobre la configuración del clúster a fin de ayudarte a decidir cómo proceder.

Cómo determinar el tamaño del clúster

Lo primero que necesitas hacer a fin de definir un nuevo clúster es decidir qué hardware virtual usarás para él. Puede resultar difícil calcular la configuración perfecta para el clúster, ya que cada trabajo tiene sus idiosincrasias y necesidades particulares. Prueba diferentes configuraciones a fin de encontrar los ajustes correctos para tu trabajo.

Cuando configuras un clúster, debes determinar, como mínimo, los siguientes parámetros:

  • Cuántos nodos se usarán
  • El tipo de máquina virtual que usarás para el nodo principal
  • El tipo de máquina virtual que usarás para los nodos trabajadores

Los tipos de nodos se definen según el número de CPU virtuales y la cantidad de memoria que tienen disponible. Las definiciones corresponden a los tipos de máquinas de Compute Engine. Por lo general, puedes encontrar un tipo de nodo que se corresponda con la configuración de los nodos locales desde los que haces la migración. Puedes utilizar esa equivalencia como punto de partida y configurar un clúster que sea similar a tu clúster local. A partir de eso, el mejor enfoque es ajustar la configuración y supervisar el efecto que tiene en la ejecución del trabajo. A medida que comienzas a optimizar la configuración de tus trabajos, empezarás a entender mejor cómo abordar los trabajos adicionales en tu sistema.

Recuerda que puedes escalar tu clúster según lo necesitas; por ende, no debes contar con la especificación perfecta definida desde el comienzo.

Cómo elegir opciones de disco principal

Puedes especificar el tamaño del disco principal que utilizan los nodos trabajadores. Las opciones correctas para un clúster dependen de los tipos de trabajos que vas a ejecutar en él. Utiliza el valor predeterminado y evalúa los resultados, a menos que sepas que tus trabajos tienen demandas poco comunes sobre el uso del disco principal.

Si tu trabajo requiere mucho disco y se ejecuta lentamente en nodos individuales, puedes agregar más espacio al disco principal. Para trabajos que requieran mucho disco, especialmente los que tengan numerosas operaciones individuales de lectura y escritura, es posible que puedas mejorar la operación mediante la incorporación de SSD locales. Agrega suficientes SSD a fin de contener todo el espacio que necesitas para la ejecución local. Tus directorios de ejecución local se distribuyen en todos los SSD que agregues.

Cómo utilizar nodos trabajadores interrumpibles

Puedes obtener poder de procesamiento de bajo costo para tus trabajos si agregas nodos trabajadores interrumpibles a tu clúster. Estos nodos utilizan máquinas virtuales interrumpibles.

Antes de pensar en utilizar los nodos interrumpibles, considera que son poco confiables. Cloud Dataproc intenta manejar la interrupción sin problemas, pero los trabajos podrían fallar si pierden demasiados nodos. Utiliza nodos interrumpibles únicamente para trabajos tolerantes a errores o con prioridad lo suficientemente baja como para que los errores ocasionales en el trabajo no perturben tu negocio.

Si decides utilizar nodos trabajadores interrumpibles, ten en cuenta la proporción entre nodos interrumpibles y normales. No existe una fórmula universal para obtener los mejores resultados, pero, en general, mientras más nodos interrumpibles utilices en relación con los nodos estándar, mayores son las posibilidades de que el trabajo no cuente con nodos suficientes para completar la tarea. A fin de determinar la mejor proporción entre nodos interrumpibles y regulares para un trabajo, experimenta con proporciones diferentes y analiza los resultados.

Ten en cuenta que los SSD no están disponibles en nodos trabajadores interrumpibles. Si utilizas SSD en tus nodos dedicados, cualquier nodo trabajador interrumpible que utilices coincidirá con los demás aspectos de los nodos dedicados, pero no tendrá SSD disponibles.

Cómo ejecutar trabajos

Cloud Dataproc proporciona múltiples interfaces que puedes utilizar para iniciar tus trabajos; todas estas se describen en la documentación del producto. En esta sección, se describen opciones y operaciones para tener en cuenta cuando ejecutes tus trabajos de Hadoop en GCP.

Cómo obtener el resultado del trabajo

Por lo general, los trabajos que ejecutas en Cloud Dataproc tienen diferentes tipos de resultados. Tu trabajo podría escribir diferentes tipos de resultados directamente; por ejemplo, en archivos en un depósito de Cloud Storage o en otro producto en la nube, como BigQuery. Cloud Dataproc también recopila registros y resultados de la consola, y los coloca en el depósito de staging de Cloud Storage relacionado con el clúster en el que ejecutas el trabajo.

Cómo utilizar trabajos reiniciables

Cuando envías un trabajo, puedes configurarlo para que se reinicie automáticamente si se encuentra con un problema. Esta opción es útil para trabajos que dependen de recursos o circunstancias altamente variables. Por ejemplo, los trabajos que transmiten datos en canales potencialmente poco confiables (como la Internet pública) son especialmente propensos a errores aleatorios debido a errores de tiempo de espera y problemas similares de la red. Ejecuta trabajos como reiniciables si puedes imaginar situaciones en las que el trabajo podría tener un error, pero que se ejecutaría correctamente poco tiempo después.

Cómo escalar tu clúster

Cloud Dataproc facilita la tarea de agregar o quitar nodos de tu clúster en cualquier momento, incluso cuando se está ejecutando el trabajo. La documentación de Cloud Dataproc incluye instrucciones detalladas sobre cómo escalar tu clúster. El escalamiento incluye la opción del retiro de servicio ordenado de los nodos. Con esta opción, los nodos que se van a borrar tienen tiempo de completar el procesamiento en curso.

Cómo administrar trabajos en el tiempo

Tratar con trabajos individuales no suele ser complejo, pero el sistema Hadoop puede incluir decenas o cientos de trabajos. Con el paso del tiempo, la cantidad de registros, los archivos con resultados y demás información relacionada con cada trabajo proliferan, lo que puede dificultar la tarea de encontrar información específica. Te presentamos algunas sugerencias para facilitarte la administración de tus trabajos en el futuro:

  • Utiliza etiquetas personalizadas para identificar trabajos, clústeres y otros recursos. El uso de etiquetas facilita la utilización de un filtro para encontrar recursos más adelante. Cloud Dataproc es compatible con etiquetas personalizadas que utilizan el sistema estándar de etiquetado de GCP; por ende, etiquetar un recurso puede ayudarte a administrar ese recurso en otros servicios de GCP.
  • Organiza tus depósitos de Cloud Storage para separar diferentes tipos de trabajos. Agrupar tus datos en depósitos que se corresponden con tu estructura comercial o tus áreas funcionales también puede facilitar la administración de permisos.
  • Define clústeres para trabajos individuales o para grupos de trabajos estrechamente relacionados. Es mucho más fácil actualizar la configuración para tus clústeres efímeros si utilizas cada configuración solo en trabajos de buen alcance.

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Cómo migrar Hadoop a GCP