Algunos de los componentes de software libre principales incluidos en los clústeres de Dataproc, como Apache Hadoop y Apache Spark, proporcionan interfaces web. Estas interfaces se pueden usar para gestionar y monitorizar los recursos y las instalaciones del clúster, como el gestor de recursos de YARN, el sistema de archivos distribuidos de Hadoop (HDFS), MapReduce y Spark. Otros componentes o aplicaciones que instales en tu clúster también pueden proporcionar interfaces web (por ejemplo, consulta Instalar y ejecutar un cuaderno de Jupyter en un clúster de Dataproc).
Interfaces disponibles
Las siguientes interfaces están disponibles en un nodo maestro de un clúster de Dataproc (sustituye master-host-name
por el nombre de tu nodo maestro).
UI web | Puerto | URL |
---|---|---|
ResourceManager de YARN | 80881 | http://master-host-name:8088 |
NameNode de HDFS | 98702,3 | http://master-host-name:9870 |
1 En los clústeres con Kerberos habilitado, el puerto de la interfaz web de YARN ResourceManager es 8090 y se ejecuta en HTTPS.
2 En los clústeres con Kerberos habilitado, el puerto de la interfaz web de HDFS Namenode es 9871 y se ejecuta en HTTPS.
3 En versiones anteriores de Dataproc (anteriores a la 1.2), el puerto de la interfaz web de Namenode de HDFS era 50070.
YARN ResourceManager tiene enlaces a todas las interfaces web de las aplicaciones MapReduce y Spark que se están ejecutando y que se han completado en la columna "Interfaz de seguimiento".

