O DataWorks permite registrar um cluster DataLake do EMR como mecanismo de computação EMR. Em seguida, crie nós para services como Hive, MapReduce, Presto e Spark SQL. Assim, configure workflows, agende jobs e gerencie metadados das suas tarefas do EMR. Este tópico aborda as melhores práticas para configurar um cluster DataLake e executar tarefas do EMR no DataWorks.
Contexto
Ao executar tarefas do EMR no DataWorks, utilize diversos componentes do EMR, cada um com sua configuração ideal. Para mais informações, consulte Configure EMR components.
As opções de armazenamento de metadados disponíveis para suas tarefas do EMR dependem do modo do seu workspace do DataWorks. Para mais informações, consulte Escolha uma solução de armazenamento de metadados.
Consulte o DataWorks on EMR user guide para entender o processo de desenvolvimento e os pontos de atenção ao usar clusters DataLake com jobs do EMR no DataWorks.
Configuração de componentes do EMR
-
Kyuubi
Para ambientes de produção, recomendamos definir a memória de
kyuubi_java_optscomo 10g ou superior e a dekyuubi_beeline_optscomo 2g ou superior. -
Spark
Por padrão, o componente Spark possui uma alocação de memória reduzida. Adicione configurações de memória ao comando
spark-submitpara ajustar essa alocação conforme sua carga de trabalho.De acordo com o tamanho do seu cluster EMR, ajuste as seguintes propriedades do Spark para valores adequados:
spark.driver.memory,spark.driver.memoryOverheadespark.executor.memory.
ImportanteNo DataWorks, a linhagem é suportada apenas para nós EMR Hive, EMR Spark e EMR Spark SQL. Enquanto os nós EMR Hive oferecem linhagem no nível de tabela e de coluna, os nós baseados em Spark suportam apenas linhagem no nível de tabela.
No caso do Spark, apenas a versão 2.x oferece suporte a linhagem. A versão 3.x não inclui esse recurso.
Para mais detalhes sobre a configuração do Spark, consulte Gerenciamento de memória do Spark.
-
HDFS
Conforme o tamanho do seu cluster EMR, defina valores apropriados para os seguintes parâmetros do HDFS:
hadoop_namenode_heapsize,hadoop_datanode_heapsize,hadoop_secondary_namenode_heapsizeehadoop_namenode_opts.
Seleção de armazenamento de metadados
Para isolar os ambientes de desenvolvimento e produção em um workspace do DataWorks no modo padrão, registre dois clusters EMR distintos na seção do DataWorks: um para o ambiente de desenvolvimento e outro para o ambiente de produção. Além disso, para garantir o isolamento dos dados, armazene os metadados dos dois clusters em bancos de dados separados do ApsaraDB RDS.