本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用現有的IAM執行角色將 Athena Connect 到 Hive 中繼存儲
若要使用現有IAM角色的 Lambda 函數將外部 Hive 中繼存放區連接至 Athena,您可以針對外部 Hive 中繼存放區使用 Athena 連接器的參考實作。
三個主要步驟如下:
-
複製和建置 — 複製 Athena 參考實作,並建置包含 Lambda 函數程式碼的JAR檔案。
-
AWS Lambda 主控台 — 在 AWS Lambda 主控台中建立 Lambda 函數,為其指派現有的IAM執行角色,然後上傳您產生的函數程式碼。
-
Amazon Athena 主控台 – 在 Amazon Athena 主控台中建立資料來源名稱,您可以使用此名稱來參考 Athena 查詢中的外部 Hive 中繼存放區。
如果您已經擁有建立自訂IAM角色的權限,則可以使用更簡單的工作流程,該工作流程使用 Athena 主控台, AWS Serverless Application Repository 以及建立和設定 Lambda 函數。如需詳細資訊,請參閱將 Athena Connect 到阿帕奇蜂巢中繼存儲。
必要條件
-
Git 必須安裝在您的系統上。
-
您必須已安裝 Apache Maven
。 -
您具有可以指派給 Lambda 函數的IAM執行角色。如需詳細資訊,請參閱允許 Lambda 函數存取外部 Hive 中繼存放區。
複製並建置 Lambda 函數
Athena 參考實現的函數代碼是一個位於 aws aws-athena-hive-metastore
若要複製並建置 Lambda 函數程式碼
-
請輸入下列命令來複製 Athena 參考實作:
git clone https://github.com/awslabs/aws-athena-hive-metastore
-
執行下列命令來建置適用於 Lambda 函數的
.jar
檔案:mvn clean install
專案成功建置後,會將下列
.jar
檔案建立在您專案的目標資料夾中:hms-lambda-func-1.0-SNAPSHOT-withdep.jar
在下一節中,您可以使用主 AWS Lambda 控台將此檔案上傳到您的 Amazon Web Services 帳戶。
在 AWS Lambda 主控台中建立和設定 Lambda 函數
在本節中,您可以使用 AWS Lambda 主控台建立使用現有IAM執行角色的函數。VPC為函數配置後,您可以上傳函數代碼並配置函數的環境變數。
建立 Lambda 函式
在此步驟中,您會在 AWS Lambda 主控台中建立使用現有IAM角色的函數。
若要建立使用現有IAM角色的 Lambda 函數
登入 AWS Management Console 並開啟 AWS Lambda 主控台,位於https://console.aws.amazon.com/lambda/
。 -
在導覽視窗中,選擇函數。
-
選擇 Create function (建立函數)。
-
選擇從頭開始撰寫。
-
在 Function name (函數名稱) 中,輸入您的 Lambda 函數名稱 (例如
EHMSBasedLambda
)。 -
在 Runtime (執行時間) 中,選擇 Java 8。
-
在 Permissions (許可) 下,展開 Change default execution role (變更預設執行角色)。
-
針對 Execution role (執行角色),選擇 Use an existing role (使用現有的角色)。
-
對於現有角色,請選擇 Lambda 函數將用於 Athena 的IAM執行角色 (此範例使用稱為的角色
AthenaLambdaExecutionRole
)。 -
展開 Advanced settings (進階設定)。
-
選取 Enable Network (啟用網路)。
-
對於 VPC,選擇您VPC的函數可以存取的項目。
-
對於子網路,請選擇要使用的 Lambda VPC 子網路。
-
對於安全群組,請選擇要使用的 Lambda VPC 安全群組。
-
選擇建立函數。 AWS Lambda 控制台並打開功能的配置頁面並開始創建函數。
上傳程式碼並設定 Lambda 函數
當主控台通知您已成功建立函數時,您便可以上傳函數程式碼並設定其環境變數。
若要上傳您的 Lambda 函數程式碼並設定其環境變數
-
在 Lambda 主控台中,請確認您在指定功能之頁面的 Code (程式碼) 索引標籤上。
-
Code source (程式碼來源):選擇 Upload from (上傳來源),然後選擇 .zip or .jar file (.zip 或 .jar 檔案)。
-
上傳您先前產生的
hms-lambda-func-1.0-SNAPSHOT-withdep.jar
檔案。 -
在 Lambda 函數頁面上,選擇 Configuration (組態) 標籤。
-
從左側的窗格中選擇 Environment variables (環境變數)。
-
在 Environment variables (環境變數) 區段中,選擇 Edit (編輯)。
-
在 Edit environment variables (編輯環境變數) 的頁面上,使用 Add environment variable (新增環境變數) 的選項新增下列環境變數索引鍵和值:
-
HMS_ URIS — 使用下列語法輸入在連接埠 9083 使用 Thrift 通訊協定URI的 Hive 中繼存放區主機。
thrift://
<host_name>
:9083 -
SPILL_ LOCATION — 在您的 Amazon 網路服務帳戶中指定 Amazon S3 位置,以便在 Lambda 函數回應大小超過 4 MB 時保留溢出的中繼資料。
-
-
選擇 Save (儲存)。
此時,您可以將 Athena 設定為使用 Lambda 函數連接到您的 Hive 中繼存放區。如需這些步驟,請參閱 將 Athena 設定為使用已部署的 Hive 中繼存放區連接器。