Um túnel SSH permite acessar com segurança as interfaces web de componentes de código aberto no cluster EMR sem expor a rede interna. Há dois métodos disponíveis: encaminhamento de porta local e encaminhamento de porta dinâmica com proxy SOCKS.
Para ver todos os métodos disponíveis de acesso às interfaces web de componentes de código aberto, consulte Acesse as interfaces web de componentes de código aberto .
Escolha um método
|
Método |
Mais indicado para |
Limitação |
|
Encaminhamento de porta local |
Acessar um único componente por vez |
Impossibilita o acesso a páginas de detalhes de jobs |
|
Encaminhamento de porta dinâmica |
Acessar vários componentes simultaneamente com um único túnel |
Exige configuração de proxy no navegador |
Pré-requisitos
Antes de começar, verifique se você tem:
Um cluster EMR. Para mais informações, consulte Crie um cluster.
Um cliente conectado ao nó mestre do cluster EMR. Para mais informações, consulte Associe um EIP a uma instância ECS.
Encaminhamento de porta local
O encaminhamento de porta local mapeia uma porta na máquina local para uma porta no nó mestre. Isso permite acessar a interface web de um único componente via localhost.
Este método não oferece suporte à navegação nas páginas de detalhes de jobs.
Etapa 1: Crie um túnel SSH
Abra um terminal na máquina local e execute um dos comandos a seguir. Este exemplo encaminha a porta local 8156 para a porta 8088 no nó mestre para acessar a interface web do YARN ResourceManager. Para acessar outro componente, substitua 8088 pelo número da porta correspondente. Para obter uma lista de portas de componentes, consulte Portas comuns de componentes de código aberto.
Conecte-se usando um arquivo de chave privada
ssh -i <private-key-file-path> -N -L <local-port>:<master-node-name>:<component-port> root@<master-node-public-ip>
Conecte-se usando nome de usuário e senha
ssh -N -L <local-port>:<master-node-name>:<component-port> root@<master-node-public-ip>
|
Parâmetro |
Descrição |
Exemplo |
|
|
Caminho para o arquivo de chave privada usado na autenticação. Consulte Gerencie pares de chaves SSH. |
|
|
|
Cria o túnel sem executar comandos remotos. O terminal não exibe saída após o estabelecimento do túnel — esse comportamento é esperado. |
— |
|
|
Ativa o encaminhamento de porta local. Encaminha o tráfego de |
— |
|
|
Caminho para o arquivo de chave privada. |
|
|
|
Qualquer porta livre na máquina. |
|
|
|
Nome do nó mestre, visível na aba Nodes do cluster. Consulte Obtenha o endereço IP público e o nome de um nó. |
|
|
|
Porta do componente de código aberto de destino. |
|
|
|
Endereço IP público do nó mestre, visível na aba Nodes. Consulte Obtenha o endereço IP público e o nome de um nó. |
|
Mantenha o terminal aberto após estabelecer o túnel. A flag -N instrui o SSH a manter apenas o túnel, sem executar comandos remotos; portanto, nenhuma saída é gerada. Esse é o comportamento normal.
Etapa 2: Acesse a interface web
Na barra de endereços do navegador, insira http://localhost:<local-port> e pressione Enter.
Por exemplo, para acessar o YARN ResourceManager, insira http://localhost:8156.
Para acessar várias interfaces web de componentes simultaneamente, abra terminais adicionais e repita a Etapa 1 usando uma porta local diferente para cada componente.
Encaminhamento de porta dinâmica
O encaminhamento de porta dinâmica inicia um proxy SOCKS em uma porta local que roteia todo o tráfego pelo nó mestre. Um único túnel fornece acesso à interface web de qualquer componente — basta alterar o hostname e a porta do componente no navegador.
Etapa 1: Crie um túnel SSH
Abra um terminal na máquina local e execute um dos comandos a seguir. Este exemplo inicia um proxy SOCKS na porta local 8157.
Conecte-se usando um arquivo de chave privada
ssh -i <private-key-file-path> -N -D <local-port> root@<master-node-public-ip>
Conecte-se usando nome de usuário e senha
ssh -N -D <local-port> root@<master-node-public-ip>
|
Parâmetro |
Descrição |
Exemplo |
|
|
Caminho para o arquivo de chave privada usado na autenticação. Consulte Gerencie pares de chaves SSH. |
|
|
|
Cria o túnel sem executar comandos remotos. O terminal não exibe saída após o estabelecimento do túnel — esse comportamento é esperado. |
— |
|
|
Ativa o encaminhamento de porta dinâmica. Inicia um proxy SOCKS que escuta em |
— |
|
|
Qualquer porta livre na máquina. |
|
|
|
Endereço IP público do nó mestre, visível na aba Nodes. Consulte Obtenha o endereço IP público e o nome de um nó. |
|
Mantenha o terminal aberto após estabelecer o túnel. A flag -N instrui o SSH a manter apenas o túnel, sem executar comandos remotos; portanto, nenhuma saída é gerada. Esse é o comportamento normal.
Etapa 2: Configure um proxy no navegador
Após iniciar o túnel, configure o Google Chrome para rotear o tráfego pelo proxy SOCKS. Use a CLI ou a extensão SwitchyOmega.
Opção A: CLI
-
Abra um terminal e acesse o diretório de instalação do Google Chrome correspondente ao seu sistema operacional.
Sistema operacional
Diretório de instalação padrão
macOS X
/Applications/Google\ Chrome.app/Contents/macOSLinux
/usr/bin/google-chromeWindows (64 bits)
C:\Program Files\Google\Chrome\Application\Windows (32 bits)
C:\Program Files (x86)\Google\Chrome\Application\ -
Inicie o Google Chrome com as configurações de proxy SOCKS. Substitua
8157pela porta local configurada na Etapa 1.macOS X
./Google\ Chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/Linux
chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/Windows
chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=c:\\tmppath\\
Opção B: Extensão SwitchyOmega
A extensão SwitchyOmega permite alternar entre navegação direta e por proxy na mesma janela do navegador.
Adicione a extensão SwitchyOmega ao Google Chrome.
No painel de navegação à esquerda, clique em New profile. Na caixa de diálogo New Profile, insira um nome no campo Profile name (por exemplo,
SSH tunnel), selecione PAC Profile e clique em Create.-
No editor PAC Script, cole o script a seguir. Substitua todas as ocorrências de
8157pela porta local configurada na Etapa 1.function regExpMatch(url, pattern) { try { return new RegExp(pattern).test(url); } catch (ex) { return false; } } function FindProxyForURL(url, host) { if (shExpMatch(url, "*localhost*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*emr-header*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*emr-worker*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*master*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*core*")) return "SOCKS5 localhost:8157"; return 'DIRECT'; } No painel de navegação à esquerda, clique em Apply changes.
-
No canto superior direito do navegador, selecione o perfil SSH tunnel criado.
Etapa 3: Acesse a interface web
Na barra de endereços do navegador, insira http://<master-node-name>:<component-port> e pressione Enter.
Por exemplo, para acessar o YARN ResourceManager, insira http://master-1-1:8088.
|
Parâmetro |
Descrição |
Exemplo |
|
|
Nome do nó mestre, visível na aba Nodes. Consulte Obtenha o endereço IP público e o nome de um nó. |
|
|
|
Porta do componente de código aberto de destino. Consulte Portas comuns de componentes de código aberto. |
|
Para acessar várias interfaces web de componentes simultaneamente, altere o número da porta na barra de endereços. Não são necessários túneis adicionais.