易於使用

Amazon EMR 簡化了大數據環境和應用程式的建構和營運。相關的 EMR 功能包括輕鬆佈建、擴展和重新設定叢集,以及用於協作開發的筆記本。

幾分鐘即可佈建叢集︰您只需幾分鐘就可以啟動 EMR 叢集。您不必擔心基礎架構佈建、叢集設定、組態或調校。EMR 處理任務,讓您能夠專注於開發差異化大數據應用程式。

輕鬆擴展資源以滿足業務需求:
您可以輕鬆地在策略中設定向外擴展和向內擴展,並讓 EMR 叢集自動管理運算資源以滿足您的使用和效能需求。這可提高叢集利用率並節省成本。

快速佈建多使用者筆記本:
EMR 筆記本提供強大且易於使用的筆記本體驗,讓您的使用者可以立即開始試用 Apache Spark。EMR Notebooks 基於 Jupyter Notebooks,協助資料科學家、分析師及開發人員使用 EMR 叢集準備和視覺化資料、與同儕協作、建置應用程式以及執行互動分析。EMR Notebooks 託管在您的 EMR 叢集之外,因此無需維護、部署或升級筆記本伺服器或筆記本軟體。

一鍵式高可用性:只需單個核取方塊,即可針對 YARN、HDFS、Apache Spark、Apache HBase 和 Apache Hive 等應用程式設定多主機。透過在 EMR 中啟用多主機支援,EMR 將設定這些應用程式以實現高可用性,並在發生故障時自動容錯轉移到備用主機,以便您的叢集不被中斷。監控主機以偵測故障,並在偵測到問題時,自動佈建新主機並將其新增至叢集。

輕鬆地重新設定執行中叢集︰您現在可以修改在 EMR 叢集上執行的應用程式組態,包括 Apache Hadoop、Apache Spark、Apache Hive 和 Hue,無須重新啟動叢集。使用 EMR 應用程式重新設定可快速修改應用程式,無須關閉或重新建立叢集。Amazon EMR 將會套用您的新組態,然後妥善重新啟動重新設定的應用程式。您可以透過主控台、軟體開發套件或 CLI 套用組態。

彈性

使用 Amazon EMR 可讓您輕鬆快速地佈建所需的容量,還有自動或手動新增和移除容量。在處理不確定或者不能預料的要求時,這非常有用。例如,如果大多數的處理發生在夜間,那麼,白天可能需要 100 個執行個體,而夜間則需要 500 個執行個體。另一種情況是,您可能在短期內需要龐大的容量。使用 Amazon EMR,您可以迅速地佈建數百或者數千個執行個體、自動擴展以符合運算需求,並在任務完成後關閉叢集,這樣就不用為閒置的容量付費。

elastic

新增或移除容量時有兩個主要選項:

部署多個叢集:如果您需要更多容量,可以輕鬆地啟動新的叢集,並在不再需要時將其終止。您擁有的叢集數量沒有限制。如果您有多個使用者或應用程式,可以使用多個叢集。例如,您可以將輸入資料存放在 Amazon S3 中,並為需要處理資料的每個應用程式啟動一個叢集。一個叢集可以針對 CPU 進行優化,第二個叢集可針對儲存進行優化,以此類推。

調整執行中叢集的大小:使用 Amazon EMR 可以輕鬆自動擴展手動調整執行中的叢集大小。您可能想要擴展叢集以暫時為叢集增加更多處理能力,或在有閒置容量時縮減叢集以節省成本。例如,一些客戶會在處理批次工作時在叢集新增數以百計的執行個體,並在處理完成時移除這些額外新增的執行個體。當新增執行個體到叢集時,EMR 現在可以在佈建的容量可用時立即使用該容量。EMR 可在縮減時主動選擇閒置的節點,以降低對執行中任務的影響。

低成本

Amazon EMR 旨在降低處理大量資料的成本。有助於降低成本的幾個功能,包括較低的每秒定價、Amazon EC2 Spot 執行個體整合、Amazon EC2 預留執行個體整合、彈性和 Amazon S3 整合。

較低的每秒定價:Amazon EMR 定價依每秒計費且需支付一分鐘最低費用,小型執行個體的每執行個體小時起價為 0.015 USD (每年 131.40 USD)。請參閱定價部分,以了解詳細資訊。

Amazon EC2 Spot 執行個體整合:Amazon EC2 Spot 執行個體可讓您針對 Amazon EC2 容量出價。您只需指定願意為執行某特定執行個體類型支付的最高小時價格。只要您的出價超過 Spot 市場價格,就可以繼續使用該執行個體,而且一般情況下只需支付一部分的隨需價格。Spot 價格會隨著執行個體的供需而浮動,但您支付的價格不會超過您所指定的最高價格。Amazon EMR 可讓您輕鬆使用 Spot 執行個體,所以可以同時節省時間和金錢。Amazon EMR 叢集包括執行 HDFS 的「核心節點」和不執行 HDFS 的「任務節點」;任務節點非常適合 Spot 執行個體,因為 Spot 價格上漲的話,您會失去這些執行個體,但不會損失 HDFS 中存放的資料。(進一步了解關於核心節點和任務節點的資訊。)

Amazon EC2 預留執行個體整合:使用 Amazon EC2 預留執行個體可維持彈性運算的優勢,同時降低成本並預留容量。利用預留執行個體,您只需支付價格低廉的一次性費用,即可在該執行個體的每秒使用費上獲得大幅折扣。Amazon EMR 可讓您輕鬆利用預留執行個體,以節省多達 65% 的隨需價格。

彈性:因為 Amazon EMR 可讓您輕鬆地自動擴展叢集,所以無須佈建多餘的容量。例如,您可能不知道叢集未來 6 個月將處理多少資料,或者您可能會有峰值處理需求。使用 Amazon EMR,您無須揣測未來的需求,或者為峰值需求佈建容量,因為您隨時可以輕鬆地新增/移除容量。

Amazon S3 整合:EMR 檔案系統 (EMRFS) 可讓 EMR 叢集有效且安全地將 Amazon S3 作為 Hadoop 物件存放區使用。您可以將資料存放在 Amazon S3 中,並使用多個 Amazon EMR 叢集處理同一個資料集。每個叢集都可以針對特定的工作負載進行優化,這比單一叢集為多個要求不同的工作負載提供服務更有效率。例如,您可能有一個針對 I/O 優化的叢集,而另一個叢集則是針對 CPU 進行優化,這兩個叢集都在 Amazon S3 中處理相同的資料集。此外,將輸入與輸出資料存放在 Amazon S3 中,還可以在不再需要的時候關閉叢集。

EMRFS 在 Amazon S3 讀寫方面擁有極高效能,支援使用 AWS Key Management Service (KMS) 或客戶管理的金鑰進行 S3 伺服器端或 S3 用戶端加密,同時提供可選的一致性檢視,用於檢查在中繼資料中追蹤之物件的清單和先寫後讀一致性。同時,Amazon EMR 叢集可同時使用 EMRFS 和 HDFS,如此您就不須在叢集上的儲存和 Amazon S3 之間作選擇。

AWS Glue 資料型錄整合:您可以使用 AWS Glue 資料型錄做為受管中繼資料儲存庫,存放 Apache Spark 和 Apache Hive 的外部表格中繼資料。除此之外,還提供自動結構描述探索和結構描述版本歷史記錄。這可讓您在叢集外輕鬆地保存 Amazon S3 外部表格的中繼資料。

靈活的資料存放區

使用 Amazon EMR,您可以利用多種資料存放區,包括 Amazon S3、Hadoop 分散式檔案系統 (HDFS) 和 Amazon DynamoDB。

DetailsPage_EMR-Diagram

Amazon S3:Amazon S3 是具有高耐用性、可擴展性、安全、快速且經濟實惠的儲存服務。使用 EMR 檔案系統 (EMRFS),Amazon EMR 可以有效率且安全地將 Amazon S3 作為 Hadoop 物件存放區使用。Amazon EMR 對 Hadoop 進行許多改良,可讓您順暢地處理 Amazon S3 中存放的大量資料。而且 EMRFS 還可以提供一致的檢視,用於檢查 Amazon S3 中物件的清單和先寫後讀一致性。EMRFS 支援 S3 伺服器端或 S3 用戶端加密,以處理加密的 Amazon S3 物件,您可以使用 AWS Key Management Service (KMS) 或自訂的金鑰供應商。

啟動叢集時,Amazon EMR 會將資料從 Amazon S3 串流到叢集中的每個執行個體,並立即進行處理。將資料存放在 Amazon S3 中並使用 Amazon EMR 進行處理的一個優點是:您可以使用多個叢集處理相同的資料。例如,您可能有一個針對記憶體進行優化的 Hive 開發叢集和一個針對 CPU 進行優化的 Pig 生產叢集,兩個叢集都使用同一個輸入資料集。

Hadoop 分散式檔案系統 (HDFS):HDFS 是 Hadoop 檔案系統。Amazon EMR 的目前拓撲將它的執行個體分成 3 個邏輯執行個體群組:Master Group,執行 YARN Resource Manager 和 HDFS Name Node Service;Core Group,執行 HDFS DataNode Daemon 和 YARN Node Manager 服務;及 Task Group,執行 YARN Node Manager 服務。Amazon EMR 會在與 Core Group 中執行個體關聯的儲存上安裝 HDFS。

每個 EC2 執行個體都有固定的儲存數量 (稱為「執行個體存放區」),與執行個體連接。您也可以透過將 Amazon EBS 磁碟區新增到執行個體的方式,自訂執行個體上的儲存。Amazon EMR 可讓您新增一般用途 (SSD)、佈建 (SSD) 和磁帶磁碟區類型。新增到 EMR 叢集的 EBS 磁碟區,在叢集停止之後無法保存資料。您終止叢集之後,EMR 會自動清理磁碟區。

您也可以使用 Amazon EMR 安全組態,或使用 Hadoop 金鑰管理伺服器手動建立 HDFS 加密區,以啟用 HDFS 的完整加密。

Amazon DynamoDB:Amazon DynamoDB 是一種全受管的快速 NoSQL 資料庫服務。Amazon EMR 與 Amazon DynamoDB 直接整合,因此您可以迅速且有效率地處理 Amazon DynamoDB 中存放的資料,並在 Amazon EMR 中的 Amazon DynamoDB、Amazon S3 和 HDFS 間傳輸資料。

其他 AWS 資料存放區:Amazon EMR 客戶還可以使用 Amazon Relational Database Service (一種可在雲端中輕鬆設定、操作和擴展關聯式資料庫的 Web 服務)、Amazon Glacier (一種成本極低的儲存服務,為資料存檔和備份提供安全且耐久的儲存) 以及 Amazon Redshift (一種快速、全受管的 PT 級資料倉儲服務)。AWS Data Pipeline 是一種 Web 服務,可協助客戶可靠地處理資料,並以指定的時間間隔在不同 AWS 運算與儲存服務 (包括 Amazon EMR) 以及現場部署資料來源之間移動資料。

使用您喜愛的開放原始碼應用程式

在 Amazon EMR 上使用版本控制發行功能,您可以輕鬆地在 EMR 叢集選取和使用最新的開放原始碼專案,包括 Apache Spark 和 Hadoop 生態系統中的應用程式。Amazon EMR 會安裝和設定軟體,所以您可以將更多時間用於提升資料的價值,無須擔心基礎設施和管理任務。

emr-5.24.0

Hadoop 工具

Amazon EMR 支援各種強大、經過驗證的 Hadoop 工具,如 Apache Spark、Pig、Apache Hive 和 Apache HBase。此外,它還可以執行深度學習和機器學習工具,如 TensorFlow、Apache MXNet,透過引導動作,您可以新增自己的使用案例特定工具和庫。對於互動式開發,Hue 和 EMR Notebooks 可用於撰寫 Apache Spark 任務並將 SQL 查詢提交至 Apache Hive 和 Presto。

