Introducción
En este tutorial, aprenderemos a crear una máquina virtual en Microsoft Azure y a configurar un clúster de Hadoop utilizando Docker. A través de una conexión SSH, instalaremos y configuraremos todos los componentes necesarios para levantar un clúster clásico de Hadoop, lo que nos permitirá ejecutar tareas de procesamiento de datos distribuidos en un entorno virtualizado. Este proceso será detallado paso a paso para garantizar que puedas replicarlo sin problemas.
1. Crear una Máquina Virtual en Azure
El primer paso consiste en crear una máquina virtual en el Portal de Azure. Sigue estos pasos:
- Inicia sesión en tu cuenta de Azure.
- En la barra de búsqueda ubicada en la parte superior del portal, escribe "Máquina Virtual" y selecciona la opción que aparece en los resultados.
- Haz clic en el botón "Crear" para iniciar el proceso de creación de la máquina virtual.
Datos Básicos:
- Creamos el Grupo de Recursos.
- Nombramos la máquina virtual.
- Seleccionamos la región. En este caso seleccione (Europe) France Central, porque es la región que permite crear la máquina con esa imagen y esos recursos.
- Tipo de seguridad "Estándar".
- Imagen: Ubuntu Minimal 20.04 LTS -x64 gen.2
- Tamaño: Standard D2s_v3 (2vCPU, 8 GiB)
- Autenticación: Clave pública SSH
- Nombre de Usuario: azureuser
- Tipo de clave SSH: Formato RSA SSH
- Puertos de entrada públicos: Solo los puestos seleccionados.
- Seleccionar el puerto de entrada SSH (22)
Discos:
- Tamaño del disco del SO: Valor predeterminado de la imagen (30GiB)
- Tipo de disco: HDD estándar (almacenamiento con redundancia local)
- Eliminar con VM: Habilitado
- La clave administrada por la plataforma.
- Compatibilidad con Ultra Disks deshabilitado.
Redes:
- Red virtual, Subred y la IP pública dejamos la que se crea por defecto.
- En grupo de seguridad de red de NIC marcamos Básico.
- Permitimos los puestos seleccionados y marcamos únicamente SSH (22).
- Habilitamos la Eliminación de IP pública y NIC cuando se elimine la VM y deshabilitamos las redes aceleradas.
- En este caso no necesitaremos el Load Balancer así que en Opciones de equilibrio de carga marcamos: Ninguno.
Administración:
- Identidad y Microsoft Entra ID: Deshabilitado
- Habilitamos el apagado automático y notificamos guardando un correo electrónico.
- Deshabilitamos la copia de seguridad para este ejemplo.
- En la parte de Actualizaciones de SO invitado, dejamos como Valor predeterminado de la imagen en la sección de Opciones de orquestación de revisores.
Supervisión:
Dejamos configurado de las siguiente manera:
Opciones avanzadas:
Dejamos todo por defecto, deberá quedarte así:
Revisar y Crear:
Cuando terminemos con las configuraciones da clic en "Revisar y Crear", en esta sección se despliega toda la información de configuración de la máquina virtual, asegúrate que todo este correctamente configurado y da clic en "Crear".
Azure no guarda las claves privadas, así que, de dirá que descargues la clave SSH para que te puedas conectar después de la instalación, da clic en "Descargar la clave privada y crear el recurso".
Ahora ya tendrás instalado tu máquina virtual en el Portal de Azure.
2. Conexión por SSH desde local a VM de Azure
Ahora que hemos creado nuestra máquina virtual en Azure, el siguiente paso es establecer una conexión SSH desde nuestro equipo local hacia la VM. Este proceso nos permitirá acceder al sistema operativo de la máquina virtual y realizar la configuración necesaria para levantar el clúster de Hadoop. A continuación, detallaremos cómo generar las claves SSH y conectarnos de forma segura.
- Abrimos nuestra terminal en la máquina local, navegaremos hacia donde hemos ubicado el archivo que se descargo la clave privada SSH y ejecutamos el siguiente comando:
ssh -i <ruta_de_la_clave> azureuser@<ip_de_tu_vm>
En mi caso he guardado la clave privada en una carpeta llamada Azure, puedes usar el nombre que quieras, también usare la terminal de WSL.
Para ver la dirección IP Pública, ve al portal de Azure en tu recurso de Máquina Virtual que haz creado, en Información General > Información Esencial: Tendrás la dirección ip pública.
Ejecutamos el comando con nuestros datos, si aparece el mensaje de Permissions 0777, como se ve en la imagen.
Cambiaremos los permisos para el archivo con:
sudo chmod 600 <ruta_de_la_clave>
Nota: Intente seguir el tutorial desde la WSL pero no me daba error de WARNING: UNPROTECTED PRIVATE KEY FILE! para solucionar solo me cambie a la terminal de PowerShell y ejecute el comando anterior y ahora funciona correctamente.
3. Configurar las reglas de seguridad en Azure:
A continuación, vamos a configurar las reglas de seguridad en Azure para permitir el acceso a los puertos necesarios para que Hadoop y YARN funcionen correctamente. En particular, necesitamos abrir los siguientes puertos:
- Hadoop (50070): Para acceder a la interfaz web de Hadoop.
- YARN (8088): Para acceder a la interfaz web de YARN.
Esto garantizará que podamos interactuar con ambos servicios a través de la red. Ahora, procederemos a modificar las reglas del grupo de seguridad de red para habilitar el acceso a estos puertos.
- Desde la interfaz de usuario de Azure: Accede al grupo de seguridad de red (NSG):
- En el portal de Azure, ve a tu Máquina Virtual y selecciona la opción Redes en el menú de la izquierda.
- Busca el Network Security Group (NSG) asociado a la interfaz de red de tu VM (probablemente tenga el nombre Hadoop-1-nsg o algo similar).
- Haz clic en el nombre del NSG para abrirlo.
Agregar reglas de entrada:
Dentro del NSG, ve a la sección Inbound security rules (Reglas de seguridad de entrada).
Haz clic en "Agregar" para agregar una nueva regla.
Configurar los puertos necesarios:
Puerto SSH (22) - Ya debería estar configurado
Web UI de Hadoop (50070):
- Destination port ranges: 50070
- Protocol: TCP
- Action: Allow
- Priority: 110
- Name: Hadoop-NameNode-UI
YARN ResourceManager (8088)
- Destination port ranges: 8088
- Protocol: TCP
- Action: Allow
- Priority: 120
- Name: YARN-ResourceManager
Después de ingresar los datos para cada regla, haz clic en "Agregar" para guardarla.
Verificación:
Una vez que hayas agregado todas las reglas, verifica que aparecen en la lista de Inbound security rules y que están configuradas correctamente.