通過MaxCompute Spark訪問VPC網路中的目標服務時,預設情況下,MaxCompute與目標服務之間的網路不可達。需要開通網路連接以便訪問VPC中的目標服務(例如指定IP或網域名稱、RDS、HBase叢集、Hadoop叢集等)。
使用限制
帳號限制
運行Spark作業時,其所在的MaxCompute專案與目標VPC必須歸屬於同一個阿里雲主帳號。換言之,專案所屬主帳號的UID必須與VPC所屬主帳號的UID一致,否則作業運行時將拋出如下錯誤:
"You are not allowed to use this vpc - vpc owner and project owner must be the same person"。本文操作步驟適用於打通一個VPC,如果使用者作業需要同時訪問多個VPC,則可以將已經通過ENI專線打通的VPC與其他VPC之間再做聯通,詳情諮詢阿里雲專用網路相關的支援人員。
操作步驟
詳情參考訪問VPC方案(專線直連)。
步驟一:帳號及專案準備
開通MaxCompute與目標服務間的網路連接前,需要確認以下兩個條件。
建立MaxCompute專案。在湖倉一體情境中,建議設定MaxCompute專案的資料類型為Hive相容類型。
如果需要訪問位於VPC網路中的目標服務,請確保VPC所有者帳號、訪問MaxCompute專案的阿里雲帳號,以及目標服務環境或叢集的管理員帳號是同一個主帳號或同在一個主帳號下。
步驟二:授權
對操作使用者授權:
授權使用者需要是專案所有者(Project Owner),或具備租戶層級的Super_Administrator或Admin角色的使用者(詳情請參見角色規劃)。
授權過程可參見租戶內對象許可權一覽表。
對MaxCompute授權:允許MaxCompute在VPC內建立ENI網卡,以實現MaxCompute到使用者VPC的連通。使用者只要在阿里雲帳號登入狀態下單擊授權即可。
步驟三:配置安全性群組規則
在VPC執行個體下,建立獨立安全性群組用於控制MaxCompute對VPC網路內的各種資源的存取權限。
推薦建立一個普通安全性群組,盡量避免使用其他類型的安全性群組或正在被使用的安全性群組。MaxCompute會在目前使用者的Virtual Private Cloud下建立ENI網卡,用於訪問使用者服務。
設定該安全性群組的規則出方向,控制MaxCompute作業(ENI網卡)可以訪問的目標地址(如無特殊需要,出方向保持預設);
入ENI的流量為回包,所以入方向的全部流量都開啟。
登入專用網路管理主控台。
在左側導覽列選擇專用網路,在左上方選擇地區。
在專用網路頁面,單擊目標專用網路執行個體ID/名稱。
在專用網路詳情頁,選擇資源管理頁簽。
在資源管理頁簽的專用網路資源地區,將滑鼠移至上方至安全性群組數值上方,單擊添加。
安全性群組類型選擇普通安全性群組。
普通安全性群組出口預設開啟。企業安全性群組出口預設關閉,會導致無法訪問VPC內的任何服務。
選擇與連通服務相同的VPC網路。
更多建立安全性群組操作,請參見建立安全性群組。
配置安全性群組支援MaxCompute網路
單擊目標安全性群組操作列的管理規則。
在訪問規則地區,選擇入方向頁簽。單擊目標規則對應的操作列的編輯。按照如下配置開放入方向的所有流量。
授權策略選擇允許。
優先順序為1。
協議選擇所有流量。
訪問來源加入VPC對應的網段或者被訪問的雲端服務所在VSW的網段。
訪問目的預設為全部(-1/-1)。
配置方法詳情請參見安全性群組應用指導和案例。
在HBase情境,如果HBase無法對某個安全性群組開放網路許可權,可以將MaxCompute建立的ENI IP添加至白名單。由於ENI IP可能會發生變化,推薦添加VPC執行個體對應交換器的IP網段至白名單。登入ECS管理主控台,在左側導覽列,單擊彈性網卡,擷取ENI IP。
MaxCompute在後續的建立網路通路過程中會預設自動根據頻寬需求建立2個ENI,不收取費用,由MaxCompute建立的ENI將位於這個安全性群組內。
步驟四:建立MaxCompute與目標VPC網路間的網路連接
阿里雲帳號(主帳號)或擁有MaxCompute租戶層級的Super_Administrator或Admin角色的RAM使用者(詳情請參見MaxCompute租戶層級角色),可以在MaxCompute控制台建立MaxCompute與VPC網路之間的串連。操作如下:
登入MaxCompute控制台,在左上方選擇地區。
在左側導覽列,選擇 。
在网络连接頁面,單擊新增网络连接。
在彈出的新增网络连接對話方塊,根據介面提示文案設定項目資訊,單擊確定。首次新增需先前往授權,允許MaxCompute平台代理申請網卡,否則串連將建立失敗。
在彈出的新增网络连接對話方塊,根據介面提示文案設定項目資訊,單擊確定。首次新增需先前往授權,允許MaxCompute平台代理申請網卡,否則串連將建立失敗。
配置參數如下:
參數
是否必填
描述
连接名称:
必填
自訂串連名稱。格式如下:
字母開頭。
只能包含字母、底線(_)和數字。
長度在1-63個字元。
类型:
必填
預設為直通连接(passthrough)。
直通连接(passthrough)對應的即是專用網路串連方案。
区域:
必填
系統根據左上方選擇的地區自動產生。詳情請參見開通地區。
已选择VPC:
必填
Virtual Private Cloud是雲上安全隔離的虛擬網路環境,提供了類似於傳統資料中心的安全和可配置的私人網路空間。
交换机:
必填
交換器用來劃分子網,同一VPC內的不同交換器之間內網互連。通過在多個不同可用性區域的交換器中同時部署雲產品資源,可以避免應用受到單一可用性區域故障的影響。
安全组:
必填
安全性群組扮演雲上虛擬防火牆的角色,通過管理安全性群組和規則,可提供精細化的網路安全隔離與存取控制。
安全性群組ID,如需建立安全性群組,請參考建立安全性群組。
步驟五:使用者作業配置
使用Spark訪問VPC網路時,在完成上述開通專線網路連接操作後,需要在spark-defaults.conf或DataWorks配置項中增加以下配置項:
spark.hadoop.odps.cupid.eni.enable = true
# 配置格式為region:vpcid,vpcid為開通專線直連時使用的目標vpcid
spark.hadoop.odps.cupid.eni.info = regionid:vpc-**********
# 例如:cn-hangzhou:vpc-bp1wth********04ug3s