Execute um script em vários nós de um cluster existente para instalar software, configurar serviços ou baixar dados do Object Storage Service (OSS). Este recurso destina-se a clusters de longa duração. Para clusters temporários, use ações de bootstrap. Para mais informações, consulte Usar ações de bootstrap para executar scripts.
Casos de uso comuns:
Instalar pacotes com Yellowdog Updater, Modified (YUM)
Baixar software da Internet
Ler dados do OSS
Instalar e executar serviços que exigem scripts complexos, como o componente Pig
Pré-requisitos
Antes de começar, verifique se você tem:
Um cluster E-MapReduce no estado Running. A execução de scripts não é possível em outros estados. Para criar um cluster, consulte Criar um cluster.
Um script carregado no OSS. Para visualizar um exemplo, consulte Exemplo.
Limitações
|
Limitação |
Detalhes |
|
Período de retenção |
O sistema mantém os registros de execução de script por até 60 dias. |
|
Concorrência |
Apenas um script pode ser executado por vez em um cluster. Não envie um novo script durante uma execução em andamento. |
|
Falha parcial |
Um script pode ter êxito em alguns nós e falhar em outros. Após resolver o problema, execute novamente o script apenas nos nós com falha. Depois de um scale-out, execute o script somente nos novos nós. |
Executar um script manualmente
Faça login no console EMR. No painel de navegação à esquerda, clique em EMR on ECS.
Na barra de navegação superior, selecione uma região e um grupo de recursos.
Localize o cluster desejado e clique em Services na coluna Actions.
Clique na aba Script Operation e, em seguida, na aba Manual Execution.
Clique em Create And Execute.
-
Na caixa de diálogo, configure os parâmetros a seguir e clique em OK.
Parâmetro
Descrição
Name
Nome do script.
Script Location
Caminho do script no OSS. O caminho deve seguir o formato oss:///.sh.
Execution Scope
Nós onde o script será executado. Teste primeiro em um único nó. Após o teste bem-sucedido, execute o script em todo o cluster.
NotaAo usar o recurso de script de cluster, teste o script em um único nó antes de executá-lo em todo o cluster.
O caminho do script deve estar no formato oss://**/*.sh.
Após clicar em OK, o script é adicionado à lista de scripts com o status Running.
Verificar o resultado da execução
Depois de criar o script, monitore-o e gerencie-o na lista de scripts.
|
Ação |
Como fazer |
|
Visualizar detalhes do script |
Clique em Details na coluna Actions. |
|
Visualizar status por nó |
Clique em View Execution Result. |
|
Excluir o script |
Clique em Delete na coluna Actions. |
Status gerais do script: Running, Complete, Submit Failed
Status por nó: Waiting, Running, Complete, Failed, Submit Failed, Canceled
Exemplo
Os exemplos a seguir mostram padrões comuns de scripts. Por padrão, os scripts são executados como usuário root. Para alternar para o usuário hadoop, adicione su hadoop ao seu script.
Baixar um arquivo do OSS e descompactá-lo
#!/bin/bash
osscmd --id=<yourAccessKeyId> --key=<yourAccessKeySecret> --host=oss-cn-hangzhou-internal.aliyuncs.com get oss://<yourBucketName>/<yourFile>.tar.gz ./<yourFile>.tar.gz
mkdir -p /<yourDir>
tar -zxvf <yourFile>.tar.gz -C /<yourDir>
Substitua os seguintes espaços reservados pelos valores reais:
|
Espaço reservado |
Descrição |
|
|
Seu AccessKey ID da Alibaba Cloud |
|
|
Seu AccessKey Secret da Alibaba Cloud |
|
|
Nome do bucket do OSS |
|
|
Nome do arquivo (sem a extensão |
|
|
Diretório local onde o arquivo será descompactado |
Para o parâmetro --host, use o endpoint do OSS correspondente ao seu tipo de rede:
Endpoint interno (rede clássica):
oss-cn-hangzhou-internal.aliyuncs.comEndpoint VPC:
vpc100-oss-cn-hangzhou.aliyuncs.com
Instalar um pacote de sistema com YUM
#!/bin/bash
yum install -y ld-linux.so.2