Gateway主要用于向計算集群提交任務和進行安全隔離。為了方便部署Gateway環(huán)境,E-MapReduce提供了名為EMR-CLI的工具,它基于阿里云ECS來創(chuàng)建實例并部署Gateway環(huán)境。當您創(chuàng)建了DataLake、DataFlow或OLAP類型的集群時,可以使用本文檔來部署Gateway環(huán)境。
前提條件
已經在E-MapReduce中創(chuàng)建了業(yè)務場景為數(shù)據(jù)湖(DataLake)、實時數(shù)據(jù)流(DataFlow)或數(shù)據(jù)分析(OLAP)場景的計算集群,且計算集群狀態(tài)為運行中。創(chuàng)建集群詳情請參見創(chuàng)建集群。
使用限制
本文檔僅適用于數(shù)據(jù)湖集群(DataLake)、實時數(shù)據(jù)流集群(DataFlow)和數(shù)據(jù)分析集群(OLAP)的Gateway環(huán)境部署。
對于已存在的Hadoop集群和Kafka集群的Gateway環(huán)境部署,詳情請參見創(chuàng)建Gateway集群。
說明如果您在2022年12月19日17點(UTC+8)以后第一次創(chuàng)建EMR集群,則不能選擇Hadoop、Kafka集群類型。
請勿使用EMR集群的ECS實例作為Gateway機器,以免影響計算集群運行環(huán)境。
EMR-CLI在部署Gateway客戶端時采用覆蓋安裝模式。如果您已在ECS中部署了Gateway,則重新部署時會覆蓋舊的客戶端,并在同一目錄下安裝新的客戶端。
目前支持該方式部署Gateway的服務有HDFS、YARN、HBase、HIVE、SPARK2、SPARK3、JINDOSDK 、FLINK 、SQOOP、IMPALA 、PRESTO 、HUDI 、ICEBERG 、TEZ和DELTALAKE。
首次部署Gateway環(huán)境
在ECS控制臺創(chuàng)建實例,詳情請參見自定義購買實例。
說明創(chuàng)建的ECS實例可以不具備公網訪問能力。
相關參數(shù)推薦如下。
參數(shù)
說明
地域及可用區(qū)
必須與EMR集群所在地域和可用區(qū)一致。
鏡像
必須與EMR實例的系統(tǒng)匹配。
系統(tǒng)盤
推薦使用ESSD云盤,不小于60 GiB。
網絡
必須與EMR集群VPC一致。
安全組
必須與EMR集群的Master實例組安全組一致,保證ECS實例與EMR集群的網絡互通。
構建EMR Gateway專用的ECS RAM角色。
使用RAM管理員登錄RAM控制臺。
在左側導航欄,選擇
。在角色頁面,單擊創(chuàng)建角色。
在創(chuàng)建角色面板中,選擇可信實體類型為阿里云服務,單擊下一步。
填寫角色名稱(例如ECSForEMRGatewayRole),在選擇受信服務下拉列表中選擇云服務器,然后單擊完成。
為RAM角色授權。
在創(chuàng)建角色面板中,單擊為角色授權。
單擊新增授權。
在新增授權面板中,選擇系統(tǒng)策略中的AliyunEMRFullAccess、AliyunOSSFullAccess和AliyunDLFFullAccess,單擊確認新增授權。
單擊關閉。
授予ECS實例RAM角色。
登錄ECS管理控制臺。
在左側導航欄,選擇 。
在頂部菜單欄左上角處,選擇地域。
找到新建的ECS實例,選擇 。
在彈窗中,選擇ECSForEMRGatewayRole角色,單擊確定。
連接ECS實例,詳情請參見連接ECS實例。
執(zhí)行以下命令,安裝EMR-CLI。
regionId=`curl http://100.100.100.200/latest/meta-data/region-id`; curl https://ecm-repo-${regionId}.oss-${regionId}-internal.aliyuncs.com/emrcli/emrcli.sh -o /tmp/emrcli.sh; chmod 755 /tmp/emrcli.sh; sh /tmp/emrcli.sh install ${regionId}
安裝成功會返回以下信息。
install emrcli success
執(zhí)行以下命令,部署EMR Gateway客戶端。
emrcli gateway deploy \ --clusterId <ClusterId> \ --appNames <ApplicationName>
您需要根據(jù)實際情況修改以下參數(shù)。
參數(shù)
是否必選
描述
clusterId
是
在EMR上已創(chuàng)建集群的集群ID。
appNames
否
應用名稱。有多個應用時,使用英文逗號(,)隔開,例如,
HDFS,YARN
。未指定該參數(shù)時,默認為集群所有支持的客戶端應用,例如Hive和HDFS。
部署成功會返回以下信息。
deployGateway success
重要Gateway安裝后,系統(tǒng)環(huán)境變量中的
JAVA_HOME
會調整為/usr/lib/jvm/java-1.8.0
。您可以在/etc/profile.d/emr_env.sh文件中修改,但修改后可能影響Gateway功能,因此請謹慎操作。重新登錄ECS實例,使得系統(tǒng)環(huán)境變量生效。
可選:配置Gateway節(jié)點的域名解析。
重要Gateway包含Spark服務時須執(zhí)行該步驟。
管理Gateway環(huán)境
Gateway創(chuàng)建完成后,如果Gateway關聯(lián)的計算集群進行了服務的新增或服務配置的更改,您可以通過以下命令更新客戶端組件或同步最新配置。
更新客戶端組件
當計算集群服務新增時,通過EMR CLI在Gateway上新增對應的客戶端。
命令和初次部署基本相同,只需在appNames參數(shù)中注明對應新增的應用名稱,已安裝應用不會受到影響。
emrcli gateway deploy \
--clusterId <ClusterId> \
--appNames <ApplicationName>
更新成功后返回以下信息。
deployGateway success
同步EMR集群修改后的配置
通過EMR CLI同步EMR集群修改后的應用配置(例如core-site.xml等)到Gateway客戶端。
同步配置時會覆蓋Gateway上的配置,因此請謹慎操作。
emrcli gateway refreshConfigs \
--clusterId <ClusterId> \
--appNames <ApplicationName>
同步成功后返回以下信息。
refreshConfiguration success
管理EMR-CLI
查看EMR CLI版本
您可以通過以下命令來查看EMR CLI的版本信息。
emrcli version
返回以下類似信息。
2.0.0
升級EMR CLI
重新執(zhí)行首次部署Gateway環(huán)境中安裝EMR CLI的步驟,會自動升級至最新版本。
常見問題
Q:如何切換計算集群?
A:切換計算集群的步驟如下:
使用
-mv
命令手動備份舊集群(切換前集群)中的文件,包括/opt/apps
目錄、/etc/taihao-apps
目錄以及/etc/profile.d/yarn.sh
文件,以防止數(shù)據(jù)丟失。重新執(zhí)行本文中的操作,進行計算集群的重新部署。