Despliegue de un Cluster de Apache Spark en Modo Gestor/Trabajador

Apache Spark es un marco de creación de clusters de código abierto para análisis de datos. Oracle Cloud Infrastructure proporciona una plataforma fiable de alto rendimiento para ejecutar y gestionar las aplicaciones Big Data basadas en Apache Spark.

Arquitectura

Esta arquitectura despliega un cluster de Apache Spark en Oracle Cloud Infrastructure mediante el modelo manager/trabajador. Tiene un nodo de mánager y tres nodos de trabajador, que se ejecutan en instancias de cálculo.

El siguiente diagrama ilustra esta arquitectura de referencia.

A continuación se muestra la descripción de spark-oci-png.png
Descripción de la ilustración spark-oci-png.png

spark-oci-oracle.zip

La arquitectura tiene los siguientes componentes:

  • Región

    Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones, y grandes distancias pueden separarlas (entre países o incluso continentes).

  • Dominio de disponibilidad

    Los dominios de disponibilidad son centros de datos independientes e independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como energía o refrigeración, o la red de dominio de disponibilidad interna. Por lo tanto, es poco probable que un fallo en un dominio de disponibilidad afecte a los otros dominios de disponibilidad de la región.

  • Dominio de fallo

    Un dominio de fallo es una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad. Cada dominio de disponibilidad tiene tres dominios de fallo con energía y hardware independientes. Cuando distribuye recursos en varios dominios de fallos, las aplicaciones pueden tolerar fallos físicos del servidor, mantenimiento del sistema y fallos de energía dentro de un dominio de fallos.

  • Red virtual en la nube (VCN) y subredes

    VCN es una red personalizable definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes tradicionales de centros de datos, las VCN le proporcionan un control completo sobre su entorno de red. VCN puede tener varios bloques CIDR no superpuestos que puede cambiar después de crear VCN. Puede segmentar VCN en subredes, que se pueden asignar a una región o a un dominio de disponibilidad. Cada subred consta de un rango contiguo de direcciones que no se superponen con las otras subredes de VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.

  • Gestor y trabajadores de Apache Spark

    La instancia de cálculo que aloja el gestor de Apache Spark está asociada a una subred pública regional. Los trabajadores están vinculados a una subred privada regional.

  • Almacenamiento de bloques

    Con los volúmenes de almacenamiento en bloque, puede crear, asociar, conectar y mover volúmenes de almacenamiento y cambiar el rendimiento del volumen para satisfacer los requisitos de almacenamiento, rendimiento y aplicación. Después de asociar y conectar un volumen a una instancia, puede utilizar el volumen como un disco duro normal. También puede desconectar un volumen y asociarlo a otra instancia sin perder datos.

    La plantilla de inicio rápido de Terraform proporcionada para esta arquitectura proporciona un volumen de bloque de 700 GB para cada nodo de trabajador. Al desplegar la arquitectura, puede elegir el número y el tamaño de los volúmenes en bloque.

    La arquitectura utiliza iSCSI, un estándar basado en TCP/IP, para la comunicación entre los volúmenes y las instancias asociadas.

  • Gateway de Internet

    El gateway de Internet permite el tráfico entre las subredes públicas en un VCN y el Internet público.

  • Gateway de traducción de direcciones de red (NAT)

    Un gateway de NAT permite que los recursos privados en una VCN accedan a los hosts en Internet, sin exponer dichos recursos a las conexiones de Internet entrantes.

Recomendaciones

Sus requisitos pueden diferir de la arquitectura descrita aquí. Utilice las siguientes recomendaciones como punto de partida.

  • VCN

    Al crear un VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque en función del número de recursos que tiene previsto asociar a subredes en VCN. Utilice bloques CIDR que estén dentro del espacio de direcciones IP privadas estándar.

    Seleccione bloques CIDR que no se superpongan con ninguna otra red (en Oracle Cloud Infrastructure, el centro de datos local u otro proveedor de nube) a la que desea configurar conexiones privadas.

    Después de crear un VCN, puede cambiar, agregar y eliminar sus bloques CIDR.

    Cuando diseñe las subredes, tenga en cuenta sus requisitos de flujo de tráfico y seguridad. Conecte todos los recursos dentro de un nivel o rol específico a la misma subred, que puede servir como límite de seguridad.

    Utilice subredes regionales.

  • Formas informáticas

    Esta arquitectura utiliza una imagen del sistema operativo Oracle Linux 7.7 con una forma VM.Standard2.1 tanto para el gestor como para los nodos de trabajador. Si su aplicación necesita más memoria, núcleos o ancho de banda de red, puede elegir una forma diferente.

  • Apache Spark y Hadoop

    Aunque Apache Spark puede ejecutarse solo, en esta arquitectura se ejecuta en Hadoop.

    En esta arquitectura, se despliega un nodo de mánager único y tres nodos de trabajador como parte del cluster de Apache Spark.

  • Seguridad
    • Utilice Oracle Cloud Guard para supervisar y mantener la seguridad de sus recursos en Oracle Cloud Infrastructure de forma proactiva. Cloud Guard utiliza recetas de detectores que puede definir para examinar sus recursos para detectar deficiencias de seguridad y para supervisar a los operadores y usuarios para realizar actividades de riesgo. Cuando se detecta cualquier actividad incorrecta o insegura, Cloud Guard recomienda acciones correctivas y ayuda a realizar esas acciones, en función de las recetas de respuesta que pueda definir.

    • Para recursos que requieren la máxima seguridad, Oracle recomienda utilizar zonas de seguridad. Una zona de seguridad es un compartimento asociado a una receta definida por Oracle de políticas de seguridad que se basan en las mejores prácticas. Por ejemplo, los recursos de una zona de seguridad no deben ser accesibles desde Internet público y deben cifrarse mediante claves gestionadas por el cliente. Al crear y actualizar recursos en una zona de seguridad, Oracle Cloud Infrastructure valida las operaciones con las políticas de la receta de zona de seguridad y niega las operaciones que violan cualquiera de las políticas.

