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儲存。