Alguns dos componentes de código aberto principais incluídos nos clusters do Dataproc, como o Apache Hadoop e o Apache Spark, oferecem interfaces Web. Estas interfaces podem ser usadas para gerir e monitorizar recursos e instalações de clusters, como o gestor de recursos YARN, o sistema de ficheiros distribuídos Hadoop (HDFS), o MapReduce e o Spark. Outros componentes ou aplicações que instala no cluster também podem fornecer interfaces Web (consulte, por exemplo, Instale e execute um bloco de notas do Jupyter num cluster do Dataproc).
Interfaces disponíveis
As seguintes interfaces estão disponíveis num nó principal do cluster do Dataproc (substitua master-host-name
pelo nome do seu nó principal).
IU da Web | Porta | URL |
---|---|---|
YARN ResourceManager | 80881 | http://master-host-name:8088 |
HDFS NameNode | 98702,3 | http://master-host-name:9870 |
1 Em clusters com o Kerberos ativado, a porta da IU Web do YARN ResourceManager é 8090 e é executada em HTTPS.
2 Em clusters com Kerberos ativado, a porta da IU Web do HDFS Namenode é 9871 e é executada em HTTPS.
3 Em versões anteriores do Dataproc (anteriores à 1.2), a porta da IU Web do HDFS Namenode era 50070.
O YARN ResourceManager tem links para todas as interfaces Web de aplicações MapReduce e Spark atualmente em execução e concluídas na coluna "Tracking UI" (IU de acompanhamento).

