若您需要在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 | +-----------+-----------+-------------+