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.memory
、spark.driver.memoryOverhead
、spark.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_heapsize
、hadoop_datanode_heapsize
、hadoop_secondary_namenode_heapsize
、hadoop_namenode_opts
至合适大小。
元数据存储选择
若要实现DataWorks标准模式工作空间的开发环境与生产环境隔离机制,您需在DataWorks
配置处,为开发环境和生产环境注册两个不同的EMR集群。同时,为满足数据隔离要求,两个集群的元数据需使用如下方式存储:方式一(数据湖方案推荐):使用数据湖构建DLF(Data Lake Formation)的两个不同数据目录Catalog存储。
方式二:使用阿里云关系型数据库RDS(Relational Database Service)的两个不同数据库DataBase存储。