As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Personalização da configuração de clusters e aplicativos com AMI versões anteriores da Amazon EMR
A EMR versão 4.0.0 da Amazon introduziu um método simplificado de configuração de aplicativos usando classificações de configuração. Para obter mais informações, consulte Configurar aplicações. Ao usar uma AMI versão, você configura aplicativos usando ações de bootstrap junto com os argumentos que você passa. Por exemplo, as ações configure-hadoop
e configure-daemons
bootstrap definem o Hadoop e propriedades YARN específicas do ambiente, como. --namenode-heap-size
Em versões mais recentes, elas são configuradas usando as classificações de configuração hadoop-env
e yarn-env
. Para ações de bootstrap que realizam configurações comuns, consulte o emr-bootstrap-actions repositório no Github.
As tabelas a seguir mapeiam as ações de bootstrap para as classificações de configuração nas EMR versões mais recentes da Amazon.
Nome do arquivo de aplicativo afetado | AMIação de bootstrap da versão | Classificação de configuração |
---|---|---|
core-site.xml |
configure-hadoop -c
|
core-site |
log4j.properties |
configure-hadoop -l |
hadoop-log4j |
hdfs-site.xml |
configure-hadoop -s |
hdfs-site
|
n/a | n/a | hdfs-encryption-zones |
mapred-site.xml
|
configure-hadoop -m |
mapred-site |
yarn-site.xml
|
configure-hadoop -y
|
yarn-site |
httpfs-site.xml |
configure-hadoop -t |
httpfs-site |
capacity-scheduler.xml
|
configure-hadoop -z
|
capacity-scheduler |
yarn-env.sh |
configure-daemons --resourcemanager-opts |
yarn-env |
Nome do arquivo de aplicativo afetado | AMIação de bootstrap da versão | Classificação de configuração |
---|---|---|
hive-env.sh |
n/a | hive-env |
hive-site.xml |
hive-script --install-hive-site
${MY_HIVE_SITE_FILE} |
hive-site |
hive-exec-log4j.properties |
n/a | hive-exec-log4j |
hive-log4j.properties |
n/a | hive-log4j |
Nome do arquivo de aplicativo afetado | AMIação de bootstrap da versão | Classificação de configuração |
---|---|---|
emrfs-site.xml |
configure-hadoop -e |
emrfs-site |
n/a | s3get -s s3://custom-provider.jar -d
/usr/share/aws/emr/auxlib/ |
emrfs-site (com nova configuração fs.s3.cse.encryptionMaterialsProvider.uri ) |
Para obter uma lista de todas as classificações, consulte Configurar aplicações.
Variáveis de ambientes de aplicações
Ao usar uma AMI versão, um hadoop-user-env.sh
script é usado junto com a ação configure-daemons
bootstrap para configurar o ambiente Hadoop. O script inclui as seguintes ações:
#!/bin/bash export HADOOP_USER_CLASSPATH_FIRST=true; echo "HADOOP_CLASSPATH=/path/to/my.jar" >> /home/hadoop/conf/hadoop-user-env.sh
Na EMR versão 4.x da Amazon, você faz o mesmo usando a classificação de hadoop-env
configuração, conforme mostrado no exemplo a seguir:
[ { "Classification":"hadoop-env", "Properties":{ }, "Configurations":[ { "Classification":"export", "Properties":{ "HADOOP_USER_CLASSPATH_FIRST":"true", "HADOOP_CLASSPATH":"/path/to/my.jar" } } ] } ]
Como outro exemplo, usar configure-daemons
e transmitir --namenode-heap-size=2048
e --namenode-opts=-XX:GCTimeRatio=19
é equivalente às seguintes classificações de configuração.
[ { "Classification":"hadoop-env", "Properties":{ }, "Configurations":[ { "Classification":"export", "Properties":{ "HADOOP_DATANODE_HEAPSIZE": "2048", "HADOOP_NAMENODE_OPTS": "-XX:GCTimeRatio=19" } } ] } ]
As outras variáveis do ambiente de aplicativos não são mais definidas em /home/hadoop/.bashrc
. Em vez disso, elas são definidas nos arquivos /etc/default
por componente ou aplicativo, como por exemplo /etc/default/hadoop
. Os scripts de wrapper /usr/bin/
instalados pelo aplicativo também RPMs podem definir variáveis de ambiente adicionais antes de envolver o script bin real.
Portas de serviço
Ao usar uma AMI versão, alguns serviços usam portas personalizadas.
Configuração | AMIversão 3.x | Padrão de código aberto |
---|---|---|
fs.default.name | hdfs://IP: 9000 emrDetermined | padrão (hdfs: emrDeterminedIP //:8020) |
dfs.datanode.address | 0.0.0.0:9200 | default (0.0.0.0:50010) |
dfs.datanode.http.address | 0.0.0.0:9102 | default (0.0.0.0:50075) |
dfs.datanode.https.address | 0.0.0.0:9402 | default (0.0.0.0:50475) |
dfs.datanode.ipc.address | 0.0.0.0:9201 | default (0.0.0.0:50020) |
dfs.http.address | 0.0.0.0:9101 | default (0.0.0.0:50070) |
dfs.https.address | 0.0.0.0:9202 | default (0.0.0.0:50470) |
dfs.secondary.http.address | 0.0.0.0:9104 | default (0.0.0.0:50090) |
yarn.nodemanager.address | 0.0.0.0:9103 | default (${yarn.nodemanager.hostname}:0) |
yarn.nodemanager.localizer.address | 0.0.0.0:9033 | default (${yarn.nodemanager.hostname}:8040) |
yarn.nodemanager.webapp.address | 0.0.0.0:9035 | default (${yarn.nodemanager.hostname}:8042) |
yarn.resourcemanager.address | emrDeterminedIP : 9022 |
default (${yarn.resourcemanager.hostname}:8032) |
yarn.resourcemanager.admin.address | emrDeterminedIP : 9025 |
default (${yarn.resourcemanager.hostname}:8033) |
yarn.resourcemanager.resource-tracker.address | emrDeterminedIP : 9023 |
default (${yarn.resourcemanager.hostname}:8031) |
yarn.resourcemanager.scheduler.address | emrDeterminedIP : 9024 |
default (${yarn.resourcemanager.hostname}:8030) |
yarn.resourcemanager.webapp.address | 0.0.0.0:9026 | default (${yarn.resourcemanager.hostname}:8088) |
yarn.web-proxy.address | emrDeterminedIP : 9046 |
default (no-value) |
yarn.resourcemanager.hostname | 0.0.0.0 (default) | emrDeterminedIP |
nota
emrDeterminedIP
É um endereço IP gerado pela AmazonEMR.
Usuários
Ao usar uma AMI versão, o usuário hadoop
executa todos os processos e possui todos os arquivos. Na EMR versão 4.0.0 e posterior da Amazon, os usuários existem no nível do aplicativo e do componente.
Sequência de instalação, artefatos instalados e locais dos arquivos de log
Ao usar uma AMI versão, os artefatos do aplicativo e seus diretórios de configuração são instalados no /home/hadoop/
diretório. Por exemplo, se você tivesse o Hive instalado, o diretório seria application
/home/hadoop/hive
. Na EMR versão 4.0.0 e posterior da Amazon, os artefatos do aplicativo são instalados no /usr/lib/
diretório. Ao usar uma AMI versão, os arquivos de log são encontrados em vários lugares. A tabela a seguir lista os locais.application
Daemon ou aplicação | Local do diretório |
---|---|
instance-state | nodo/ /instance-state/ instance-id |
hadoop-hdfs-namenode | instance-id daemons///.log hadoop-hadoop-namenode |
hadoop-hdfs-datanode | instance-id daemons///.log hadoop-hadoop-datanode |
fio de hadoop () ResourceManager | instance-id daemons//yarn-hadoop-resourcemanager |
hadoop-yarn (Proxy Server) | instance-id daemons//yarn-hadoop-proxyserver |
mapred-historyserver | instance-id daemons// |
httpfs | instance-id daemons/ /httpfs.log |
hive-server | node/ /hive-server/hive-server.log instance-id |
hive-metastore | node/ /apps/hive.log instance-id |
Colmeia CLI | node/ /apps/hive.log instance-id |
YARNregistros de usuários de aplicativos e registros de contêineres | task-attempts/ |
Mahout | N/D |
Pig | N/D |
spark-historyserver | N/D |
Arquivos de histórico de trabalhos do mapreduce | jobs/ |
Executor de comandos
Ao usar uma AMI versão, muitos scripts ou programas, por exemplo/home/hadoop/contrib/streaming/hadoop-streaming.jar
, não são colocados no ambiente do caminho de login do shell, então você precisa especificar o caminho completo ao usar um arquivo jar, como command-runner.jar ou script-runner.jar, para executar os scripts. Ele command-runner.jar
está localizado noAMI, portanto, não há necessidade de saber a totalidadeURI, como foi o caso comscript-runner.jar
.
Fator de replicação
O fator de replicação permite que você configure quando iniciar um JVM Hadoop. Você pode iniciar um novo Hadoop JVM para cada tarefa, o que proporciona melhor isolamento de tarefas, ou você pode compartilhar JVMs entre tarefas, proporcionando menor sobrecarga da estrutura. Se você estiver processando muitos arquivos pequenos, faz sentido reutilizá-los JVM várias vezes para amortizar o custo de inicialização. No entanto, se cada tarefa levar muito tempo ou processar uma grande quantidade de dados, você poderá optar por não reutilizá-las JVM para garantir que toda a memória seja liberada para tarefas subsequentes. Ao usar uma AMI versão, você pode personalizar o fator de replicação usando a ação configure-hadoop
bootstrap para definir a mapred.job.reuse.jvm.num.tasks
propriedade.
O exemplo a seguir demonstra a configuração do fator de JVM reutilização para reutilização infinitaJVM.
nota
Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).
aws emr create-cluster --name "
Test cluster
" --ami-version3.11.0
\ --applications Name=Hue
Name=Hive
Name=Pig
\ --use-default-roles --ec2-attributes KeyName=myKey
\ --instance-groups InstanceGroupType=MASTER
,InstanceCount=1
,InstanceType=m3.xlarge
\ InstanceGroupType=CORE
,InstanceCount=2
,InstanceType=m3.xlarge
\ --bootstrap-actions Path=s3://elasticmapreduce/bootstrap-actions/configure-hadoop
,\ Name="Configuring infinite JVM reuse"
,Args=["-m","mapred.job.reuse.jvm.num.tasks=-1"
]