Consideraciones

  • Rendimiento

    Considere el uso de formas de metal dedicado para instancias de Compute tanto para los nodos de mánager como de trabajador. Puede obtener beneficios de rendimiento significativos ejecutando aplicaciones de Big Data en un cluster de Spark con hardware dedicado.

  • Disponibilidad

    Los dominios de fallo proporcionan la mejor resiliencia dentro de un único dominio de disponibilidad. Puede desplegar instancias de cálculo que realicen las mismas tareas en varios dominios de disponibilidad. Este diseño elimina un único punto de fallo introduciendo redundancia.

    También puede considerar la posibilidad de crear un nodo de gestor de Spark adicional como copia de seguridad para una alta disponibilidad.

  • Escalabilidad

    Puede escalar la aplicación mediante el pool de instancias y las funciones de nomenclatura automática.

    • Mediante agrupaciones de instancias, puede aprovisionar y crear varias instancias de cálculo basadas en la misma configuración dentro de la misma región.
    • La escala automática permite ajustar automáticamente el número de instancias de cálculo en un pool de instancias, en función de métricas de rendimiento como la utilización de CPU.
  • Almacenamiento

    Puede utilizar Oracle Cloud Infrastructure Object Storage para almacenar los datos en lugar de volúmenes en bloque. Si utiliza almacenamiento de objetos, cree un gateway de servicio para la conectividad a partir de nodos en subredes privadas.

    Oracle también ofrece el conector Hadoop Distributed File System (HDFS) para Oracle Cloud Infrastructure Object Storage. Mediante el conector HDFS, las aplicaciones de Apache Hadoop pueden leer y escribir datos desde y hacia el almacenamiento de objetos.

  • Gestibilidad

    Esta arquitectura utiliza Terraform para crear la infraestructura y desplegar el cluster de Spark.

    En su lugar, puede utilizar el servicio totalmente gestionado, Oracle Cloud Infrastructure Data Flow, que proporciona una interfaz de usuario rica para permitir a los desarrolladores y científicos de datos crear, editar y ejecutar aplicaciones Apache Spark en cualquier escala sin necesidad de clusters, un equipo de operaciones o conocimientos de Spark altamente especializados. Como servicio totalmente gestionado, no hay infraestructura para desplegar o gestionar.

  • Seguridad

    Utilice políticas para restringir quién puede acceder a los recursos de Oracle Cloud Infrastructure y qué acciones pueden realizar.

Desplegar

El código necesario para desplegar esta arquitectura de referencia está disponible en GitHub. Puede extraer el código a Oracle Cloud Infrastructure Resource Manager con un solo clic, crear la pila y desplegarlo. También puede descargar el código de GitHub en el equipo, personalizar el código y desplegar la arquitectura mediante la CLI de Terraform.

  • Desplegar mediante Oracle Cloud Infrastructure Resource Manager:
    1. Haga clic en Desplegar en Oracle Cloud

      Si aún no ha iniciado sesión, introduzca las credenciales de arrendamiento y usuario.

    2. Revise y acepte las condiciones.
    3. Seleccione la región en la que desea desplegar la pila.
    4. Siga las instrucciones y peticiones de datos en pantalla para crear la pila.
    5. Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
    6. Espere a que se complete el trabajo y revise el plan.

      Para realizar cualquier cambio, vuelva a la página Detalles de Pila, haga clic en Editar Pila y realice los cambios necesarios. A continuación, vuelva a ejecutar la acción Plan.

    7. Si no es necesario realizar más cambios, vuelva a la página Detalles de Pila, haga clic en Acciones de Terraform y seleccione Aplicar.
  • Desplegar mediante la CLI de Terraform:
    1. Vaya a GitHub.
    2. Clonar o descargar el repositorio en el equipo local.
    3. Siga las instrucciones del documento README.

Log de cambios

Este log muestra cambios significativos: