本文介紹如何配置自建的阿里雲RDS,作為E-MapReduce(簡稱EMR)上DataLake叢集、Custom叢集或Hadoop叢集的中繼資料。
前提條件
已購買RDS MySQL執行個體(EMR所有版本均支援MySQL 5.7,僅EMR-3.35.0以上版本、EMR-5.0.0以上版本同時支援MySQL 5.7和8.0版本),詳情請參見建立RDS MySQL執行個體。
本文以MySQL 5.7版本為例介紹。
使用限制
建立RDS MySQL執行個體時,資料庫類型選擇MySQL,版本選擇5.7;系列選擇高可用版。
操作流程
準備中繼資料庫資訊。
在EMR控制台上建立叢集,關聯中繼資料庫資訊。
- 重要
如果您建立的是Hadoop叢集(EMR-3.38.x及之前版本、EMR-4.9.x及之前版本、EMR-5.4.x以及之前版本),或者建立叢集之後需要更換為RDS資料庫,則需要初始化Metastore。
DataLake和Custom叢集在建立過程中會自動根據所提供的資料庫連接參數初始化Hive Meta資料庫,因此無需執行該步驟。
步驟一:中繼資料庫準備
步驟二:建立叢集
在建立叢集的軟體配置頁面,配置以下參數,其他參數的配置請參見建立叢集。
DataLake和Custom叢集參數 | Hadoop叢集參數 | 描述 | |
中繼資料 | 選擇自建RDS。 說明 僅當Custom叢集選擇了HDFS、YARN和Hive服務後,中繼資料參數才可見。 | ||
javax.jdo.option.ConnectionURL | RDS連結 | 填寫格式為
| |
javax.jdo.option.ConnectionUserName | RDS使用者名稱 | 填寫步驟一:中繼資料庫準備中帳號的使用者名稱。 | |
javax.jdo.option.ConnectionPassword | RDS密碼 | 填寫步驟一:中繼資料庫準備中帳號的密碼。 |
(可選)步驟三:Metastore初始化
如果您建立的是Hadoop叢集(EMR-3.38.x及之前版本、EMR-4.9.x及之前版本、EMR-5.4.x以及之前版本),或者建立叢集之後需要更換為RDS資料庫,則需要初始化Metastore。
DataLake和Custom叢集在建立過程中會自動根據所提供的資料庫連接參數初始化Hive Meta資料庫,因此無需執行該步驟。
使用SSH方式登入叢集的Master節點,詳情請參見登入叢集。
執行以下命令,切換為hadoop使用者。
su - hadoop
執行以下命令,進行初始化。
schematool -initSchema -dbType mysql
待初始化成功後,則可以使用自建的RDS作為Hive的中繼資料庫。
說明在初始化之前,Hive的Hive MetaStore、HiveServer2和Spark的ThriftServer可能會出現異常,待初始化之後會恢複正常。