Hadoop applications

數據處理和機器學習

Apache Spark 是 Hadoop 生態系統中的引擎,可以快速處理大量資料集。它使用記憶體內容錯恢復分散式資料集 (RDD) 和有向非循環圖 (DAG) 來定義資料轉換。Spark 還包括 Spark SQL、Spark 串流、MLlib 和 GraphX。了解 什麼是 Spark,以及進一步了解 EMR 上的 Spark

Apache Flink 是一個串流資料流引擎,可讓它在高輸送量資料來源上輕鬆執行即時串流處理。它為異常事件、僅處理一次的語意、反壓控制,以及針對寫入串流與批次應用程式最佳化的 API 提供了事件時間語意支援。進一步了解 EMR 上的 Flink

TensorFlow 是用於機器智慧和深度學習應用程式的開放原始碼符號數學庫。TensorFlow 將多個機器學習和深度學習模型以及演算法繫結在一起,可以為許多不同的使用案例訓練和執行深度神經網絡。進一步了解 EMR 上的 TensorFlow

SQL

Apache Hive 是在 Hadoop 上執行的一種開放原始碼資料倉儲和分析套件。Hive 使用 Hive QL (一種以 SQL 為基礎的語言) 進行操作,這可讓使用者建構、摘要和查詢資料。Hive QL 的功能超過標準 SQL,新增 map/reduce 函數的第一級支援及複雜且可擴展的使用者定義資料類型,如 JSON 與 Thrift。這個功能讓您能夠處理複雜和非結構化的資料來源,例如,文字文件和日誌檔。Hive 支援透過以 Java 編寫的使用者定義函數進行使用者擴展。Amazon EMR 對 Hive 進行了許多改進,包括直接整合 Amazon DynamoDB 和 Amazon S3。例如,您可以使用 Amazon EMR 自動從 Amazon S3 載入表格分區、無須使用暫存檔案即可將資料寫入 Amazon S3 中的表格,而且還可存取 Amazon S3 中的資源,如適用於自訂 map/reduce 操作的指令碼及其他程式庫。了解什麼是 Hive,並深入了解 EMR 上的 Hive

Presto 是一種開放原始碼的分散式 SQL 查詢引擎,已針對低延遲和資料臨機操作分析進行優化。它支援 ANSI SQL 標準,包含複雜查詢、彙總、加入 (join) 和視窗函數。Presto 可以處理來自多個資料來源的資料,而這些資料來源包含 Hadoop 分散式檔案系統 (HDFS) 和 Amazon S3。了解什麼是 Presto,以及進一步了解 EMR 上的 Presto

Apache Phoenix 透過 Apache HBase 中存放的資料來啟用低延遲的 SQL 及 ACID 交易能力。您可以輕鬆建立次要索引以提供額外效能,並透過相同的基礎 HBase 表格建立不同的檢視。進一步了解 Amazon EMR 上的 Phoenix。
 

NoSQL

Apache HBase 是一種仿效 Google BigTable 的開放原始碼、非關聯式、分散式資料庫。它是 Apache 軟體基金會 Hadoop 專案開發的一部分,在 Hadoop 分散式檔案系統 (HDFS) 上執行,為 Hadoop 提供與 BigTable 類似的功能。HBase 為您提供一種可儲存大量疏鬆資料的容錯、高效率方法,此方法採用以欄為基礎的壓縮和儲存方式。此外,因為 HBase 將資料快取在記憶體內,所以能夠提供快速資料查詢。HBase 在連續寫入操作方面已經過優化,且批次插入、更新和刪除等操作的效率很高。HBase 可與 Hadoop 無縫搭配,不但共享檔案系統,且做為 Hadoop 任務的直接輸入和輸出。HBase 也與 Apache Hive 整合,對 HBase 表啟用類似 SQL 的查詢,與以 Hive 為基礎的表格結合,以及支援 Java 資料庫連接 (JDBC)。透過 EMR,您可以使用 S3 做為 HBase 的資料存放區,讓您降低成本和減少操作複雜性。如果使用 HDFS 做為資料存放區,您可以將 HBase 備份到 S3,並從之前建立的備份恢復。了解什麼是 HBase,並深入了解 EMR 上的 HBase

互動式分析

Hue 是適用於 Hadoop 的開放原始碼使用者界面,可讓您更輕鬆地執行和開發 Hive 查詢、管理 HDFS 中的檔案、執行和開發 Pig 指令碼以及管理表格。EMR 上的 Hue 還與 Amazon S3 整合,因此您可以直接查詢 S3,並在 HDFS 和 Amazon S3 之間輕鬆地傳輸檔案。進一步了解有關 Hue 和 EMR 的資訊。

EMR Notebooks 基於開放原始碼 Jupyter 專案,並針對 Spark 進行預先設定。支援 Spark 魔術核心,可讓您在使用 PySpark、Spark SQL、Spark R 和 Scala 等語言編寫的 EMR 叢集上,以互動方式執行 Spark 任務。這些筆記本隨附 Conda 的開放原始碼程式庫,您可匯入這些程式庫,用以管理資料或以豐富的圖形顯示運算結果。此外,每個筆記本皆已與 Spark 監控功能整合,可方便您監控任務的進度,並直接偵錯筆記本的程式碼。

Jupyter Notebook 是開放原始碼 Web 應用程式,您可以用於建立和共用包含即時代碼、方程式、視覺化和敘述文字的文件。JupyterHub 可讓您託管單使用者 Jupyter Notebook 伺服器的多個執行個體。使用 JupyterHub 建立 EMR 叢集時,EMR 會在叢集的主節點上建立 Docker 容器。JupyterHub、Jupyter 所需的所有元件和 Sparkmagic 在容器內執行。

Apache Zeppelin 是一種開放原始碼的 GUI,可針對使用 Spark 的資料探索來建立互動和協作式的筆記本。您可以使用 Scala、Python、SQL (使用 Spark SQL) 或 HiveQL 來操控資料和快速將結果視覺化。Zeppelin 筆記本可以與數個使用者共享,而視覺效果能發佈到外部儀表板。進一步了解 EMR 上的 Zeppelin

排程和工作流程

Apache Oozie 是一種 Hadoop 工作流程排程器,讓您可以建立動作的有向無環圖 (DAG)。您也能輕鬆以動作或時間來觸發 Hadoop 工作流程。進一步了解 EMR 上的 Oozie

其他專案和工具

EMR 還支援其他各種常用的應用程式和工具,如 R、Apache Pig (資料處理和 ETL)、Apache Tez (複雜的 DAG 執行)、Apache MXNet (深度學習)、Apache Mahout (機器學習)、Ganglia (監控)、Apache Accumulo (安全的 NoSQL 資料庫)、Apache Sqoop (關聯式資料庫連接器)、HCatalog (表格和儲存管理) 等。Amazon EMR 團隊負責維護引導操作的開放原始碼儲存庫,該儲存庫可以用於安裝其他軟體、設定叢集,或者在編寫您自己的引導操作時作為範例使用。 

其他功能

調整叢集:您可以根據應用程式的要求,選擇要在叢集中佈建的 EC2 執行個體類型 (標準型、記憶體增強型、CPU 增強型、高 I/O 等等)您擁有每個執行個體的根存取權限,可完全自訂叢集以滿足您的需求。進一步了解支援的 Amazon EC2 執行個體類型的相關資訊。

偵錯應用程式:啟用叢集上的偵錯後,Amazon EMR 會將日誌檔存檔到 Amazon S3,然後製作這些檔案的索引。您之後就能使用主控台的圖形界面,以直覺的方式瀏覽日誌及檢視任務歷史記錄。進一步了解偵錯 Amazon EMR 任務的相關資訊。

監控您的叢集:您可以使用 Amazon CloudWatch 監控 23 個自訂的 Amazon EMR 指標,如執行中 map 和 reduce 任務的平均數量。您還可以在這些指標上設定警示。進一步了解監控 Amazon EMR 叢集的相關資訊。

回應事件:您可以使用 Amazon CloudWatch Events 中的 Amazon EMR 事件類型,回應 Amazon EMR 叢集中的狀態變更。使用可快速設定的簡單規則,讓您比對事件並將其路由到 Amazon SNS 主題、AWS Lambda 函數、Amazon SQS 佇列等等。進一步了解 Amazon EMR 叢集中的事件。

排定重複發生的工作流程:您可以使用 AWS Data Pipeline 排定各種與 Amazon EMR 相關的重複發生工作流程。AWS Data Pipeline 是一種 Web 服務,可協助您在指定的間隔,可靠地在不同 AWS 運算與儲存服務以及現場部署資料來源之間移動資料。進一步了解 Amazon EMR 和 Data Pipeline 的相關資訊。

Cascading:Cascading 是一種開放原始碼 Java 程式庫,可提供用於建立和執行 Hadoop MapReduce 應用程式的查詢 API、查詢規劃器和任務排程器。與其他原生 Hadoop 應用程式類似,使用 Cascading 開發的應用程式會編譯且封裝成標準 Hadoop 相容 JAR 檔。進一步了解 Cascading 和 Amazon EMR 的相關資訊。

深度學習:使用 Apache MXNet 等常用的深度學習架構定義、訓練和部署深度神經網路。您可以在 Amazon EMR 叢集使用這些架構搭配 GPU 執行個體。進一步了解 Amazon EMR 上的 MXNet。

控制叢集的網路存取:您可以在 Amazon Virtual Private Cloud (VPC) 中啟動叢集,這是一種邏輯上隔離的 AWS 雲端部分。您可以完全掌控虛擬聯網環境,包括選擇自己的 IP 地址範圍、建立子網路,以及配置路由表和網路閘道。進一步了解 Amazon EMR 和 Amazon VPC 的相關資訊。

管理使用者、許可和加密:您可以使用 AWS Identity and Access Management (IAM) 工具 (如 IAM 使用者和角色) 控制存取和許可。例如,您可以為某些使用者提供叢集的讀取存取,但不提供寫入存取。另外,您可以使用 Amazon EMR 安全組態設定各種靜態和動態加密選項,包含 Amazon S3 加密和 Kerberos 身份驗證支援。進一步了解叢集的存取控制Amazon EMR 加密選項

安裝額外的軟體:您可以使用引導操作或執行 Amazon Linux 的自訂 Amazon Machine Image (AMI) 在叢集上安裝額外的軟體。引導操作指的是 Amazon EMR 啟動叢集時在叢集節點上執行的指令碼。它們會在啟動 Hadoop 和節點開始處理資料前執行。還能在自訂 Amazon Linux AMI 預先載入和使用軟體。進一步了解 Amazon EMR 引導操作自訂 Amazon Linux AMI

有效率地複製資料:您可以迅速地將大量資料從 Amazon S3 移到 HDFS,從 HDFS 移到 Amazon S3,並使用 Amazon EMR 的 S3DistCp 在 Amazon S3 儲存貯體之間進行移動。S3DistCp 是開放原始碼工具 Distcp 的擴展,它可使用 MapReduce 有效率地移動大量資料。進一步了解 S3DistCp

Hadoop 串流:Hadoop 串流是 Hadoop 隨附的一種公用程式,可讓您以非 Java 語言開發 MapReduce 可執行檔。串流是以 JAR 檔的形式進行實作。進一步了解使用 Amazon EMR 進行 Hadoop 串流的相關資訊。

自訂 Jar:編寫 Java 程式、針對您希望使用的 Hadoop 版本進行編譯並上傳到 Amazon S3。然後,您就可以使用 Hadoop JobClient 界面將 Hadoop 任務提交到叢集。進一步了解使用 Amazon EMR 進行自訂 Jar 處理的相關資訊。

進一步了解 Amazon EMR 定價

瀏覽定價頁面
準備好開始建立?
開始使用 Amazon EMR
還有其他問題嗎?
聯絡我們