Hadoop計算源用於綁定Dataphin專案空間與Hadoop專案,為Dataphin專案提供處理離線計算任務的計算源。如果Dataphin系統的計算引擎設定為Hadoop,則只有專案空間添加了Hadoop計算源,才支援規範建模、即席查詢、Hive任務、泛型指令碼等功能。本文為您介紹如何建立Hadoop計算源。
前提條件
在您開始執行操作前,請確認已滿足以下要求:
已設定Dataphin計算引擎為Hadoop。如何設定,請參見設定計算引擎為Hadoop。
確保Hive的使用者具有以下的許可權:
CREATEFUNCTION許可權。
重要只有具備CREATEFUNCTION許可權,才可以通過Dataphin在Hive上註冊自訂函數。如果沒有該許可權,則不可以通過Dataphin建立自訂函數,也不能使用Dataphin的資產安全功能。
HDFS上UDF的存放目錄的讀、寫、執行許可權。
HDFS上UDF存放目錄預設為
/tmp/dataphin,您也可以修改HDFS上UDF存放目錄。
若您需開啟Impala任務進行快速查詢和分析資料,請您提前在Hadoop叢集上部署Impala(Impala v2.5及以上版本)。
在E-MapReduce5.x計算引擎下,若您需要使用基於OSS建立的Hive外部表格進行離線整合。您需要進行相關配置後,才可以正常使用。配置說明,請參見使用基於OSS建立的Hive外部表格進行離線整合。
Impala任務使用限制
若您需開啟Impala任務進行快速查詢和分析資料。在Dataphin中存在以下限制:
僅支援Impala v2.5及以上版本。
邏輯表暫不支援使用Impala引擎,但您可使用Impala查詢邏輯表。
Dataphin的Impala資料來源及計算源使用Impala的JDBC用戶端串連Impala的JDBC連接埠(預設為21050),不支援Hive JDBC連接埠。若您需在Dataphin建立Impala任務或Impala資料來源,請您諮詢您的叢集供應商是否支援Impala JDBC串連。
因Hive無法訪問Kudu表,因此存在以下限制:
Hive SQL無法訪問Kudu表,強制訪問將導致SQL無法正常執行並報錯。報錯資訊:
FAILED: RuntimeException java.lang.ClassNotFoundException: org.apache.Hadoop.hive.kudu.KuduInputFormat。不支援建模的來源表為Kudu表,來源表為Kudu表時無法正常執行。
安全識別掃描任務使用Impala SQL進行Kudu表的掃描,若掃描任務所在的專案未開啟Impala,則不支援Kudu表的掃描。
品質規則執行時若為Kudu表,將使用Impala SQL進行校正;若未開啟Impala,則將導致校正任務失敗報錯。
標籤平台不支援Kudu表作為離線視圖表。
不支援擷取Kudu表的儲存量。
在資產詳情中不支援擷取Kudu表的儲存量資訊。
資源治理的空表治理項不支援Kudu表。
Kudu表不支援表大小、表分區大小品質規則。
Spark SQL服務使用限制
若您需開啟Spark SQL服務。在Dataphin中存在以下限制:
目前僅支援Spark V3.x 版本。
Spark Thrift Server服務、Kyuubi服務或Livy服務需要提前在Hadoop叢集上進行部署及開啟服務。
Dataphin對Spark Call命令不做資料許可權的校正,請注意謹慎開啟和使用。
生產和開發計算源的Spark SQL配置中,服務配置需要保持一致。若不一致,則不可配置Spark SQL任務的Spark資源設定。
計算引擎與支援的服務類型
不同計算引擎支援的服務類型不同。詳情如下
計算引擎類型 | Spark Thrift Server | Kyuubi | Livy | MapReduce(MRS) |
E-MapReduce3.x | 支援 | 支援 | 不支援 | 不支援 |
E-MapReduce5.x | 支援 | 支援 | 不支援 | 不支援 |
CDH 5.X、CDH 6.X | 不支援 | 支援 | 不支援 | 不支援 |
Cloudera Data Platform | 不支援 | 支援 | 支援 | 不支援 |
FusionInsight 8.X | 不支援 | 不支援 | 不支援 | 支援 |
亞信DP 5.3 | 支援 | 支援 | 不支援 | 不支援 |
操作步驟
在Dataphin首頁的頂部功能表列中,選擇規劃 > 計算源。
在計算源頁面,單擊+新增計算源,選擇Hadoop計算源。
在建立計算源頁面,配置以下參數。
可通過引用指定叢集配置或單獨配置計算源各配置項,不同配置方式所支援的配置項有所不同。
引用指定叢集配置
計算源基本資料
參數
描述
計算源類型
預設為Hadoop。
計算源名稱
命名規則如下:
只能包含中文、英文、數字、底線(_)和短劃線(-)。
長度不能超過64個字元。
配置方式
選擇為引用指定叢集。
資料湖表格式
預設關閉,開啟後,可選擇資料湖表格式。
當計算引擎為Cloudera Data Platform 7.x時,表格式支援Hudi。
當計算引擎為E-MapReduce5.x時,表格式支援Iceberg和Paimon。
說明僅當計算引擎為Cloudera Data Platform 7.x或E-MapReduce5.x時,支援配置此項。
計算源描述
對計算源的簡單描述,長度128個字元以內。
隊列資訊配置
參數
描述
生產任務隊列
填寫yarn資源隊列,生產環境手動及週期性任務運行使用該yarn隊列。
其他任務隊列
填寫yarn資源隊列,其他任務(例如即席查詢、資料預覽、JDBCDriver)訪問使用該yarn隊列。
優先順序任務隊列
可選擇使用生產任務預設隊列或自訂。
當選擇為自訂時,需分別填寫最高優先順序、高優先順序、中優先順序、低優先順序和最低優先順序所對應的yarn資源隊列。
Hive計算引擎配置
參數
描述
連結資訊
可選擇引用叢集配置或單獨配置。
JDBC URL
支援配置以下三種串連地址:
Hive Server的串連地址,格式為
jdbc:hive://{串連地址}:{連接埠}/{資料庫名稱}。ZooKeeper的串連地址。例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2。開啟Kerberos的串連地址,格式為
jdbc:hive2://{串連地址}:{連接埠}/{資料庫名稱};principal=hive/_HOST@xx.com。
說明當連結資訊選擇為單獨配置時,支援修改JDBC URL;當連結資訊選擇為引用叢集配置後,JDBC URL僅支援查看,不支援修改。
資料庫
說明僅當連結資訊選擇為引用叢集配置時,支援設定資料庫。
輸入資料庫名稱。不支援半形句號(.),長度不超過256個字元。
認證方式
說明僅當連結資訊選擇為單獨配置時,支援配置認證方式。
支援無認證、LDAP和Kerberos認證方式。
無認證:無認證方式需填寫Hive服務的使用者名稱。
LDAP:LDAP認證方式需填寫Hive服務的使用者名稱和密碼。
說明無認證和LDAP方式所填寫的使用者須確保具備任務的執行許可權,以保證任務的正常執行。
Kerberos:如果Hadoop叢集有Kerberos認證,則需要開啟Hive Kerberos並上傳Keytab File認證檔案與配置Principal。
Keytab File:上傳keytab檔案,您可以在Hive Server上擷取keytab檔案。
Principal:填寫Hive Keytab File檔案對應的Kerberos認證使用者名稱。
執行引擎
預設:Default:綁定該計算源的專案下的任務(包括邏輯表任務)預設使用該執行引擎。
自訂:選擇其他計算引擎類型。
Spark Jar服務配置
說明當配置方式選擇引用叢集配置,但所引用的叢集未開啟Spark本地用戶端時,不支援配置Spark Jar服務配置。
參數
描述
Spark執行機器
如果Hadoop叢集有部署Spark,則支援開啟Spark Jar任務。
Spark本地用戶端
若引用的叢集已開啟Spark本地用戶端,則此處預設開啟。
單擊關閉後,當前計算源對應專案不可使用Spark本地用戶端。如果當前計算源對應專案中存在使用Spark本地用戶端的任務(包括草稿態任務),則不支援關閉。
Spark SQL服務配置
說明當配置方式選擇引用叢集配置,但所引用的叢集未開啟Spark SQL服務時,不支援配置Spark SQL服務配置。
參數
描述
Spark SQL任務
如果Hadoop叢集有部署Spark,則支援開啟Spark SQL任務。
說明當資料湖表格式已選擇Paimon時,不支援關閉Spark SQL任務。
連結資訊
可選擇引用叢集配置或單獨配置。
Spark版本
目前僅支援3.x。
服務類型
選擇Spark JDBC訪問的目標伺服器類型。不同計算引擎支援的服務類型不同。更多資訊,請參見計算引擎與支援的服務類型。
JDBC URL
Spark的JDBC URL地址。URL的database與Hive JDBC URL中指定的database需相同。
說明當連結資訊選擇為單獨配置時,支援修改JDBC URL;當連結資訊選擇為引用叢集配置後,JDBC URL僅支援查看,不支援修改。
資料庫
說明僅當連結資訊選擇為引用叢集配置時,支援設定資料庫。
輸入資料庫名稱。不支援半形句號(.),長度不超過256個字元。
認證方式
說明僅當連結資訊選擇為單獨配置時,支援設定資料庫。
支援無認證、LDAP和Kerberos認證方式。
無認證:無認證方式需填寫Spark服務的使用者名稱。
LDAP:LDAP認證方式需填寫Spark服務的使用者名稱和密碼。
說明無認證和LDAP方式所填寫的使用者須確保具備任務的執行許可權,以保證任務的正常執行。
Kerberos:如果Hadoop叢集有Kerberos認證,則需要開啟Spark Kerberos並上傳Keytab File認證檔案與配置Principal。
Keytab File:上傳keytab檔案,您可以在Spark Server上擷取keytab檔案。
Principal:填寫Spark Keytab File檔案對應的Kerberos認證使用者名稱。
SQL任務隊列設定
不同服務類型使用不同的任務SQL任務隊列。詳情如下:
Spark Thrift Server:不支援設定任務隊列。
Kyuubi:使用HDFS資訊配置的優先順序隊列設定,僅當Kyuubi使用Yarn作為資源調度時生效,生產任務使用Connection共用層級。
Livy:使用HDFS資訊配置的優先順序隊列設定,僅當Livy使用Yarn作為資源調度時生效,即席查詢及生產任務均使用新的Connection的執行。
MapReduce(MRS):使用HDFS資訊配置的優先順序隊列設定。
Impala任務配置
說明當配置方式選擇引用叢集配置,但所引用的叢集未開啟Impala任務時,不支援配置Impala任務服務配置。
參數
描述
Impala任務
如果Hadoop叢集有部署Impala,則支援開啟Impala任務。
連結資訊
可選擇引用叢集配置或單獨配置。
JDBC URL
請輸入Impala的JDBC串連地址。如
jdbc:Impala://host:port/database。JDBC URL中的Database需要與Hive JDBC中的Database保持一致。說明當連結資訊選擇為單獨配置時,支援修改JDBC URL;當連結資訊選擇為引用叢集配置後,JDBC URL僅支援查看,不支援修改。
資料庫
說明僅當連結資訊選擇為引用叢集配置時,支援設定資料庫。
輸入資料庫名稱。不支援半形句號(.),長度不超過256個字元。
認證方式
說明僅當連結資訊選擇為單獨配置時,支援設定資料庫。
支援無認證、LDAP、Kerberos認證方式。
無認證:無認證方式需填寫Impala使用者名稱。
LDAP:LDAP認證方式需填寫Impala的使用者名稱和密碼。
Kerberos:Kerberos認證方式需上傳Keytab File認證檔案與配置Principal。
開發工作單位請求池
請輸入用於開發工作單位的Impala請求池(request pool)名稱。
周期工作要求池
請輸入用於周期任務的Impala請求池(request pool)名稱。
優先順序任務隊列
支援採取周期任務預設隊列和自訂。
Dataphin在調度Impala SQL任務時會根據任務的優先順序將任務發送到相應的隊列執行。優先順序包括最高優先順序、高優先順序、中優先順序、低優先順序、最低優先順序。
自訂優先順序任務隊列時,日調度邏輯表任務預設使用中優先順序任務隊列;年、月調度邏輯表任務預設使用低優先順序任務隊列。
單獨配置
計算源基本資料
參數
描述
計算源類型
預設為Hadoop。
計算源名稱
命名規則如下:
只能包含中文、英文、數字、底線(_)和短劃線(-)。
長度不能超過64個字元。
配置方式
選擇為單獨配置。
資料湖表格式
預設關閉,開啟開關後,可選擇資料湖表格式,當前僅支援Hudi。
說明僅當計算引擎為Cloudera Data Platform 7.x時,支援配置此項。
計算源描述
對計算源的簡單描述,長度128個字元以內。
叢集基本資料
說明僅當配置方式選擇單獨配置時,支援配置叢集基本資料。
參數
描述
叢集儲存
預設為計算設定配置的參數資訊,不支援配置。非OSS-HDFS叢集儲存無該參數項。
NameNode
單擊+新增,在新增NameNode對話方塊中配置相關參數,支援新增多個NameNode。
NameNode為HDFS叢集中NameNode節點的HostName或者IP和連接埠。配置範例:
NameNode:193.168.xx.xx
Web UI Port:50070
IPC Port:8020
Web UI Port和IPC Port兩個連接埠中,至少選中一個。配置完成後NameNode為
host=192.168.xx.xx,webUiPort=50070,ipcPort=8020。說明當叢集儲存為HDFS時,支援配置此項。
叢集儲存根目錄
預設為計算設定配置的參數資訊,不支援配置。非OSS-HDFS叢集儲存無該參數項。
AccessKey ID、AccessKey Secret
叢集儲存類型為OSS-HDFS,需填寫訪問叢集OSS的AccessKey ID和AccessKey Secret。查看AccessKey,請參見查看AccessKey。
重要此處填寫的配置優先順序高於core-site.xml中配置的AccessKey。
core-site.xml
上傳Hadoop叢集的core-site.xml設定檔。
hdfs-site.xml
上傳Hadoop叢集下HDFS的hdfs-site.xml設定檔。
說明OSS-HDFS叢集儲存類型,不支援上傳hdfs-site.xml設定檔。
hive-site.xml
上傳Hadoop叢集下Hive的hive-site.xml設定檔。
yarn-site.xml
上傳Hadoop叢集下Hive的yarn-site.xml設定檔。
其他設定檔
上傳keytab檔案,您可以在HDFS叢集中的NameNode節點使用ipa-getkeytab命令擷取keytab檔案。
任務執行機器
配置MapReduce或Spark Jar的執行機器的串連地址。格式為
hostname:port或ip:port,port預設為22。認證方式
支援無認證和Kerberos認證方式。
Kerberos是一種基於對稱金鑰技術的身份認證協議,可以為其他服務提供身份認證功能,且支援SSO(即用戶端身份認證後,可以訪問多個服務,例如HBase和HDFS)。
如果Hadoop叢集有Kerberos認證,則需要開啟叢集Kerberos並上傳Krb5認證檔案或配置KDC Server地址:
重要當計算引擎類型為E-MapReduce 5.x時,僅支援krb5檔案配置配置方式。
Krb5認證檔案:需要上傳Krb5檔案進行Kerberos認證。
KDC Server地址:KDC伺服器位址,輔助完成Kerberos認證。
說明支援配置多個KDC Server服務地址,使用英文分號(;)分割。
HDFS資訊配置
參數
描述
執行使用者名稱、密碼
登入計算執行機器使用者名稱和密碼,用於執行MapReduce任務、讀取寫入HDFS儲存等。
重要請確保有提交MapReduce任務的許可權。
認證方式
支援無認證和Kerberos。
說明叢集儲存為OSS-HDFS時,不支援配置HDFS認證方式。將預設使用core-site.xml檔案中的AccessKey。
如果Hadoop叢集有Kerberos認證,則需要開啟HDFS Kerberos並上傳Keytab File認證檔案與配置Principal。
Keytab File:上傳keytab檔案,您可以在HDFS Server上擷取keytab檔案。
Principal:填寫HDFS Keytab File檔案對應的Kerberos認證使用者名稱。
HDFS User
指定檔案上傳的使用者名稱,如果沒有填寫,則預設為執行使用者名稱。Kerberos關閉時可填寫。
生產任務預設任務隊列
填寫Yarn資源隊列,生產環境手動及週期性任務運行使用該Yarn隊列。
其他任務隊列
填寫Yarn資源隊列,其他任務如即席查詢、資料預覽、JDBC Driver訪問使用該Yarn隊列。
任務優先順序隊列
支援使用生產任務預設隊列或自訂。
Dataphin在調度Hive SQL任務時會根據任務的優先順序將任務發送到相應的隊列執行。優先順序包括最高優先順序、高優先順序、中優先順序、低優先順序、最低優先順序。
Hive的執行引擎設定為Tez或Spark時,必須設定不同的優先順序隊列,任務的優先順序設定才可生效。
說明日、小時調度邏輯表任務預設使用中優先順序任務隊列。
年、月調度邏輯表任務預設使用低優先順序任務隊列。
Hive計算引擎配置
參數
描述
JDBC URL
支援配置以下三種串連地址:
Hive Server的串連地址,格式為
jdbc:hive://{串連地址}:{連接埠}/{資料庫名稱}。ZooKeeper的串連地址。例如
jdbc:hive2://zk01:2181,zk02:2181,zk03:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2。開啟Kerberos的串連地址,格式為
jdbc:hive2://{串連地址}:{連接埠}/{資料庫名稱};principal=hive/_HOST@xx.com。
認證方式
說明僅當連結資訊選擇為單獨配置時,支援配置認證方式。
支援無認證、LDAP和Kerberos認證方式。
無認證:無認證方式需填寫Hive服務的使用者名稱。
LDAP:LDAP認證方式需填寫Hive服務的使用者名稱和密碼。
說明無認證和LDAP方式所填寫的使用者須確保具備任務的執行許可權,以保證任務的正常執行。
Kerberos:如果Hadoop叢集有Kerberos認證,則需要開啟Hive Kerberos並上傳Keytab File認證檔案與配置Principal。
Keytab File:上傳keytab檔案,您可以在Hive Server上擷取keytab檔案。
Principal:填寫Hive Keytab File檔案對應的Kerberos認證使用者名稱。
執行引擎
預設:Default:綁定該計算源的專案下的任務(包括邏輯表任務)預設使用該執行引擎。
自訂:選擇其他計算引擎類型。
Hive中繼資料配置
中繼資料擷取方式:支援中繼資料庫、HMS、DLF三種來源資料擷取方式。擷取方式不同,所需配置資訊不同。
重要DLF擷取方式僅支援計算設定為E-MapReduce5.x Hadoop的叢集。
使用DLF方式擷取中繼資料,請先在設定檔中上傳hive-site.xml設定檔。
中繼資料擷取方式
參數
描述
中繼資料庫
資料庫類型
根據叢集中使用的中繼資料庫類型,選擇資料庫。Dataphin支援選擇MySQL。
支援MySQL的版本包括MySQL 5.1.43、MySQL 5.6/5.7和MySQL 8版本。
JDBC URL
填寫目標資料庫的JDBC串連地址。例如:
MySQL:格式為
jdbc:mysql://{串連地址}[,failoverhost...]{連接埠}/{資料庫名稱} [?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]...。使用者名稱、密碼
填寫登入中繼資料庫的使用者名稱和密碼。
HMS
認證方式
HMS擷取方式支援無認證、LDAP、Kerberos三種認證方式。Kerberos認證方式需上傳Keytab File檔案及配置Principal。
DLF
Endpoint
填寫叢集在DLF資料中心所在地區的Endpoint。如何擷取,請參見DLF Region和Endpoint對照表。
AccessKey ID、AccessKey Secret
填寫叢集所在帳號的AccessKey ID和AccessKey Secret。
您可在使用者資訊管理頁面,擷取帳號的AccessKey ID和AccessKey Secret。
Spark Jar服務配置
參數
描述
Spark執行機器
如果Hadoop叢集有部署Spark,則支援開啟Spark Jar任務。
執行使用者名稱、密碼
填寫登入計算執行機器使用者名稱、密碼。
重要已開通提交MapReduce任務的許可權。
認證方式
支援無認證或Kerberos認證方式。
如果Hadoop叢集有Kerberos認證,則需要開啟Spark Kerberos並上傳Keytab File認證檔案與配置Principal。
Keytab File:上傳keytab檔案,您可以在Spark Server上擷取keytab檔案。
Principal:填寫Spark Keytab File檔案對應的Kerberos認證使用者名稱。
Spark SQL服務配置
參數
描述
Spark SQL任務
如果Hadoop叢集有部署Spark,則支援開啟Spark SQL任務。
Spark版本
目前僅支援3.x。
服務類型
選擇Spark JDBC訪問的目標伺服器類型。不同計算引擎支援的服務類型不同。更多資訊,請參見計算引擎與支援的服務類型。
JDBC URL
Spark的JDBC URL地址。URL的database與Hive JDBC URL中指定的database需相同。
認證方式
支援無認證、LDAP和Kerberos認證方式。
無認證:無認證方式需填寫Spark服務的使用者名稱。
LDAP:LDAP認證方式需填寫Spark服務的使用者名稱和密碼。
說明無認證和LDAP方式所填寫的使用者須確保具備任務的執行許可權,以保證任務的正常執行。
Kerberos:如果Hadoop叢集有Kerberos認證,則需要開啟Spark Kerberos並上傳Keytab File認證檔案與配置Principal。
Keytab File:上傳keytab檔案,您可以在Spark Server上擷取keytab檔案。
Principal:填寫Spark Keytab File檔案對應的Kerberos認證使用者名稱。
SQL任務隊列設定
不同服務類型使用不同的任務SQL任務隊列。詳情如下:
Spark Thrift Server:不支援設定任務隊列。
Kyuubi:使用HDFS資訊配置的優先順序隊列設定,僅當Kyuubi使用Yarn作為資源調度時生效,生產任務使用Connection共用層級。
Livy:使用HDFS資訊配置的優先順序隊列設定,僅當Livy使用Yarn作為資源調度時生效,即席查詢及生產任務均使用新的Connection的執行。
MapReduce(MRS):使用HDFS資訊配置的優先順序隊列設定。
Impala任務配置
參數
描述
Impala任務
如果Hadoop叢集有部署Impala,則支援開啟Impala任務。
JDBC URL
請輸入Impala的JDBC串連地址。如
jdbc:Impala://host:port/database。JDBC URL中的Database需要與Hive JDBC中的Database保持一致。說明當連結資訊選擇為引用叢集配置後,JDBC URL僅支援查看,不支援修改。
認證方式
支援無認證、LDAP、Kerberos認證方式。
無認證:無認證方式需填寫Impala使用者名稱。
LDAP:LDAP認證方式需填寫Impala的使用者名稱和密碼。
Kerberos:Kerberos認證方式需上傳Keytab File認證檔案與配置Principal。
開發工作單位請求池
請輸入用於開發工作單位的Impala請求池(request pool)名稱。
周期工作要求池
請輸入用於周期任務的Impala請求池(request pool)名稱。
優先順序任務隊列
支援採取周期任務預設隊列和自訂。
Dataphin在調度Impala SQL任務時會根據任務的優先順序將任務發送到相應的隊列執行。優先順序包括最高優先順序、高優先順序、中優先順序、低優先順序、最低優先順序。
自訂優先順序任務隊列時,日調度邏輯表任務預設使用中優先順序任務隊列;年、月調度邏輯表任務預設使用低優先順序任務隊列。
單擊測試連接,測試連接的計算源。
測試連接成功後,單擊提交。
後續步驟
完成建立Hadoop計算源後,即可為專案綁定Hadoop計算源,請參見建立通用專案。