本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 Oozie 與 Amazon RDS 中的遠端資料庫搭配使用
根據預設,Oozie 使用者資訊和查詢歷史記錄是儲存在主節點上的本機 MySQL 資料庫中。或者,您可以使用儲存在 Amazon S3 中的組態和 Amazon Relational Database Service(Amazon RDS) 中的 MySQL 資料庫,來建立一或多個啟用 Oozie 的叢集。如此一來,您不需讓 Amazon EMR 叢集保持執行狀態,也能夠保留 Oozie 所建立的使用者資訊和查詢歷史記錄。建議您使用 Amazon S3 伺服器端加密來儲存組態檔案。
首先建立 Oozie 使用的遠端資料庫。
建立外部 MySQL 資料庫
-
前往 https://console.aws.amazon.com/rds/
,開啟 Amazon RDS 主控台。 -
選擇 Launch a DB Instance (啟動資料庫執行個體)。
-
選擇 MySQL,然後選擇 Select (選取)。
-
保留預設選取的 Multi-AZ Deployment and Provisioned IOPS Storage (異地同步備份部署和佈建 IOPS 儲存體) 選項,然後按一下 Next (下一步)。
-
保留 Instance Specifications (執行個體規格) 的預設值、指定設定,然後選擇 Next (下一步)。
-
在 Configure Advanced Settings (配置進階設定) 頁面上,選擇適當的安全群組和資料庫名稱。您使用的安全群組至少須允許來自叢集主節點經由連接埠 3306 傳入的 TCP 存取。如果您此時尚未建立您的叢集,可以允許所有主機連線至連接埠 3306,並且在您啟動叢集後調整安全群組。選擇 Launch DB Instance (啟動資料庫執行個體)。
-
從 RDS 儀表板選擇 Instances (執行個體),然後選取您剛才建立的執行個體。當您的資料庫可使用時,請記下資料庫名稱、使用者名稱、密碼和 RDS 執行個體主機名稱。當您建立和設定叢集時,會使用這些資訊。
使用 啟動叢集時,為 Oozie 指定外部 MySQL 資料庫 AWS CLI
若要在使用 AWS CLI來啟動叢集時,指定 Oozie 的外部 MySQL 資料庫,請使用您在建立 RDS 執行個體時所記下的資訊 (用來設定包含組態物件的 oozie-site
)。
注意
您可以建立多個使用相同外部資料庫的叢集,但每個叢集將會共用查詢歷史記錄和使用者資訊。
-
使用 AWS CLI建立已安裝 Oozie 的叢集、使用您建立的外部資料庫,以及參考具有指定資料庫屬性之 Oozie 組態分類的組態檔案。下列範例會建立已安裝 Oozie 的叢集,參考 Amazon S3 中的組態檔案
myConfig.json
,此檔案會指定資料庫組態。注意
包含 Linux 行接續字元 (\) 是為了提高可讀性。它們可以在 Linux 命令中移除或使用。對於 Windows,請將其移除或取代為插入符號 (^)。
aws emr create-cluster --release-label
emr-7.7.0
--applications Name=Oozie Name=Spark Name=Hive \ --instance-typem5.xlarge
--instance-count3
\ --configurationshttps://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.json
--use-default-rolesmyConfig.json
檔案的範例內容如下所示。以您的 RDS 執行個體的 JDBC URL、使用者名稱和密碼取代JDBC URL
、username
和password
。重要
JDBC URL 必須包含資料庫名稱做為後綴。例如:jdbc:mysql://oozie-external-db.xxxxxxxxxx.us-east-1.rds.amazonaws.com:3306/dbname。
[{ "Classification": "oozie-site", "Properties": { "oozie.service.JPAService.jdbc.driver": "org.mariadb.jdbc.Driver", "oozie.service.JPAService.jdbc.url": "
JDBC URL
", "oozie.service.JPAService.jdbc.username": "username
", "oozie.service.JPAService.jdbc.password": "password
" }, "Configurations": [] }]