APIs REST de YARN ResourceManager permitidas
Cuando creas un clúster, Dataproc define la yarn.resourcemanager.webapp.methods-allowed
propiedad
yarn-site.xml como "GET,HEAD", lo que restringe los métodos HTTP que se pueden invocar en la interfaz web de YARN Resource Manager y en las
APIs REST
a los métodos GET
y HEAD
. Esta opción predeterminada también inhabilita el envío y las modificaciones de trabajos a través de la API REST de YARN.
Puedes anular los valores predeterminados para habilitar métodos HTTP específicos en el puerto 8088. Para ello, define esta propiedad con uno o varios nombres de métodos HTTP separados por comas. Un valor ALL
permitirá todos los métodos HTTP en el puerto.
Ejemplo:
gcloud dataproc clusters create cluster-name \ --properties=^#^yarn:yarn.resourcemanager.webapp.methods-allowed=GET,POST,DELETE \ --region=region \
Recomendación: Si define esta propiedad para permitir métodos HTTP no predeterminados, asegúrese de configurar reglas de cortafuegos y otros ajustes de seguridad para restringir el acceso al puerto 8088.
Conectarse a interfaces web
Puedes conectarte a las interfaces web que se ejecutan en un clúster de Dataproc mediante la pasarela de componentes de Dataproc, el Cloud Shell de tu proyecto o la herramienta de línea de comandos gcloud de la CLI de Google Cloud:
Pasarela de componentes: conéctate con un solo clic a Hadoop, Spark y otras interfaces web de componentes desde la Google Cloud consola. Puedes habilitar Component Gateway al crear el clúster.
Cloud Shell: Cloud Shell en la Google Cloud consola tiene preinstalados los comandos y las utilidades de la CLI de gcloud, y ofrece la función Vista previa web, que te permite conectarte rápidamente a través de un túnel SSH a un puerto de interfaz web de un clúster. Sin embargo, una conexión al clúster desde Cloud Shell usa el reenvío de puertos local, que abre una conexión a un solo puerto en una interfaz web del clúster. Se necesitan varios comandos para conectarse a varios puertos. Además, las sesiones de Cloud Shell se cierran automáticamente tras un periodo de inactividad (30 minutos).
CLI de Google Cloud: el comando
gcloud compute ssh
con reenvío dinámico de puertos te permite establecer un túnel SSH y ejecutar un servidor proxy SOCKS sobre el túnel. Después de ejecutar este comando, debes configurar tu navegador local para que use el proxy SOCKS. Este método de conexión te permite conectarte a varios puertos de una interfaz web de clúster. Consulta ¿Puedo usar el reenvío de puertos local en lugar de un proxy SOCKS? para obtener más información.
Definir variables de comandos de uso habitual
Para que te resulte más fácil copiar y ejecutar ejemplos de líneas de comandos en tu máquina local o en Cloud Shell, define variables de comandos gcloud dataproc
. Es posible que tengas que definir variables adicionales para algunos de los ejemplos de comandos que se muestran en esta página.
Linux/mac/Shell
export PROJECT=project;export HOSTNAME=hostname;export ZONE=zone
Windows
set PROJECT=project && set HOSTNAME=hostname && set ZONE=zone
- Asigna a PROJECT tu Google Cloud ID de proyecto.
- Asigna a HOSTNAME el nombre del nodo maestro de tu clúster de Dataproc (el nombre del maestro termina con el sufijo
-m
). - Define ZONE como la zona de las VMs de tu clúster de Dataproc (por ejemplo, "us-central1-b").
Crear un túnel SSH
Comando gcloud
Ejecuta el siguiente comando gcloud
en tu máquina local para configurar un túnel SSH desde un puerto abierto de tu máquina local a la instancia maestra de tu clúster y ejecuta un servidor proxy SOCKS local que escuche en el puerto.
Antes de ejecutar el comando, en tu máquina local:
- Definir variables de comandos de uso habitual
- Define la variable PORT en un puerto abierto de tu máquina local.
El puerto
1080
es una opción arbitraria, pero habitual, ya que es probable que esté abierto.PORT=number
Linux/macOS
gcloud compute ssh ${HOSTNAME} \ --project=${PROJECT} --zone=${ZONE} -- \ -D ${PORT} -N
Windows
gcloud compute ssh %HOSTNAME% ^ --project=%PROJECT% --zone=%ZONE% -- ^ -D %PORT% -N
El separador --
te permite añadir argumentos SSH al comando gcloud compute ssh
, de la siguiente manera:
-D
especifica el reenvío dinámico de puertos a nivel de aplicación.-N
indica agcloud
que no abra un shell remoto.
Este comando gcloud
crea un túnel SSH que funciona de forma independiente de otras sesiones de shell SSH, mantiene los errores relacionados con el túnel fuera de la salida del shell y ayuda a evitar que el túnel se cierre por error.
Si el comando ssh falla y se muestra el mensaje de error
bind: Cannot assign requested address
, es probable que el puerto solicitado esté en uso. Prueba a ejecutar el comando con otro valor de la variable PORT.
El comando anterior se ejecuta en primer plano y debe seguir ejecutándose para mantener activo el túnel. El comando debería cerrarse automáticamente si eliminas el clúster.
Cloud Shell
-
Abre Google Cloud Cloud Shell.
-
Ejecuta el comando
gcloud
que aparece a continuación en Cloud Shell para configurar un túnel SSH desde un puerto de vista previa de Cloud Shell a un puerto de interfaz web en el nodo maestro de tu clúster. Antes de ejecutar el comando, en Cloud Shell :- Definir variables de comandos de uso habitual
- Asigna a la variable PORT1 un puerto de Cloud Shell
del intervalo de puertos 8080-8084 y asigna a la variable PORT2
el puerto de la interfaz web del nodo maestro de tu
clúster de Dataproc.
PORT1=number PORT2=number
gcloud compute ssh ${HOSTNAME} \ --project=${PROJECT} --zone=${ZONE} -- \ -4 -N -L ${PORT1}:${HOSTNAME}:${PORT2}
El separador
--
te permite añadir argumentos SSH al comandogcloud compute ssh
, como se indica a continuación:-4
indica a ssh que solo use IPv4.-N
indica agcloud
que no abra un shell remoto.-L ${PORT1}:${HOSTNAME}:${PORT2}
especifica la redirección de puertos local desde el Cloud Shell PORT1 al clúster HOSTNAME:PORT2.
Este comando
gcloud
crea un túnel SSH que funciona de forma independiente de otras sesiones de shell SSH, mantiene los errores relacionados con el túnel fuera de la salida del shell y ayuda a evitar que el túnel se cierre por error.
Configurar el navegador
Comando gcloud
Tu túnel SSH admite el tráfico de proxy mediante el protocolo SOCKS.
Para configurar tu navegador de forma que use el proxy, inicia una nueva sesión del navegador con los parámetros del servidor proxy. Aquí tienes un ejemplo en el que se usa el navegador Google Chrome.
HOSTNAME
es el nombre del nodo maestro del clúster (consulta Definir variables de comandos de uso habitual).
Linux
/usr/bin/google-chrome \ --proxy-server="socks5://localhost:${PORT}" \ --user-data-dir=/tmp/${HOSTNAME}
macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --proxy-server="socks5://localhost:${PORT}" \ --user-data-dir=/tmp/${HOSTNAME}
Windows
"%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe" ^ --proxy-server="socks5://localhost:%PORT%" ^ --user-data-dir="%Temp%\%HOSTNAME%"
Este comando usa las siguientes marcas del navegador Chrome:
-proxy-server="socks5://localhost:1080"
indica a Chrome que envíe todas las solicitudes de URLhttp://
yhttps://
a través del servidor proxy SOCKSlocalhost:${PORT}
, mediante la versión 5 del protocolo SOCKS. ${PORT} es la variable de puerto que has definido en Crear un túnel SSH. El servidor proxy resuelve los nombres de host de las URLs, no Chrome de forma local.--user-data-dir=/tmp/${HOSTNAME}
obliga a Chrome a abrir una nueva ventana que no esté vinculada a una sesión de Chrome. Si no se incluye esta marca, Chrome puede abrir una nueva ventana adjunta a una sesión de Chrome ya abierta, ignorando el ajuste--proxy-server
. El valor asignado a--user-data-dir
puede ser cualquier ruta que no exista.
Cloud Shell
No es necesario que configures tu navegador local cuando uses Cloud Shell. Después de crear un túnel SSH, usa la vista previa web de Cloud Shell para conectarte a la interfaz del clúster.
Conectarse a la interfaz del clúster
Comando gcloud
Una vez que tu navegador local esté configurado para usar el proxy, puedes ir a la URL de la interfaz web de tu clúster de Dataproc (consulta Interfaces disponibles).
La URL del navegador tiene el siguiente formato y contenido:
http://cluster-name-m:port
(puerto de la interfaz del clúster)
Cloud Shell
Haga clic en el botón Vista previa web
de Cloud Shell
y, a continuación, seleccione una de las siguientes opciones:
- "Obtener vista previa en el puerto 8080"
- "Cambiar puerto" e inserta el número de puerto en el cuadro de diálogo.
gcloud compute ssh
en
Crear un túnel SSH.