APIs REST do YARN ResourceManager permitidas
Quando cria um cluster, o Dataproc define a yarn.resourcemanager.webapp.methods-allowed
propriedade yarn-site.xml como "GET,HEAD", o que restringe os métodos HTTP que podem ser chamados na IU Web do gestor de recursos do YARN e nas
APIs REST aos métodos GET
e HEAD
. Esta definição predefinida também desativa o envio de tarefas e as modificações através da API REST do YARN.
Pode substituir os valores predefinidos para ativar métodos HTTP específicos na porta 8088 definindo esta propriedade para um ou mais nomes de métodos HTTP separados por vírgulas. Um valor ALL
permite todos os métodos HTTP na porta.
Exemplo:
gcloud dataproc clusters create cluster-name \ --properties=^#^yarn:yarn.resourcemanager.webapp.methods-allowed=GET,POST,DELETE \ --region=region \
Recomendação: se definir esta propriedade para permitir métodos HTTP não predefinidos, certifique-se de que configura regras de firewall e outras definições de segurança para restringir o acesso à porta 8088.
Estabelecer ligação a interfaces Web
Pode estabelecer ligação a interfaces Web executadas num cluster do Dataproc através do gateway de componentes do Dataproc, do Cloud Shell do seu projeto ou da ferramenta de linha de comandos gcloud da CLI do Google Cloud:
Component Gateway: ligue-se com um clique ao Hadoop, ao Spark e a outras interfaces da IU da Web de componentes a partir da Google Cloud consola. Ativa o Component Gateway quando cria o cluster.
Cloud Shell: o Cloud Shell na consola tem os comandos e as utilidades da CLI gcloud pré-instalados e oferece uma funcionalidade de pré-visualização na Web que lhe permite estabelecer rapidamente ligação através de um túnel SSH a uma porta de interface Web num cluster. Google Cloud No entanto, uma ligação ao cluster a partir do Cloud Shell usa o encaminhamento de porta local, que abre uma ligação a apenas uma porta numa interface Web do cluster. São necessários vários comandos para estabelecer ligação a várias portas. Além disso, as sessões do Cloud Shell terminam automaticamente após um período de inatividade (30 minutos).
CLI Google Cloud: o comando
gcloud compute ssh
com o encaminhamento dinâmico de portas permite-lhe estabelecer um túnel SSH e executar um servidor proxy SOCKS no túnel. Depois de emitir este comando, tem de configurar o navegador local para usar o proxy SOCKS. Este método de ligação permite-lhe ligar-se a várias portas numa interface Web de cluster. Consulte o artigo Posso usar o encaminhamento de portas local em vez de um proxy SOCKS? para mais informações.
Defina variáveis de comando usadas frequentemente
Para facilitar a cópia e a execução de exemplos de linhas de comandos na sua máquina local ou no Cloud Shell, defina gcloud dataproc
variáveis de comando. Podem ter de ser definidas variáveis adicionais para alguns dos exemplos de comandos apresentados nesta página.
Linux/mac/Shell
export PROJECT=project;export HOSTNAME=hostname;export ZONE=zone
Windows
set PROJECT=project && set HOSTNAME=hostname && set ZONE=zone
- Defina PROJECT para o seu Google Cloud ID do projeto
- Defina HOSTNAME para o nome do
nó principal no seu
cluster do Dataproc (o nome principal termina com o sufixo
-m
) - Defina ZONE para a zona das VMs no seu cluster do Dataproc (por exemplo, "us-central1-b")
Crie um túnel SSH
Comando gcloud
Execute o seguinte gcloud
comando na sua máquina local para
configurar um túnel SSH a partir de uma porta aberta na sua máquina local para a
instância principal do cluster e executar um servidor proxy SOCKS local
a escutar na porta.
Antes de executar o comando, na sua máquina local:
- Defina variáveis de comando usadas frequentemente
- Defina uma variável PORT para uma porta aberta na sua máquina local.
A porta
1080
é uma escolha arbitrária, mas típica, uma vez que é provável que esteja aberta.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
O separador --
permite-lhe adicionar argumentos SSH ao comando gcloud compute ssh
, da seguinte forma:
-D
especifica o encaminhamento de portas dinâmico ao nível da aplicação.-N
indica agcloud
para não abrir uma shell remota.
Este comando gcloud
cria um túnel SSH que funciona
independentemente de outras sessões de shell SSH, mantém os erros relacionados com o túnel
fora da saída do shell e ajuda a evitar encerramentos inadvertidos do túnel.
Se o comando ssh falhar com a mensagem de erro
bind: Cannot assign requested address
, é provável que a causa seja que
a porta pedida está em uso. Experimente executar o comando com um valor de variável PORT diferente.
O comando acima é executado em primeiro plano e tem de continuar a ser executado para manter o túnel ativo. O comando deve terminar automaticamente se e quando eliminar o cluster.
Cloud Shell
-
Abra o Google Cloud Cloud Shell.
-
Execute o comando
gcloud
abaixo no Cloud Shell para configurar um túnel SSH a partir de uma porta de pré-visualização do Cloud Shell para uma porta de interface Web no nó principal no seu cluster. Antes de executar o comando, no Cloud Shell :- Defina variáveis de comando usadas frequentemente
- Defina uma variável PORT1 para uma porta do Cloud Shell
no intervalo de portas 8080 a 8084 e defina uma variável PORT2
para a porta da interface Web no nó principal no seu cluster do Dataproc.
PORT1=number PORT2=number
gcloud compute ssh ${HOSTNAME} \ --project=${PROJECT} --zone=${ZONE} -- \ -4 -N -L ${PORT1}:${HOSTNAME}:${PORT2}
O separador
--
permite-lhe adicionar argumentos SSH ao comandogcloud compute ssh
, da seguinte forma:-4
instrui o ssh a usar apenas IPv4.-N
indica agcloud
para não abrir uma shell remota.-L ${PORT1}:${HOSTNAME}:${PORT2}
especifica o encaminhamento de porta local da porta PORT1 especificada do Cloud Shell para o cluster HOSTNAME:PORT2.
Este comando
gcloud
cria um túnel SSH que funciona independentemente de outras sessões de shell SSH, mantém os erros relacionados com o túnel fora da saída do shell e ajuda a evitar encerramentos inadvertidos do túnel.
Configure o seu navegador
Comando gcloud
O seu túnel SSH suporta o encaminhamento de tráfego através do protocolo SOCKS.
Para configurar o navegador para usar o proxy, inicie uma nova sessão do navegador com os parâmetros do servidor proxy. Segue-se um exemplo que usa o navegador Google Chrome.
HOSTNAME
é o nome do nó principal do cluster (consulte a secção
Defina variáveis de comando usadas frequentemente).
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 as seguintes flags do navegador Chrome:
-proxy-server="socks5://localhost:1080"
indica ao Chrome que envie todos os pedidos de URLhttp://
ehttps://
através do servidor proxy SOCKSlocalhost:${PORT}
, usando a versão 5 do protocolo SOCKS. ${PORT} é a variável de porta que definiu em Crie um túnel SSH. Os nomes de anfitrião dos URLs são resolvidos pelo servidor proxy e não localmente pelo Chrome.--user-data-dir=/tmp/${HOSTNAME}
força o Chrome a abrir uma nova janela que não está associada a uma sessão do Chrome existente. Sem esta flag, o Chrome pode abrir uma nova janela anexada a uma sessão do Chrome existente, ignorando a sua definição--proxy-server
. O valor definido para--user-data-dir
pode ser qualquer caminho inexistente.
Cloud Shell
Não precisa de configurar o navegador local quando usa o Cloud Shell. Depois de criar um túnel SSH, use a pré-visualização na Web do Cloud Shell para ligar à interface do cluster.
Estabeleça ligação à interface do cluster
Comando gcloud
Depois de configurar o navegador local para usar o proxy, pode navegar para o URL da interface Web no cluster do Dataproc (consulte Interfaces disponíveis).
O URL do navegador tem o seguinte formato e conteúdo:
http://cluster-name-m:port
(porta da interface do cluster)
Cloud Shell
Clique no botão Pré-visualização Web do Cloud Shell
e, de seguida, selecione uma das seguintes opções:
- "Pré-visualizar na porta 8080" ou
- "Alterar porta" e inserir o número da porta na caixa de diálogo
gcloud compute ssh
em
Crie um túnel SSH.


