若您需要在DataWorks中開發Spark SQL作業,可以通過註冊CDH叢集的方式,將的Spark Distribution SQL Engine服務註冊為一種支援SQL的執行引擎,從而滿足您在DataWorks中使用Spark Distribution SQL Engine開發Spark SQL作業的業務需求。
前提條件
AnalyticDB for MySQL叢集的產品系列為湖倉版。
已在AnalyticDB for MySQL叢集中建立Job型資源群組。具體操作,請參見建立資源群組。
已建立AnalyticDB for MySQL叢集的資料庫帳號。
如果是通過阿里雲帳號訪問,只需建立高許可權帳號。具體操作,請參見建立高許可權帳號。
如果是通過RAM使用者訪問,需要建立高許可權帳號和普通帳號並且將RAM使用者綁定到普通帳號上。具體操作,請參見建立資料庫帳號和綁定或解除綁定RAM使用者與資料庫帳號。
已建立DataWorks工作空間。具體操作,請參見建立工作空間。
已購買DataWorks新版通用型資源群組(推薦)或舊版獨享調度資源群組。
DataWorks資源群組購買後,預設與其他雲產品網路不連通。在對接使用CDH時,需先保障CDH叢集和資源群組間網路連通,才可進行後續相關操作。
說明(推薦)新版資源群組為通用型資源群組,可滿足多種任務類型(例如,資料同步、任務調度)的情境應用,購買詳情請參見新增和使用Serverless資源群組。新使用者(即在當前地區未開通過任意版本DataWorks的使用者)僅支援購買新版資源群組。
若您已購買過舊版獨享調度資源群組,也可使用該資源群組運行CDH或CDP任務。詳情請參見使用獨享調度資源群組。
背景資訊
DataWorks提供了與CDH(Cloudera’s Distribution Including Apache Hadoop,以下簡稱CDH)叢集對接的能力,您可在DataWorks中註冊CDH叢集,進行任務開發、調度、資料地圖(中繼資料管理)和資料品質等一系列的資料開發和治理操作。Spark Distribution SQL Engine是Spark內建的分布式SQL執行引擎,您可以在DataWorks中以註冊CDH叢集的方式,將Spark Distribution SQL Engine註冊為支援SQL的一種執行引擎,從而能夠在DataWorks中通過Spark Distribution SQL Engine來執行SQL。
AnalyticDB for MySQL叢集支援啟動多個Spark Distribution SQL Engine,因此您也可以根據自己需求啟動不同配置的Spark Distribution SQL Engine並託管到DataWorks,以滿足不同的業務需求。
操作步驟
步驟一:啟動Spark Distribution SQL Engine
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。
在左側導覽列,單擊
。在編輯器視窗上方,選擇Job型資源群組,作業類型選擇SQLEngine。
在編輯器中輸入以下作業內容。
重要DataWorks不支援攜帶使用者名稱和密碼的Spark Distribution SQL Engine,因此在啟動Spark Distribution SQL Engine時請勿配置
spark.kubernetes.driverEnv.HIVE_SERVER2_USER
和spark.kubernetes.driverEnv.HIVE_SERVER2_PASSWORD
參數。-- Here is just an example of start Spark SQLEngine. Modify the content and run your spark program. CONF spark.driver.resourceSpec=medium; CONF spark.executor.instances=1; CONF spark.executor.resourceSpec=small; CONF spark.app.name=Spark SQLEngine; CONF spark.sql.hive.metastore.version=adb; CONF spark.adb.sessionTTLSeconds=2147483647;
參數說明:
參數
是否必填
說明
spark.app.name
是
Spark應用程式名稱。
spark.sql.hive.metastore.version
是
指定採用中繼資料服務版本,支援如下配置:
adb:串連AnalyticDB for MySQL中的中繼資料資訊。
<hive_version>:指定Hive MetaStore的版本。
說明Spark支援的Hive版本,請參見Spark Configuration。
如需要串連自建的Hive Metastore,可以採用社區Spark的標準配置方式。請參見Spark Configuration。
spark.adb.sessionTTLSeconds
否
Spark Distribution SQL Engine銷毀時間。單位為秒(s),預設值為1200秒。即最後一個SQL代碼塊執行完畢,1200秒後Spark Distribution SQL Engine服務會自動銷毀。
重要Spark Distribution SQL Engine銷毀後,重啟Spark Distribution SQL Engine時,會重建一個新的串連地址。
如果您需要在DataWorks中長期使用Hive時,請將
spark.adb.sessionTTLSeconds
參數配置為2147483647
,避免Spark Distribution SQL Engine長時間沒有執行SQL而自動銷毀。
其他參數,請參見Spark應用配置參數說明。
步驟二:擷取網域名稱串連地址
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。
在左側導覽列,單擊
。在應用列表頁簽中,單擊目標Spark應用操作列的詳情,擷取Spark Distribution SQL Engine的網域名稱地址,即
Spark JDBC Public Connect URL
對應的地址。
步驟二:在DataWorks中註冊Spark Distribution SQL Engine
進入管理中心頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的管理中心,在下拉框中選擇對應工作空間後單擊進入管理中心。
在左側導覽列單擊,選擇CDH,進入叢集註冊頁面。
在註冊CDH叢集頁面,配置如下參數:
配置參數
說明
叢集顯示名稱
定義叢集在DataWorks的名稱,名稱必須唯一。
叢集版本
選擇註冊的叢集版本。
請選擇CDH 6.3.2。
叢集名稱
用於確定當前所註冊叢集的配置資訊來源。可選擇其他工作空間登入的叢集或建立叢集:
登入叢集:當前所註冊叢集的配置資訊,直接引用其他工作空間登入叢集的配置資訊。
建立叢集:當前註冊叢集的配置資訊需您自行配置。
版本選擇
Hive的版本號碼。請選擇2.1.1。
HiveServer2
HiveServer2地址。請填寫步驟二中啟動Spark Distribution SQL Engine後擷取的網域名稱串連地址。詳情請參見步驟二:擷取網域名稱串連地址。
重要網域名稱地址中的
{database name}
需替換為實際的資料庫名。Metastore
Hive Metastore地址。請填寫步驟二中啟動Spark Distribution SQL Engine後擷取的網域名稱串連地址。詳情請參見步驟二:擷取網域名稱串連地址。
重要網域名稱地址中的
{database name}
需替換為實際的資料庫名。預設訪問方式
用於配置在DataWorks運行CDH叢集任務時,使用什麼帳號訪問CDH叢集。詳情請參見配置叢集預設訪問身份。
單擊完成註冊。
步驟三:在DataWorks中使用Spark Distribution SQL Engine執行SQL
進入資料開發頁面。
登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的 ,在下拉框中選擇對應工作空間後單擊進入資料開發。
建立商務程序。
您可使用如下兩種方式建立:
方式一:滑鼠移至上方至表徵圖,單擊建立商務程序。
方式二:按右鍵資料開發左側分類樹的商務程序,選擇建立商務程序。
在彈出的建立商務程序對話方塊中,配置商務程序的名稱及描述,單擊建立。
本文樣本建立名為
Sparktest
的商務程序。建立節點。
展開商務程序
Sparktest
的子目錄,並單擊CDH。按右鍵資料開發,選擇 。
配置節點引擎執行個體、名稱等資訊。
單擊確認。
節點建立完成後,在右側代碼框中輸入SQL語句,單擊按鈕執行。
SHOW TABLES;
返回結果:
+-----------+-----------+-------------+ | namespace | tableName | isTemporary | +-----------+-----------+-------------+ | db | test | false | +-----------+-----------+-------------+