Se abrirá una ventana del navegador que se conectará al puerto de la interfaz web del nodo maestro del clúster.
Preguntas frecuentes y consejos de depuración
¿Qué ocurre si no veo la interfaz de usuario en mi navegador?
Si no ves las interfaces de usuario en tu navegador, los dos motivos más habituales son los siguientes:
Tienes un problema de conectividad de red, posiblemente debido a un cortafuegos. Ejecuta el siguiente comando (después de definir variables locales) para comprobar si puedes conectarte a la instancia principal mediante SSH. Si no puedes, significa que hay un problema de conectividad.
Linux/macOS
gcloud compute ssh ${HOSTNAME}-m \ --project=${PROJECT}
Windows
gcloud compute ssh %HOSTNAME%-m ^ --project=%PROJECT%
Otro proxy está interfiriendo con el proxy SOCKS. Para comprobar el proxy, ejecuta el siguiente comando
curl
(disponible en Linux y macOS):Linux/macOS
curl -Is --socks5-hostname localhost:1080 http://cluster-name-m:8088
Windows
curl.exe -Is --socks5-hostname localhost:1080 http://cluster-name-m:8088
¿Puedo usar el reenvío de puertos local en lugar de un proxy SOCKS?
En lugar del proxy SOCKS, puedes acceder a las interfaces de usuario de las aplicaciones web que se ejecutan en tu instancia principal con la redirección de puertos locales SSH, que redirige el puerto de la instancia principal a un puerto local. Por ejemplo, el siguiente comando te permite acceder a localhost:1080
para llegar a cluster-name-m:8088
sin SOCKS (consulta Definir variables de comandos de uso habitual):
Linux/macOS
gcloud compute ssh ${HOSTNAME}-m \ --project=${PROJECT} -- \ -L 1080:${HOSTNAME}-m:8088 -N -n
Windows
gcloud compute ssh %HOSTNAME%-m ^ --project=%PROJECT% -- ^ -L 1080:%HOSTNAME%-m:8088 -N -n
Puede ser preferible usar un proxy SOCKS en lugar del reenvío de puertos local, ya que el proxy:
- te permite acceder a todos los puertos de aplicaciones web sin tener que configurar un túnel de redirección de puertos para cada puerto de interfaz de usuario.
- Permite que las interfaces web de Spark y Hadoop resuelvan correctamente los hosts DNS.