É aberta uma janela do navegador que se liga à porta da interface Web no nó principal do cluster.
Perguntas frequentes e sugestões de depuração
O que acontece se não vir a IU no meu navegador?
Se não vir as IU no navegador, os dois motivos mais comuns são:
Tem um problema de conetividade de rede, possivelmente devido a uma firewall. Execute o seguinte comando (depois de definir variáveis locais) para ver se consegue estabelecer ligação SSH à instância principal. Se não conseguir, significa que existe um problema de conetividade.
Linux/macOS
gcloud compute ssh ${HOSTNAME}-m \ --project=${PROJECT}
Windows
gcloud compute ssh %HOSTNAME%-m ^ --project=%PROJECT%
Outro proxy está a interferir com o proxy SOCKS. Para verificar o proxy, execute o seguinte comando
curl
(disponível no Linux e 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
Posso usar o encaminhamento de portas local em vez de um proxy SOCKS?
Em vez do proxy SOCKS, é possível aceder às IUs da aplicação Web em execução na instância principal com o encaminhamento de porta local SSH, que encaminha a porta da instância principal para uma porta local. Por exemplo, o seguinte comando permite-lhe
aceder a localhost:1080
para alcançar cluster-name-m:8088
sem SOCKS
(consulte Defina variáveis de comando usadas frequentemente):
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
A utilização de um proxy SOCKS pode ser preferível à utilização do encaminhamento de portas local, uma vez que o proxy:
- permite-lhe aceder a todas as portas de aplicações Web sem ter de configurar um túnel de encaminhamento de porta para cada porta da IU
- permite que as IU Web do Spark e do Hadoop resolvam corretamente os anfitriões DNS