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á.
Executar trabalhos de ETL do Spark com tempos de inicialização reduzidos
O AWS Glue versão 2.0 ou posterior fornece uma infraestrutura atualizada para executar trabalhos de ETL (extração, transformação e carregamento) do Apache Spark no AWS Glue com tempos de inicialização reduzidos. Com os tempos de espera reduzidos, os engenheiros de dados podem ser mais produtivos e aumentar sua interatividade com o AWS Glue. A variação reduzida nos horários de início do trabalho pode ajudar a atender ou exceder seus SLAs de disponibilização de dados para análise.
Para usar esse recurso com seus trabalhos de ETL do AWS Glue, escolha a versão 2.0
ou posterior para Glue version
ao criar seus trabalhos.
Novos recursos compatíveis
Esta seção descreve os novos recursos com suporte pelo AWS Glue versão 2.0 e posteriores.
Compatível com especificação de módulos do Python adicionais no nível do trabalho
O AWS Glue versão 2.0 e posteriores também permite que você forneça módulos do Python adicionais ou versões diferentes no nível do trabalho. Você pode usar a opção --additional-python-modules
com uma lista de módulos do Python separados por vírgulas para adicionar um novo módulo ou alterar a versão de um existente.
Por exemplo, para atualizar ou adicionar um novo módulo scikit-learn
, use a seguinte chave-valor: "--additional-python-modules", "scikit-learn==0.21.3"
.
Além disso, dentro da opção --additional-python-modules
, você pode especificar um caminho do Amazon S3 para um módulo wheel do Python. Por exemplo:
--additional-python-modules s3://aws-glue-native-spark/tests/j4.2/ephem-3.7.7.1-cp37-cp37m-linux_x86_64.whl,s3://aws-glue-native-spark/tests/j4.2/fbprophet-0.6-py3-none-any.whl,scikit-learn==0.21.3
O AWS Glue usa o Python Package Installer (pip3) para instalar os módulos adicionais. Você pode passar opções adicionais especificadas pelo python-modules-installer-option
para o pip3, para instalar os módulos. Qualquer incompatibilidade ou limitação do pip3 será aplicada.
Módulos do Python já fornecidos no AWS Glue versão 2.0
O AWS Glue versão 2.0 já vem com suporte aos seguintes módulos do Python:
setuptools—45.2.0
subprocess32—3.5.4
ptvsd—4.3.2
pydevd—1.9.0
PyMySQL—0.9.3
docutils—0.15.2
jmespath—0.9.4
six—1.14.0
python_dateutil—2.8.1
urllib3—1.25.8
botocore—1.15.4
s3transferi—0.3.3
boto3—1.12.4
certifi—2019.11.28
chardet—3.0.4
idna—2.9
requests—2.23.0
pyparsing—2.4.6
enum34—1.1.9
pytz—2019.3
numpy—1.18.1
cycler—0.10.0
kiwisolver—1.1.0
scipy—1.4.1
pandas—1.0.1
pyarrow—0.16.0
matplotlib—3.1.3
pyhocon—0.3.54
mpmath—1.1.0
sympy—1.5.1
patsy—0.5.1
statsmodels—0.11.1
fsspec—0.6.2
s3fs—0.4.0
Cython—0.29.15
joblib—0.14.1
pmdarima—1.5.3
scikit-learn—0.22.1
tbats—1.0.9
Comportamento de registro em log
O AWS Glue versão 2.0 e posteriores oferece suporte a um comportamento de registro em log padrão diferente. As diferenças incluem:
O registro ocorre em tempo real.
Existem transmissões separadas para drivers e executores.
Para cada driver e executor, existem duas transmissões: a de saída e a de erro.
Fluxos de driver e executor
As transmissões de driver são identificadas pelo ID de execução do trabalho. As transmissões de executor são identificadas pelo trabalho <id de execução
>_<id da tarefa do executor
>. Por exemplo:
"logStreamName": "jr_8255308b426fff1b4e09e00e0bd5612b1b4ec848d7884cebe61ed33a31789..._g-f65f617bd31d54bd94482af755b6cdf464542..."
Fluxos de saída e de erros
A transmissão de saída tem a saída padrão (stdout) do seu código. A transmissão de erros tem mensagens de registro em log do seu código/biblioteca.
Transmissões de log:
As transmissões de log de driver têm <
jr
>, em que <jr
> é o ID da execução do trabalho.As transmissões de log de executor têm <
jr
>_<g
>, em que <g
> é o ID da tarefa para o executor. Você pode procurar o ID da tarefa do executor no log de erros do driver.
Os grupos de logs padrão para o AWS Glue versão 2.0 são os seguintes:
/aws-glue/jobs/logs/output
para a saída/aws-glue/jobs/logs/error
para erros
Quando uma configuração de segurança é fornecida, os nomes de grupos de logs mudam para:
/aws-glue/jobs/<
security configuration
>-role/<Role Name
>/output/aws-glue/jobs/<
security configuration
>-role/<Role Name
>/error
No console, o link Logs aponta para o grupo de logs de saída e o link Error (Erro) aponta para o grupo de logs de erros. Quando o registro em log contínuo está habilitado, os links Logs apontam para o grupo de logs contínuo e o link Output (Saída) aponta para o grupo de logs de saída.
Regras de registro em log
nota
O nome do grupo de logs padrão para registro em log contínuo é /aws-glue/jobs/logs-v2
.
No AWS Glue versão 2.0 e posteriores, o registro em log contínuo tem o mesmo comportamento que no AWS Glue versão 1.0:
Grupo de logs padrão:
/aws-glue/jobs/logs-v2
Transmissão de log do driver: <
jr
>-driverTransmissão de log do executor: <
jr
>-<ID do executor
>O nome do grupo de logs pode ser alterado ao definir
--continuous-log-logGroupName
O nome das transmissões de log pode ser prefixado definindo
--continous-log-logStreamPrefix
Recursos não compatíveis
Os seguintes recursos do AWS Glue não são suportados:
Endpoints de desenvolvimento
O AWS Glue versão 2.0 e posteriores não é executado no Apache YARN, portanto, as configurações do YARN não se aplicam
O AWS Glue versão 2.0 e posteriores não tem um Hadoop Distributed File System (HDFS)
O AWS Glue versão 2.0 e posteriores não usa alocação dinâmica, portanto, as métricas ExecutorAllocationManager não estão disponíveis
Para trabalhos do AWS Glue versão 2.0 e posteriores, especifique o número de operadores e o tipo de operador, mas não especifique uma
maxCapacity
.-
O AWS Glue versão 2.0 e posteriores não suporta
s3n
fora da caixa. Recomendamos usars3
ous3a
. Se os trabalhos precisarem usars3n
por qualquer motivo, você poderá usar o seguinte argumento adicional:--conf spark.hadoop.fs.s3n.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem