1. 程式人生 > >基於AWS搭建分散式計算環境

基於AWS搭建分散式計算環境

本文介紹通過 AWS 管理控制檯建立示例 Amazon EMR 叢集的流程。然後,您將以步驟形式執行 Hive 指令碼,以處理儲存在 Amazon S3 中的示例資料。

1.設定示例叢集的先決條件

1) 建立 Amazon S3 儲存桶

Amazon S3 中的每個資料元都儲存在儲存桶中。必須先建立一個儲存桶,然後才能在 Amazon S3 中儲存資料。

Tips:
只有將物件儲存到儲存桶中以及向儲存桶傳入物件/從儲存桶傳出物件時才需要付費。

首先登入Console,開啟 Amazon S3 控制,單擊CreateBucket
這裡寫圖片描述

在“建立儲存桶”對話方塊中,請在“儲存桶名稱”框中輸入儲存桶名稱。

Tips:
所選的儲存桶名稱在 Amazon S3 的所有現有儲存桶名稱中必須具有唯一性。確保唯一性的一種辦法是以您所在的組織的名稱作為您的儲存桶名稱的字首。

儲存桶建立後,便無法再更改名稱。此外,儲存桶名稱會顯示在指向儲存桶中儲存的資料元的 URL 中。請確保選擇適當的儲存桶名稱。

在“Region”框中,選擇一個地區

Tips:
您可以選擇一個地區來優化延遲、最小化成本或滿足法規要求。資料元一旦儲存在某一地區,便不會離開,除非您特意將其傳輸到另一地區。

單擊 Create,Amazon S3 成功建立儲存桶後,控制檯的 Buckets (儲存桶) 面板中將顯示空儲存桶。
這裡寫圖片描述

使用 Amazon S3 儲存桶儲存日誌檔案和輸出資料。為符合 Hadoop 要求,用於 Amazon EMR 的 S3 儲存桶名稱具有以下限制條件:

  • 只能包含小寫字母、數字、句點 (.) 和連字元 (-)
  • 不能以數字結尾。

2)建立 Amazon EC2 金鑰對

必須擁有 EC2 金鑰對才能使用SSH 協議通過安全通道連線叢集中的節點。
首先開啟 Amazon EC2 控制檯,從導航欄中,選擇金鑰對區域
在導航窗格中的 NETWORK & SECURITY 下,選擇 Key Pairs。

Tip
導航窗格位於控制檯的左側。如果您看不到窗格,它可能被最小化了;單擊箭頭擴充套件窗格。
選擇 Create Key Pair。

在 Create Key Pair 對話方塊的 Key pair name 欄位中輸入新金鑰對的名稱,然後選擇 Create。

2.啟動叢集

2)在 Quick cluster configuration 頁面上,接受預設值,但以下欄位除外:

3)對於 S3 folder,請選擇資料夾圖示以選擇您在 建立 Amazon S3 儲存桶 中建立的 logs 資料夾的路徑。
4)對於 EC2 key pair,選擇您在建立 Amazon EC2 金鑰對中建立的金鑰對。
5)選擇 Create cluster。

3.準備示例資料和指令碼

4.通過執行 Hive 指令碼來處理您的示例資料

在 Amazon EMR 控制檯中以步驟形式在您的叢集中執行 Hive 指令碼以處理示例資料。在 Amazon EMR 中,步驟 是包含一個或多個 Hadoop 作業的工作單元。您可以在建立叢集或叢集正在執行(如果它是長時間執行的叢集)時提交步驟。

以步驟的形式提交 Hive 指令碼

通過控制檯使用 Add Step 選項可向叢集提交 Hive 指令碼。指令碼使用的 Hive 指令碼和示例資料已為您上傳到 Amazon S3。

Tips:
在執行指令碼之前,您必須擁有建立 Amazon S3 儲存桶中所述的 Amazon S3 儲存桶和 output 資料夾。

1)開啟 Amazon EMR 控制檯 。

2)在 Cluster List 中,選擇您的叢集的名稱。

3)滾動到 Steps 部分並展開它,然後選擇 Add step。

4)在 Add step 對話方塊中:

  • 對於 Step type,選擇 Hive program。
  • 對於 Name,接受預設名稱 (Hive program) 或鍵入新名稱。
  • 對於 Script S3 location,鍵入
    s3://region.elasticmapreduce.samples/cloudfront/code/Hive_CloudFront.q

  • 對於 Output S3 location,鍵入或瀏覽到您在 建立 Amazon S3 儲存桶 中建立的 output 儲存桶。

  • 對於 Arguments,將該欄位保留為空白。
  • 對於 Action on failure,接受預設選項 Continue。
  • 選擇 Add。步驟會出現在控制檯中,其狀態為 Pending。

檢視結果

步驟成功完成之後,Hive 指令碼生成的查詢輸出會儲存在您在提交步驟時指定的 Amazon S3 輸出資料夾中。

  • 開啟 Amazon S3 控制檯

  • 在 Amazon S3 控制檯中,選擇您用於儲存輸出資料的儲存桶;例如,s3://myemrbucket/

  • 選擇 output 資料夾。

  • 查詢會將結果寫入單獨的資料夾中。選擇 os_requests。

  • Hive 查詢結果儲存在一個文字檔案中。要下載該檔案,請右鍵單擊它,選擇 Download,開啟 Download 的上下文選單(右鍵單擊),選擇 Save Link As,然後將檔案儲存到合適的位置。
    用文字編輯器(如 WordPad (Windows)、TextEdit (Mac OS) 或 gEdit (Linux))開啟該檔案。在輸出檔案中,可以看到作業系統的訪問請求數。

5.重置環境

刪除 Amazon S3 儲存桶

您無法刪除內含專案的 Amazon S3 儲存桶。首先,刪除 logs 和 output 資料夾,然後刪除儲存桶。

終止示例叢集

終止叢集會終止關聯的 Amazon EC2 例項並停止 Amazon EMR 費用的累計。Amazon EMR 免費儲存已完成叢集的相關元資料資訊兩個月,以用作參考。控制檯不提供將完成的叢集從控制檯刪除的方法;這些叢集會在兩個月後自動移除。

  • 開啟 Amazon EMR 控制檯

  • 在 Cluster List 頁面上,選擇您的叢集,然後選擇 Terminate。

  • 預設情況下,啟動用控制檯建立的叢集時會啟用終止保護,因此,您必須禁用它。在 Terminate clusters 對話方塊中,對於 Termination protection,選擇 Change。

  • 選擇 Off,然後確認更改。

  • 選擇 Terminate。