全部产品
Search
文档中心

大数据开发治理平台 DataWorks:DataWorks on EMR集群配置最佳实践

更新时间:Jun 25, 2024

DataWorks支持注册EMR(E-MapReduce)的DataLake(新版数据湖)集群为EMR计算引擎,创建Hive、MR、Presto和Spark SQL等节点,实现EMR任务工作流的配置、定时调度和元数据管理等功能,帮助EMR用户更好地产出数据。本文为您介绍在DataWorks上运行EMR任务时所使用DataLake集群的最优配置。

背景信息

  • 在DataWorks运行EMR任务时可选择多种EMR组件,不同组件运行任务时的最优配置存在差异,您可根据实际情况选择。详情请参见EMR组件配置

  • 在DataWorks运行EMR任务时,可根据所选DataWorks工作空间的模式,选择不同的元数据存储,详情请参见元数据存储选择

使用DataLake(新版数据湖)集群在DataWorks上进行EMR作业的注意事项及开发流程,详情请参见DataWorks On EMR开发流程(必读)

EMR组件配置

  • Kyuubi组件

    在生产环境配置Kyuubi组件时,建议将kyuubi_java_opts内存大小调整至10g及以上;将kyuubit_beeline_opts内存大小调整至2g及以上。

  • Spark组件

    • 由于Spark组件内存默认值较小,您可在spark-submit命令行中添加设置内存大小的命令,修改内存默认值为合适大小。

    • 您可根据所使用的EMR集群规模情况调整Spark组件以下配置项:spark.driver.memoryspark.driver.memoryOverheadspark.executor.memory至合适大小。

    重要
    • 仅DataWorks的EMR Hive、EMR Spark及EMR Spark SQL节点支持血缘功能。其中,EMR Hive节点支持表及列血缘,Spark类型节点仅支持表血缘。

    • 针对Spark组件,仅Spark 2.x版本支持血缘功能,Spark 3.x版本不支持。

    更多Spark组件的配置详情,请参见Spark Memory Management

  • HDFS

    您可根据所使用的EMR集群规模情况调整HDFS的以下配置项:hadoop_namenode_heapsizehadoop_datanode_heapsizehadoop_secondary_namenode_heapsizehadoop_namenode_opts至合适大小。

元数据存储选择

若要实现DataWorks标准模式工作空间的开发环境与生产环境隔离机制,您需在DataWorks管理中心 > 开源集群配置处,为开发环境和生产环境注册两个不同的EMR集群。同时,为满足数据隔离要求,两个集群的元数据需使用如下方式存储:

  • 方式一(数据湖方案推荐):使用数据湖构建DLF(Data Lake Formation)的两个不同数据目录Catalog存储。

  • 方式二:使用阿里云关系型数据库RDS(Relational Database Service)的两个不同数据库DataBase存储。