O gateway serve principalmente para enviar jobs a um cluster de computação e fornecer isolamento de segurança. Para simplificar a implantação do ambiente de gateway, o E-MapReduce oferece a ferramenta EMR-CLI. Essa ferramenta utiliza o Elastic Compute Service (ECS) da Alibaba Cloud para criar uma instância e implantar o ambiente de gateway. Se você tiver um cluster DataLake, Dataflow ou OLAP, consulte este tópico para implantar o ambiente de gateway.
Opções de implantação de gateway
O Gateway atua como uma camada de isolamento para envio de jobs fornecida pelo EMR. Seus principais benefícios incluem:
-
Desacoplar cargas de trabalho do cliente dos serviços principais do cluster
Transfere operações do cliente, como
spark-submit,hive -feyarn application, dos nós mestres. -
Permitir isolamento em ambientes multilocatários
Oferece suporte a ambientes de execução separados para usuários ou departamentos.
-
Melhorar a estabilidade e a manutenção do cluster
Evita que envios frequentes de jobs, depuração de scripts, conflitos de ambiente ou contenção de recursos afetem serviços críticos como YARN ResourceManager e HDFS NameNode.
O EMR oferece três opções de Gateway para atender a diferentes tipos de clusters, versões e requisitos de arquitetura.
|
Opção |
Tipos e versões de cluster compatíveis |
Implantação e recursos principais |
Casos de uso e recomendações |
|
Grupo de nós de gateway |
Compatível apenas com os seguintes clusters:
|
• Adiciona um novo grupo de nós a um cluster existente. Para mais informações, consulte Gerenciar grupos de nós. |
Altamente recomendado: Utilize esta opção para adicionar rapidamente um ponto de entrada de envio seguro e isolado a um cluster DataLake ou DataFlow existente. Oferece o menor custo de manutenção e garante alta consistência de configuração. |
|
Ambiente de gateway |
Compatível com clusters DataLake, DataFlow, Personalizado e OLAP. |
• Implante manualmente em uma instância ECS. Para detalhes, consulte Usar o EMR CLI para personalizar uma implantação de ambiente de Gateway. |
Uma alternativa padrão quando seu cluster não é compatível com um grupo de nós de gateway. |
|
Cluster de gateway |
Compatível apenas com clusters Hadoop e Kafka. |
|
Indicado para clusters Hadoop e Kafka. |
Pré-requisitos
É necessário ter um cluster de computação E-MapReduce para cenários DataLake, Dataflow, OLAP ou Personalizado em execução. Para obter instruções sobre como criar um cluster, consulte Criar um cluster.
Limitações
-
Tipo de cluster: Esta solução aplica-se apenas à implantação de um ambiente de gateway para clusters DataLake, Dataflow, OLAP e Personalizados. Se o tipo e a versão do cluster forem compatíveis, recomenda-se o uso de um grupo de nós de gateway.
Para informações sobre a implantação de um ambiente de gateway para clusters Hadoop e Kafka existentes, consulte Criar um cluster de gateway.
NotaApenas contas da Alibaba Cloud que criaram clusters Hadoop ou Kafka antes das 17:00 (UTC+8) em 19 de dezembro de 2022 podem continuar a criá-los.
Instalação por substituição: O EMR-CLI implanta clientes de gateway no modo de substituição. A reimplantação em uma instância ECS com um gateway existente sobrescreve o cliente antigo e instala o novo cliente no mesmo diretório.
Implantação isolada: Não utilize uma instância ECS existente do seu cluster EMR (como um nó Master, Core ou Task) como nó de gateway. Isso evita que o ambiente do cliente interfira nas operações normais do cluster.
Serviços compatíveis: Este método de implantação é compatível com clientes para os seguintes serviços: HDFS, YARN, HBase, Hive, Spark 2, Spark 3, JindoSDK, Flink, Sqoop, Impala, Presto, Hudi, Iceberg, Tez e Delta Lake.
Primeira implantação
-
No console ECS, crie uma instância. Para mais informações, consulte Criar uma instância usando o assistente.
NotaA instância ECS não requer acesso à rede pública.
As seguintes configurações de parâmetros são recomendadas.
Parâmetro
Descrição
Região e zona
Mesma região e zona do cluster EMR.
Imagem
Mesmo sistema operacional das instâncias do cluster EMR.
Disco do sistema
Recomenda-se um ESSD de pelo menos 60 GiB.
Rede
Mesma Virtual Private Cloud (VPC) do cluster EMR.
Grupo de segurança
Utilize o mesmo grupo de segurança do grupo de nós mestres do cluster EMR. Isso garante a conectividade de rede entre a instância ECS e o cluster EMR.
-
Crie uma função RAM dedicada ao gateway EMR.
Faça login no console RAM como administrador RAM.
No painel de navegação à esquerda, escolha .
Na página Role, clique em Create Role.
No painel Create Role, defina Principal Type como Cloud Service e Principal Name como Elastic Compute Service e clique em OK.
Insira um Role Name (por exemplo, ECSForEMRGatewayRole) e clique em OK.
-
Conceda permissões à função RAM.
Na aba Permission Settings, clique em Add Authorization.
No painel Add Authorization, selecione System Policy. Pesquise e selecione AliyunEMRFullAccess, AliyunOSSFullAccess e AliyunDLFFullAccess. Em seguida, clique em OK.
Clique em Close.
-
Anexe a função RAM à instância ECS.
Faça login no console ECS.
Na barra de navegação à esquerda, selecione .
Na barra de menu superior, selecione a região.
Localize a instância ECS recém-criada e escolha .
Na caixa de diálogo exibida, selecione a função ECSForEMRGatewayRole e clique em OK.
Conecte-se à instância ECS. Para mais informações, consulte Conectar-se a uma instância.
-
Execute o seguinte comando para instalar o EMR-CLI.
regionId=`curl http://100.100.100.200/latest/meta-data/region-id`; curl https://ecm-repo-${regionId}.oss-${regionId}-internal.aliyuncs.com/emrcli/emrcli.sh -o /tmp/emrcli.sh; chmod 755 /tmp/emrcli.sh; sh /tmp/emrcli.sh install ${regionId}Uma instalação bem-sucedida retorna a seguinte mensagem:
install emrcli success -
Execute o seguinte comando para implantar o cliente de gateway EMR.
emrcli gateway deploy \ --clusterId <ClusterId> \ --appNames <ApplicationName>Substitua os seguintes parâmetros pelos seus valores reais.
Parâmetro
Obrigatório
Descrição
clusterId
Sim
O ID do seu cluster E-MapReduce.
appNames
Não
Os nomes dos aplicativos. Para especificar vários aplicativos, separe os nomes com vírgula (,), por exemplo,
HDFS,YARN.Se este parâmetro for omitido, os clientes para todos os aplicativos compatíveis no cluster, como Hive e HDFS, serão instalados por padrão.
Uma implantação bem-sucedida retorna a seguinte mensagem:
deployGateway successImportanteApós a instalação do gateway, a variável de ambiente do sistema
JAVA_HOMEé definida como/usr/lib/jvm/java-1.8.0. Você pode modificá-la no arquivo /etc/profile.d/emr_env.sh, mas isso pode afetar a funcionalidade do gateway. Proceda com cautela. Faça login novamente na instância ECS para aplicar as novas variáveis de ambiente.
-
Opcional: Configure a resolução DNS para o nó de gateway.
ImportanteEsta etapa é obrigatória se o gateway incluir o serviço Spark.
Adicione uma zona. Para mais informações, consulte Adicionar uma zona autoritativa integrada.
-
Adicione um registro DNS. Para mais informações, consulte Adicionar registros DNS.
A tabela a seguir descreve os parâmetros necessários.
Parâmetro
Descrição
Record type
Use o valor padrão A.
Hostname
Insira o nome do host do nó de gateway, por exemplo, iZ2zea8r0aht2vzbqci****.
Você pode obter o nome do host executando o comando
hostname.Record value
Insira o endereço IP interno do nó de gateway.
Você pode visualizar esse endereço na página de gerenciamento de nós.
TTL value
Use o valor padrão.
Gerenciamento de gateway
Após criar o gateway, caso adicione novos serviços ao cluster associado ou altere configurações de serviço, execute comandos para atualizar componentes do cliente ou sincronizar as configurações mais recentes.
Atualizar componentes do cliente
Se um novo serviço, como Flink, for adicionado ao cluster EMR, instale incrementalmente o cliente correspondente no nó de gateway. O comando deploy sobrescreve as configurações dos aplicativos existentes e instala incrementalmente os novos.
# Example: Add the FLINK client to an existing HDFS and YARN setup
emrcli gateway deploy \
--clusterId <ClusterId> \
--appNames HDFS,YARN,FLINK
Uma atualização bem-sucedida retorna a seguinte mensagem:
deployGateway success
Sincronizar configurações
Se você alterar uma configuração de serviço no cluster EMR (por exemplo, modificar core-site.xml no console E-MapReduce), sincronize manualmente a nova configuração com o nó de gateway.
A sincronização de configurações sobrescreve as configurações existentes no gateway. Proceda com cautela.
# Run the synchronization command
emrcli gateway refreshConfigs \
--clusterId <ClusterId> \
--appNames <ApplicationName> # Optional. Specify the applications to synchronize.
Uma sincronização bem-sucedida retorna a seguinte mensagem:
refreshConfiguration success
Gerenciamento do EMR-CLI
Visualizar versão do EMR-CLI
Execute o seguinte comando para visualizar a versão do EMR-CLI.
emrcli version
O comando retorna informações semelhantes às seguintes:
2.0.0
Atualizar o EMR-CLI
Para atualizar para a versão mais recente, execute novamente a etapa de instalação do EMR-CLI em Implantar um ambiente de gateway pela primeira vez.
FAQ
P: Como troco de cluster de computação?
R: Para trocar de cluster de computação, siga estas etapas:
Para evitar perda de dados, use o comando
mvpara fazer backup manual dos arquivos do cluster antigo. Faça backup do diretório/opt/apps, do diretório/etc/taihao-appse do arquivo/etc/profile.d/yarn.sh.Siga as etapas deste tópico para reimplantar o ambiente de gateway para o novo cluster.
> Instance Settings > Attach/Detach RAM Role