Este tópico descreve como configurar o Knox no E-MapReduce para acessar as interfaces web de serviços como HDFS, YARN, Spark e Ganglia pela rede pública.
Pré-requisitos
Crie um cluster do E-MapReduce com o serviço Knox selecionado. Para mais informações, consulte Criar um cluster.
Se você não selecionou o serviço Knox durante a criação do cluster, adicione-o posteriormente. Para mais detalhes, consulte Adicionar serviços.
Preparações
Configurar acesso ao grupo de segurança
-
Obtenha o endereço IP público do dispositivo atual.
Para acessar os componentes do cluster com segurança, permita o acesso apenas a partir do seu endereço IP público atual ao configurar as regras do grupo de segurança. Acesse IP Address para visualizar seu endereço IP público atual.
-
Adicione uma porta:
Este tópico usa a porta 8443 como exemplo.
No console do E-MapReduce, na página Basic Information do cluster, acesse a seção Security e clique em Cluster Security Group.
Na página Security Group, na aba Inbound, clique em Add Rule.
Defina Authorization Object como o endereço IP público obtido na etapa anterior e configure Port Range como 8443/8443.
Clique em Save.
Para evitar riscos de segurança, não defina Authorization Object como 0.0.0.0/0.
Se nenhum endereço IP público foi atribuído durante a criação do cluster, atribua um à instância ECS do nó mestre no console do ECS.
Configurar um usuário Knox
O acesso ao Knox exige autenticação com nome de usuário e senha. O Knox usa LDAP para autenticação de usuários, fornecida pelo serviço Apache Directory Server no cluster.
-
Método 1 (Recomendado)
Na página EMR on ECS, clique em Users para adicionar uma conta de usuário Knox. Para mais informações, consulte Gerenciamento de usuários.
-
Método 2:
Conecte-se ao cluster via SSH. Para mais detalhes, consulte Fazer login em um cluster.
-
Prepare os dados do usuário. O exemplo abaixo usa um usuário chamado Tom.
Edite o arquivo users.ldif.
su knox vim /opt/apps/KNOX/knox-current/templates/users.ldifNo arquivo, substitua todas as ocorrências de
emr-guestporTom, substitua todas as ocorrências deEMR GUESTporTome defina o valor de userPassword com a senha desejada. -
Execute os comandos a seguir para importar os dados do usuário para o LDAP.
cd /opt/apps/KNOX/knox-current/templates sh ldap-sample-users.sh
Acessar interfaces web
Para mais informações sobre como acessar as interfaces web, consulte Acessar as interfaces web de componentes open-source pelo console.
Perguntas frequentes
-
P: O componente Knox para inesperadamente. Ao tentar iniciar o Knox, o processo falha com o erro
Failed to start gateway: org.apache.knox.gateway.services.ServiceLifecycleException: Gateway SSL Certificate is Expired.s/ecm/sxxx.0.3/bin/.. as GATEWAY_HOME via system property. 2021-08-03 16:37:35,794 INFO knox.gateway (GatewayConfigImpl.java:init(346)) - Cookie scoping feature enabled: false 2021-08-03 16:37:36,091 WARN knox.gateway (RemoteAliasService.java:init(448)) - There is no registry client defined for remote configuration monitoring. 2021-08-03 16:37:36,091 INFO knox.gateway (RemoteAliasService.java:start(485)) - Remote Alias Service enabled 2021-08-03 16:37:36,102 INFO knox.gateway (JettySSLService.java:init(96)) - Credential store for the gateway instance found - no need to create one. 2021-08-03 16:37:36,120 INFO knox.gateway (JettySSLService.java:init(118)) - Keystore for the gateway instance found - no need to create one. 2021-08-03 16:37:36,124 INFO knox.gateway (JettySSLService.java:logAndValidateCertificate(148)) - The Gateway SSL certificate is issued to hostname: localhost. 2021-08-03 16:37:36,125 INFO knox.gateway (JettySSLService.java:logAndValidateCertificate(151)) - The Gateway SSL certificate is valid between: 3/9/20 4:12 PM and 3/9/21 4:12 PM. 2021-08-03 16:37:36,136 FATAL knox.gateway (GatewayServer.java:main(162)) - Failed to start gateway: org.apache.knox.gateway.services.ServiceLifecycleException: Gateway SSL Certificate is Expired. Server will not start. -
R: Siga estas etapas para resolver o problema:
Faça login no cluster via SSH. Para mais informações, consulte Fazer login em um cluster.
-
Execute o comando abaixo para renomear o certificado expirado.
sudo mv /opt/apps/KNOX/knox-current/data/security/keystores/gateway.jks /opt/apps/KNOX/knox-current/data/security/keystores/bak_gateway.jksNotaTambém é possível mover o certificado expirado para outro diretório.
-
Inicie o serviço Knox.
No console do EMR, na página Services, localize o serviço Knox e escolha .
Na caixa de diálogo exibida, insira um motivo para a execução e clique em OK.
Na caixa de diálogo Confirm, clique em OK.
> START