[AWS] 01 - What is Amazon EMR

[DE] ML on Big data: MLlibhtml

關於 Amazon EMR 發佈版本node

利用 Amazon EMR 分析大數據程序員


  • Amazon Athena 是一種交互式查詢服務,讓您可以輕鬆使用標準 SQL 直接分析 Amazon S3 中的數據。
  • EMR 解決Hadoop集羣部署和管理的難題;
  • Amazon CloudSearch 是一款在 AWS 雲中託管的服務,可以讓您簡單且經濟高效地爲網站或應用程序設置、管理或擴展搜索解決方案。
  • Elasticsearch Service
  • Kinesis 讓實時數據的捕捉與分析變得再也不困難。
  • QuickSight 雲BI服務。
  • Data Pipeline 使用它安排將輸入數據移入 Amazon S3 的時間,以及安排啓動集羣處理這些數據的時間。
  • AWS Glue 一項徹底託管的提取、轉換和加載 (ETL) 服務,讓客戶可以輕鬆加載數據倉庫中的數據進行分析。
  • AWS Lake Formation 數據湖是一個安全的集中式輔助存儲庫,它以數據原始形式和可用於分析的形式存儲全部數據。
  • MSK 徹底託管服務,可以讓您輕鬆構建並運行使用 Apache Kafka 的應用程序來處理流數據。

 

常見問題:Can we consider AWS Glue as a replacement for EMR?算法

 

 

瞭解集羣和節點

向集羣提交工做

處理數據

啓動集羣時,您須要選擇要安裝的框架和應用程序,以知足您的數據處理需求。要處理 Amazon EMR 集羣中的數據,您能夠直接向已安裝的應用程序提交做業或查詢,或在集羣中運行步驟數據庫

直接嚮應用程序提交做業

您能夠直接向安裝在 Amazon EMR 集羣中的應用程序提交做業和與之交互。編程

爲此,您一般須要經過安全鏈接與主節點鏈接,並訪問可用於直接運行在集羣上的軟件的接口和工具。有關更多信息,請參閱 鏈接到集羣緩存

 

運行步驟以處理數據

您能夠向 Amazon EMR 集羣提交一個或多個有序的步驟。每一個步驟都是一個工做單位,其中包含可由集羣上安裝的軟件處理的數據操做指令。安全

下面是一個使用四個步驟的示例處理操做:app

  1. 提交要處理的輸入數據集。框架

  2. 使用 Pig 程序處理第一個步驟的輸出。(是MapReduce的一個抽象;使用 Pig Latin ,程序員能夠輕鬆地執行MapReduce做業,而無需在Java中鍵入複雜的代碼。)

  3. 使用 Hive 程序處理第二個輸入數據集。(hive是數據倉庫,在hadoop基礎上處理結構化數據。)

  4. 寫入一個輸出數據集。

 

數據倉庫和數據庫的區別?

通常來講,傳統數據庫是爲存儲而生,而數據倉庫很明顯,是爲分析而生。

 

運行狀態(正常)切換

一般,在 Amazon EMR 中處理數據時,輸入爲以文件形式存儲在您選擇的底層文件系統(如 Amazon S3 或 HDFS)中的數據。數據從處理序列中的一個步驟傳遞到下一個。最後一步將輸出數據寫入指定位置,如 Amazon S3 存儲桶。

步驟按下面的序列運行:

  1. 提交請求以開始處理步驟。

  2. 全部步驟的狀態均設爲 PENDING (待處理)

  3. 序列中的第一個步驟啓動時,其狀態更改成 RUNNING (正在運行)。其餘步驟仍處於 PENDING (待處理) 狀態。

  4. 第一個步驟完成後,其狀態更改成 COMPLETED (已完成)

  5. 序列中的下一個步驟啓動,其狀態更改成 RUNNING (正在運行)。完成時,其狀態更改成 COMPLETED (已完成)

  6. 對每一個步驟重複這一模式,直到全部步驟均完成,處理結束。

 

下圖顯示了此步驟序列及隨着處理的進行各步驟的狀態更改。

 
 

運行狀態(異常)切換

若是處理期間步驟失敗,其狀態會更改成 TERMINATED_WITH_ERRORS。您能夠肯定接下來如何處理每一個步驟。默認狀況下,序列中的任何其他步驟設置爲 CANCELLED (取消) 而且不運行。您也能夠選擇忽略失敗並容許繼續執行其他步驟,或者當即終止集羣。

下圖顯示了此步驟序列和處理期間某個步驟失敗時默認的狀態變動。

 

 

理解集羣的生命週期

成功的 Amazon EMR 集羣會遵循這個流程:

  1. 根據您指定的設置,Amazon EMR 先爲每一個實例預置集羣中的 EC2 實例。在這個期間,集羣的狀態是 STARTING

  2. Amazon EMR 在每一個實例上運行您指定的引導操做。您可使用引導操做安裝自定義應用程序並執行所需的自定義。

  3. Amazon EMR 安裝在建立集羣時指定的本機應用程序,例如,Hive、Hadoop 和 Spark 等。

  4. 在成功完成引導操做並安裝本機應用程序後,集羣狀態爲RUNNING。此時,您能夠鏈接到集羣實例,集羣將按順序運行在建立集羣時指定的任何步驟。您能夠提交額外的步驟,這些步驟在任何之前的步驟完成後運行。

  5. 在成功運行步驟後,集羣將進入WAITING狀態。若是集羣配置爲在完成最後一個步驟後自動終止,則會進入SHUTTING_DOWN狀態。

  6. 在終止全部實例後,集羣將進入COMPLETED狀態。

集羣生命週期中的故障將致使 Amazon EMR 終止集羣及其全部實例,除非啓用了終止保護。若是集羣因爲故障而終止,則會刪除集羣上存儲的任何數據並將集羣狀態設置爲FAILED。若是啓用了終止保護,您能夠從集羣中檢索數據,而後刪除終止保護並終止集羣。

 

 

Amazon EMR 體系結構概述

存儲

Hadoop 分佈式文件系統 (HDFS)

  • 不一樣的實例上存儲多份數據副本。
  • 暫時性存儲,會在集羣終止時收回。
  • 在緩存 MapReduce 處理期間的中間結果或具備大量隨機 I/O 的工做負載時很是有用。

EMR 文件系統 (EMRFS) 

本地文件系統 (Local FS)

 

集羣資源管理

默認狀況下,Amazon EMR 使用 YARN (Yet Another Resource Negotiator) (Apache Hadoop 2.0 中引入的一個組件) 集中管理多個數據處理框架的集羣資源。

 

數據處理框架

數據處理框架層是用於分析和處理數據的引擎。在 YARN 上運行並具備本身的資源管理功能的框架有不少,Hadoop MapReduce 和 Spark 是可用於 Amazon EMR 的主處理框架。

Spark 是一種用於處理大數據工做負載的集羣框架和編程模型。與 Hadoop MapReduce 同樣,Spark 是開源、分佈式的處理系統,但它爲執行計劃使用有向無環圖併爲數據集使用內存緩存。在 Amazon EMR 上運行 Spark 時,您可使用 EMRFS 直接訪問 Amazon S3 中的數據。Spark 支持多種交互式查詢模塊,如 SparkSQL。

 

應用程序和項目

Amazon EMR 支持許多應用程序,如 Hive、Pig 和 Spark Streaming 庫,以提供使用更高級的語言建立處理工做負載、運用機器學習算法、製做流處理應用程序、構建數據倉庫等功能。此外,Amazon EMR 還支持擁有本身的集羣管理功能而不使用 YARN 的開源項目。

 

End.

相關文章
相關標籤/搜索