開始使用 Amazon EMR

建立免費帳戶

如果您的資料處理需求規模龐大,則您可能符合要求較低定價的資格。

聯絡我們以進一步了解資訊。



問:什麼是 Amazon EMR?

Amazon EMR 是一種能讓企業、研究人員、資料分析師和開發人員輕鬆且經濟實惠地處理大量資料的 Web 服務。此服務採用 Web 規模的 Amazon Elastic Compute Cloud (Amazon EC2) 和 Amazon Simple Storage Service (Amazon S3) 基礎設施上執行的託管 Hadoop 框架。

問:Amazon EMR 可以用來做什麼?

使用 Amazon EMR 時,您可以視需要即時佈建所需的容量,以執行資料密集型任務的應用程式,例如,Web 索引編列、資料探勘、日誌檔案分析、機器學習、財務分析、科學模擬和生物資訊學研究等。Amazon EMR 讓您可以專注於處理或分析資料,無須擔心費時的 Hadoop 叢集設定、管理或調校,也無須擔心所需要的運算容量。

Amazon EMR 很適合用來解決需要快速、高效率處理大量資料的問題。Web 服務界面可讓您建置處理工作流程,並以程式設計方式監控叢集的執行進度。此外,您可以使用 AWS 管理主控台上簡單的 Web 界面啟動叢集,並監控對 Amazon EC2 執行個體叢集進行的處理密集型運算。

問:誰可以使用 Amazon EMR?

需要以簡單的方式存取強大資料分析功能的任何人都能使用 Amazon EMR。您不需要任何軟體開發經驗,就可以試用開發人員指南AWS 大數據部落格提供的一些範例應用程式。

問:使用 Amazon EMR 可以做到哪些之前無法做到的事情?

Amazon EMR 可大幅降低耗時的設定和管理工作的複雜性,並對資料所在的 Hadoop 叢集或運算容量進行調校。您可以即時擴充大型 Hadoop 叢集,並在幾分鐘內就開始處理,無須等待數小時或數天。除非您另行指定,否則叢集會在處理完成後自動終止,您就不必為不再需要的資源支付費用。

您可以使用此服務快速執行應用程式的資料密集型任務,例如,Web 索引編列、資料探勘、日誌檔案分析、機器學習、財務分析、科學模擬及生物資訊學研究等。

身為軟體開發人員,您還可以開發和執行更為複雜的應用程式,以新增排程、工作流程、監控等功能或其他功能。

問:Amazon EMR 採用哪種資料處理引擎?

Amazon EMR 採用 Apache Hadoop 做為其分散式資料處理引擎。Hadoop 是一種開放原始碼 Java 軟體架構,可支援在大型商業硬體叢集上執行的資料密集型分散式應用程式。Hadoop 實作名為 "MapReduce" 的程式設計模型,該模型會將資料分為許多小的工作片段,每個工作片段可在叢集的任何節點上執行。開發人員、企業和新創公司均已廣泛運用此架構,且已被證實是可在數千部商用機器叢集中處理高達數 PB 資料的可靠軟體平台。

問:什麼是 Amazon EMR 叢集?

Amazon EMR 從以前就將 Amazon EMR 叢集 (以及指派給該叢集的所有處理步驟) 稱為「叢集」。每個叢集都有一個以 "j-" 開頭的唯一識別符。

問:什麼是叢集步驟?

叢集步驟是使用者定義的處理單位,其大約對應到一個操作資料的演算法。步驟是一種以 Java、Ruby、Perl、Python、PHP、R 或 C++ 編寫,並以 Java Jar 或串流程式的方式實作的 Hadoop MapReduce 應用程式。例如,要計算文件中單詞出現的頻率,並按計數排序輸出結果,第一個步驟是計算每個單詞出現次數的 MapReduce 應用程式,第二個步驟則是根據計數來排序第一個步驟輸出結果的 MapReduce 應用程式。

問:叢集有哪些不同的狀態?

STARTING – 叢集佈建、啟動和設定 EC2 執行個體。
BOOTSTRAPPING – 叢集上正在執行引導操作。
RUNNING – 目前正在執行叢集步驟。
WAITING – 叢集目前作用中,但沒有要執行的步驟。
TERMINATING – 叢集正在執行關閉程序。
TERMINATED – 叢集已關閉,且沒有發生錯誤。
TERMINATED_WITH_ERRORS – 叢集已關閉,但發生錯誤。

問:步驟有哪些不同的狀態?

PENDING – 步驟正在等待執行。
RUNNING – 步驟目前正在執行。
COMPLETED – 步驟已成功完成。
CANCELLED – 步驟已在執行前取消,因為之前的步驟故障或叢集在執行該步驟前已終止。
FAILED – 步驟在執行時發生故障。

回到最上層 >>


問:如何存取 Amazon EMR?

您可以使用 AWS 管理主控台、命令列工具、軟體開發套件或 EMR API 存取 Amazon EMR。

問:如何啟動叢集?

您可以填寫簡單的叢集申請表,透過 AWS 管理主控台啟動叢集。您要在申請表中指定叢集的名稱、Amazon S3 中輸入資料的位置、處理應用程式、所需的資料輸出位置,以及希望使用的 Amazon EC2 執行個體數量和類型。您也可以指定存放叢集日誌檔案和 SSH 金鑰的位置,以便在叢集執行時進行登入。或者,您可以使用 RunJobFlow API 或在命令列工具中使用 ‘create’ 命令啟動叢集。

問:如何開始使用 Amazon EMR?

要註冊 Amazon EMR,按一下 Amazon EMR 詳細資訊頁面 http://aws.amazon.com/elasticmapreduce 上的「立即註冊」按鈕。您必須註冊 Amazon EC2 和 Amazon S3 才能存取 Amazon EMR;如果尚未註冊這些服務,系統會在 Amazon EMR 註冊過程中提示您註冊。註冊後,請參閱 Amazon EMR 文件,其中包括能夠協助您開始使用此服務的入門指南。

問:如何終止叢集?

您可以隨時在 AWS 管理主控台中選擇叢集並按一下 "Terminate" 按鈕來終止叢集。或者,也可以使用 TerminateJobFlows API。如果終止正在執行的叢集,則 Amazon S3 中尚未保存的任何結果都將遺失,而且所有 Amazon EC2 執行個體都會關閉。

問:Amazon EMR 是否支援多個叢集同時操作?

是。即使您已在執行一或多個叢集,還是可以隨時建立新的叢集。

問:我可以同時執行多少個叢集?

您可以根據需要執行任何數量的叢集,但在所有叢集僅限執行 20 個執行個體。如果需要更多執行個體,請填寫 Amazon EC2 執行個體申請表並與您的使用案例一起提交,我們將酌情增加您的執行個體數量。如果您的 Amazon EC2 限額已提升,Amazon EMR 叢集就會套用新的限額。

回到最上層 >>


問:哪裡可以找到程式碼範例?

有關範本程式碼,請參閱這些文章和教學

問:如何開發資料處理應用程式?

您可以在桌面開發資料處理工作,例如,使用 Eclipse 或 NetBeans 外掛程式,像是適用於 Eclipse 的 IBM MapReduce 工具 (http://www.alphaworks.ibm.com/tech/mapreducetools)。使用這些工具可以輕鬆開發和偵錯 MapReduce 工作,並在自己的本機電腦進行測試。此外,您可以使用一或多個執行個體直接在 Amazon EMR 開發自己的叢集。

問:相較於 AWS 管理主控台,使用命令列工具或 API 有什麼優勢?

命令列工具或 API 能夠讓您以程式設計方式啟動和監控叢集的執行進度、建立與叢集相關的其他自訂功能 (例如,多個處理步驟、排程、工作流程或監控的順序),或為其他 Amazon EMR 客戶建置加值型工具或應用程式。相比之下,AWS 管理主控台提供易用的圖形界面,可以直接從 Web 瀏覽器啟動和監控叢集。

問:是否可在執行中的叢集新增步驟?

是。您在工作執行之後可以透過 AddJobFlowSteps API 選擇性地新增更多步驟。AddJobFlowSteps API 會在目前步驟序列結尾加入新的步驟。您可以使用此 API 在叢集中執行條件邏輯或進行偵錯。

問:是否可執行持久性叢集?

是。使用 –alive 旗標啟動的 Amazon EMR 叢集將持續執行,直到明確終止。如此可讓客戶根據需要在叢集新增步驟。您可以使用此服務來偵錯應用程式,而不必重複等待叢集啟動。您也能使用持久性叢集來執行長時間執行的資料倉儲叢集。這可以和在 Hadoop 執行的資料倉儲和分析套件 (如 Hive 和 Pig) 結合使用。

問:當叢集完成時,我是否會收到通知?

您可以註冊 Amazon SNS,當叢集完成時就會貼文到您的 SNS 主題。您也可以在 AWS 管理主控台上查看叢集進度,或者使用命令列、軟體開發套件或 API 取得叢集狀態。

問:Amazon EMR 支援哪些程式設計語言?

您可以使用 Java 實作 Hadoop 自訂 Jar。或者,也可以透過 Hadoop 串流,使用包括 Perl、Python、Ruby、C++、PHP 和 R 在內的其他語言。請參閱開發人員指南,了解使用 Hadoop 串流的相關說明。

問:Amazon EMR 支援哪些作業系統版本?

目前,Amazon EMR 支援 32 位元和 64 位元模式的 Debian/Squeeze。

問:是否可在叢集執行時查看 Hadoop UI?

是。請參閱開發人員指南中的 Hadoop UI 部分,了解如何存取 Hadoop UI 的相關說明。

問:Amazon EMR 是否支援第三方軟體套件?

是。建議使用引導操作,在叢集中安裝第三方軟體套件。或者,您可以將任何第三方程式庫直接封裝到您的映射器或縮減器可執行檔。您也可以使用 Hadoop 分散式快取機制上傳靜態編譯的可執行檔。

問:Amazon EMR 支援哪些 Hadoop 版本?

如需 Amazon EMR 支援的最新版本,請參考文件

問:是否可使用 Hadoop 以外的其他資料處理引擎?

是,有些 EMR 客戶使用 Spark 和 Shark (記憶體內 MapReduce 和資料倉儲) 做為他們的處理引擎。有關如何操作的相關說明,請參閱這篇文章

問:Amazon 是否會將 Hadoop 的增強功能提供給開放原始碼社群?

是。Amazon EMR 積極參與開放原始碼社群,並為 Hadoop 原始碼提供許多修正程式。

問:Amazon EMR 是否會更新支援的 Hadoop 版本?

Amazon EMR 會根據社群發佈的 Hadoop,定期更新支援的 Hadoop 版本。Amazon EMR 可能會選擇略過某些 Hadoop 版本。

問:Amazon EMR 會多快淘汰對舊版 Hadoop 的支援?

Amazon EMR 服務會在 Hadoop 版本過期後幾個月淘汰舊版本的支援。但是,Amazon EMR API 可以與舊版相容,所以如果您使用這些 API 建置工具,仍然可在 Amazon EMR 更新所使用的 Hadoop 版本後繼續使用。

回到最上層 >>


問:如何偵錯叢集?

在 AWS 管理主控台,先選擇要偵錯的叢集,然後按一下 "Debug" 按鈕,以存取偵錯叢集視窗。這讓您可以追蹤叢集的進度,並找出叢集步驟、工作、任務或任務嘗試中的問題。或者,您可以直接使用 SSH 存取執行叢集的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,並使用偏好的命令列偵錯程序來排除叢集故障。

問:什麼是叢集偵錯工具?

叢集偵錯工具是 AWS 管理主控台的一部分,可以追蹤叢集的進度,並找出叢集步驟、工作、任務或任務嘗試中的問題。要存取叢集偵錯工具,先選擇要偵錯的叢集,然後按一下 "Debug" 按鈕。

問:如何啟用叢集的偵錯?

要啟用偵錯,則需在建立叢集時,於 AWS 管理主控台中設定 "Enable Debugging" 旗標。或者,也可以在建立叢集時,於命令列用戶端中傳送 --enable-debugging 和 --log-uri 旗標。

問:哪裡可以找到偵錯叢集視窗的使用說明?

請參考開發人員指南的 AWS 管理主控台部分,了解如何存取和使用偵錯叢集視窗的相關說明。

問:使用偵錯叢集視窗可以對哪些類型的叢集進行偵錯?

您可以偵錯 Amazon EMR 目前支援的所有叢集類型,包括自訂 jar、串流、Hive 和 Pig。

問:為什麼必須註冊 Amazon SimpleDB 才能使用叢集偵錯?

Amazon EMR 將在您的 Amazon SimpleDB 帳戶下儲存 Hadoop 工作、任務和任務嘗試的狀態資訊。您可以在此訂閱 Amazon SimpleDB。

問:是否可以使用叢集偵錯功能,而不訂閱 Amazon SimpleDB?

如果不訂閱 Amazon SimpleDB,您可以瀏覽叢集步驟和步驟日誌,但不能瀏覽 Hadoop 工作、任務或任務嘗試。

問:是否可從 Amazon SimpleDB 刪除歷史叢集資料?

是。您可以刪除 Amazon EMR 代表您建立的 Amazon SimpleDB 網域。請參考 Amazon SimpleDB 文件的相關說明。

回到最上層 >>


問:如何將我的資料匯入 Amazon S3?

您可以使用 Amazon S3 API 將資料上傳到 Amazon S3。或是,您可以使用許多開放原始碼或商用用戶端輕鬆地將資料上傳到 Amazon S3。

問:如何取得已完成叢集的日誌?

Hadoop 系統日誌及使用者日誌存放在您建立叢集時指定的 Amazon S3 儲存貯體中。

問:是否會壓縮日誌?

否。目前,Amazon EMR 不會在將日誌遷移到 Amazon S3 時壓縮日誌。

問:是否可從網際網路或 Amazon S3 以外的其他位置載入資料?

是。Hadoop 應用程式可從網際網路上的任何位置或從其他 AWS 服務載入資料。請注意,如果從網際網路載入資料,需要支付 EC2 頻寬費用。Amazon EMR 也提供以 Hive 為基礎的存取權,用於存取 DynamoDB 中的資料。

回到最上層 >>


問:Amazon EMR 是否能預估需要多長的時間來處理我的輸入資料?

否。因為每個叢集和輸入資料不同,我們無法預估您的工作持續時間。

問:Amazon EMR 的費用是多少?

和其他 AWS 一樣,按使用量付費。既沒有最低費用,也沒有前期承諾或長期合約。Amazon EMR 定價是在一般 Amazon EC2 和 Amazon S3 定價費用之外另外收取。

如需 Amazon EMR 定價資訊,請瀏覽 EMR 的定價頁面

Amazon EC2、Amazon S3 和 Amazon SimpleDB 費用分別計費。Amazon EMR 定價依每個執行個體類型從請求叢集到終止所使用的秒數計費 (需支付一分鐘最低費用)。有關 Amazon EC2 執行個體類型、Amazon EC2 競價型執行個體定價、Amazon EC2 預留執行個體定價、Amazon S3 定價或 Amazon SimpleDB 定價的其他詳細資訊,請參閱以下連結:

Amazon EC2 執行個體類型

Amazon EC2 預留執行個體定價

Amazon EC2 競價型執行個體定價

Amazon S3 定價

Amazon SimpleDB 定價

問:Amazon EMR 叢集的帳單週期如何計算?

從 Amazon EMR 開始執行叢集時開始計費。您只需為實際使用的資源付費。例如,假設您為 Amazon EMR 叢集啟動 100 個 Amazon EC2 標準小型執行個體,而 Amazon EMR 計費方式為每小時 0.015 USD。Amazon EC2 執行個體將立即啟動,但不一定同時全部啟動。Amazon EMR 會追蹤各執行個體何時啟動,並將它簽入叢集中,以便執行個體能夠接受處理任務。

在您啟動請求的前 10 分鐘內,Amazon EMR 會啟動叢集 (如果所有執行個體均可用) 或盡可能簽入越多的執行個體。10 分鐘過後,只要請求的執行個體 90% 可用,Amazon EMR 就會立即開始處理叢集 (並開始計費)。當簽入剩餘 10% 請求的執行個體時,Amazon EMR 也會開始對這些執行個體計費。

所以,在上述範例中,如果請求的 100 個執行個體在發出啟動請求後的 10 分鐘全部可用,您需支付叢集開始到完成每小時 1.50 USD (100 * 0.015 USD) 的費用。如果在 10 分鐘標記內僅有 90 個請求的執行個體可用,則只要執行叢集的執行個體數目不變,每小時費用為 1.35 USD (90 * 0.015 USD)。簽入剩餘的 10 個執行個體後,每小時收費 1.50 USD (100 * 0.015 USD) 直到叢集的剩餘部分完成。

發生以下其中一種情況時,將停止執行每個叢集:您呼叫 TerminateJobFlows API (或類似工具) 終止叢集、叢集自動關閉、或叢集因軟體或硬體故障終止。

問:可以在哪裡追蹤我的 Amazon EMR、Amazon EC2 和 Amazon S3 使用情況?

您可以在帳單和成本管理主控台追蹤您的使用情況。

問:如何計算顯示在主控台的標準化執行個體小時數?

在 AWS 管理主控台上,每個叢集都有一個 Normalized Instance Hours (標準化執行個體小時數) 欄位,顯示叢集已使用的大約運算小時數,調整到最接近的小時數。標準化執行個體小時數是根據 1 小時 m1.small 用量 = 1 小時標準化運算時間的標準,計算得出的運算時間小時數。下表概略說明用來計算不同執行個體大小的標準化執行個體小時數的標準化因子:

執行個體大小 標準化因子
小型 1
中型 2
大型 4
Xlarge 8
2xlarge 16
4xlarge 32
8xlarge 64

例如,您已執行一小時的 10 節點 r3.8xlarge 叢集,則在主控台顯示的標準化執行個體總時數將為 640 (10 (節點數目) x 64 (標準化因子) x 1 (叢集已經執行的時數) = 640)。

 

這是大約的數字,不應用於帳單計算。請參閱帳單和成本管理主控台,了解可計費的 Amazon EMR 用量。請注意,我們最近變更了標準化因子以準確反映執行個體的加權,標準化因子不會影響您的每月費用。

問:Amazon EMR 是否支援 Amazon EC2 隨需執行個體、競價型執行個體和預留執行個體?

是。Amazon EMR 可無縫支援隨需執行個體、競價型執行個體和預留執行個體。按一下這裡進一步了解有關 Amazon EC2 預留執行個體的資訊。按一下這裡進一步了解有關 Amazon EC2 競價型執行個體的資訊。


問:價格含稅嗎?

除非另有說明,否則我們的價格不包括適用的稅金和稅收 (包括加值稅和適用的營業稅)。帳單地址在日本的客戶若使用 AWS 服務,則需負擔日本消費稅。進一步了解。

回到最上層 >>


問:如何防止其他使用者在叢集執行期間檢視我的資料?

Amazon EMR 會在兩個 Amazon EC2 安全群組中啟動您的執行個體,一個用於主執行個體,另一個用於從執行個體。主安全群組有一個開放用於與服務通訊的連接埠。另外也開放 SSH 連接埠,允許您使用啟動時指定的金鑰 SSH 到執行個體中。從執行個體在單獨的安全群組中啟動,僅允許與主執行個體互動。預設情況下,兩個安全群組都設定為不允許從外部來源存取,包括屬於其他客戶的 Amazon EC2 執行個體。由於這些是您帳戶內的安全群組,所以可以使用標準 EC2 工具或儀表板重新設定。按一下這裡進一步了解 EC2 安全群組。

問:我的資料的安全性如何?

Amazon S3 提供身份驗證機制,可確保存放的資料安全無虞,未經授權無法存取這些資料。除非上傳資料的客戶另行指定,否則只有該客戶能存取資料。Amazon EMR 客戶還可以選擇使用 HTTPS 通訊協定將資料傳送到 Amazon S3,確保安全的傳輸。此外,Amazon EMR 一律使用 HTTPS 在 Amazon S3 與 Amazon EC2 之間傳送資料。為提高安全性,客戶可以在將輸入資料上傳到 Amazon S3 之前先加密資料 (使用任何常見的資料壓縮工具);然後,當 Amazon EMR 從 Amazon S3 擷取資料時,需要在叢集一開始新增解密步驟。

問:是否能取得我的帳戶上所有 EMR API 呼叫的歷史記錄,以用於安全或合規稽核?

是。AWS CloudTrail 是一項 Web 服務,用於記錄您帳戶的 AWS API 呼叫並為您提供日誌檔案。CloudTrail 產生的 AWS API 呼叫歷史記錄可用於安全分析、資源變更追蹤以及合規稽核。在 AWS CloudTrail 詳細資訊頁面進一步了解有關 CloudTrail 的資訊,並透過 CloudTrail 的 AWS 管理主控台開啟此功能。

回到最上層 >>


問:Amazon EMR 如何利用可用區域?

Amazon EMR 可啟動相同 Amazon EC2 可用區域中指定叢集的所有節點。在相同區域中執行叢集可提供更高的資料存取速率,因此可提升任務流程的效能。預設情況下,Amazon EMR 會選擇擁有最多可用資源的可用區域來執行叢集。不過,您可以視需要指定其他可用區域。

問:哪些區域可以使用 Amazon EMR?

支援 Amazon EMR AWS 區域的詳細清單,請參閱所有 AWS 全球基礎設施的 AWS 區域表

問:我應該選擇哪一個區域執行叢集?

建立叢集時,通常應選擇您的資料所在的區域。

問:是否可在美國區域執行的叢集中使用歐洲資料,或是在歐洲區域執行的叢集中使用美國資料?

是的,可以。如果您將資料從一個區域傳輸到另一個區域,需支付頻寬費用。有關頻寬定價資訊,請瀏覽 EC2 詳細資訊頁面上的定價部分。

問:AWS GovCloud (US) 區域有什麼不同?

AWS GovCloud (US) 區域是專為美國政府機構和客戶而設計,遵守 US ITAR 要求。在 GovCloud,EMR 不支援競價型執行個體或啟用偵錯功能。GovCloud 中尚未提供 EMR 管理主控台。

回到最上層 >>


問:Amazon EMR 如何使用 Amazon EC2 和 Amazon S3?

客戶將輸入資料和資料處理應用程式上傳到 Amazon S3 中。然後,Amazon EMR 根據客戶的指定,啟動一定數量的 Amazon EC2 執行個體。服務開始執行叢集,同時使用 S3N 通訊協定將輸入資料從 Amazon S3 提取到啟動的 Amazon EC2 執行個體中。叢集完成後,Amazon EMR 將輸出資料傳輸到 Amazon S3,客戶就可以在此擷取資料,或將資料做為另一個叢集的輸入資料。

問:在 Amazon EMR 中如何進行運算?

Amazon EMR 使用 Hadoop 資料處理引擎來執行 MapReduce 程式設計模型中實作的運算。客戶可實作 map() 和 reduce() 函數的演算法。服務會啟動客戶指定的 Amazon EC2 執行個體數量,其中包含一個主執行個體和多個從執行個體。Amazon EMR 在這些執行個體上執行 Hadoop 軟體。主節點將輸入資料劃分成多個區塊,並將區塊的處理工作分配給從節點。然後,每個從節點在分配給它的資料上執行 map 函數,產生中繼資料。接著排序和分割中繼資料,再傳送到對其套用縮減器函數的程序。這些程序也可在從節點上執行。最後,在檔案中收集縮減器任務的輸出。一個「叢集」可能包含一系列上述 MapReduce 步驟。

問:Amazon EMR 的可靠性如何?

Amazon EMR 使用 Amazon 的高可用性、已獲得認可的網路基礎設施和資料中心來管理 Amazon EC2 叢集運算執行個體。Amazon EMR 使用獲得產業認可的容錯 Hadoop 軟體作為資料處理引擎。Hadoop 將資料分成多個子集,並將每個子集指派給多個 Amazon EC2 執行個體。所以,如果某個 Amazon EC2 執行個體無法處理一個資料子集,還可以使用其他 Amazon EC2 執行個體的結果。

問:叢集啟動、執行和處理輸入資料的速度有多快?

Amazon EMR 幾乎可以立即啟動 Amazon EC2 隨需執行個體的資源佈建。如果執行個體不可用,Amazon EMR 將持續嘗試為您的叢集佈建資源,直到佈建完成或您取消請求為止。服務會根據請求的執行個體數、叢集的建立時間以及系統中的請求總數,盡最大努力完成執行個體佈建。佈建資源後,通常不到 15 分鐘就可以開始處理。

為保證在需要時可獲得足夠的叢集容量,您可以支付 Amazon EC2 預留執行個體的一次性費用,以折扣的小時費率在雲端中預訂執行個體容量。與隨需執行個體類似,客戶僅需支付執行個體執行時間的使用費。利用這種方式,預留執行個體讓已知執行個體需求的企業能夠維持隨需執行個體的彈性和靈活性,同時可進一步降低預估的使用費用。

問:Amazon EMR 支援哪些 Amazon EC2 執行個體類型?

Amazon EMR 支援 12 種 EC2 執行個體類型,包括標準、CPU 增強型、記憶體增強型、叢集運算、高 I/O 和高儲存。標準執行個體的記憶體與 CPU 比例適合大多數一般用途應用程式。CPU 增強型執行個體相較於其他執行個體,其 CPU 資源比例高於記憶體 (RAM),因此非常適合運算密集型應用程式。記憶體增強型執行個體可提供高輸送量應用程式所需的大容量記憶體。叢集運算執行個體具有較高的 CPU 比例,可提供更高的網路效能,非常適合高效能運算 (HPC) 應用程式和其他高要求的網路綁定型應用程式。高儲存執行個體提供跨 24 個磁碟的 48 TB 儲存,非常適合需要序列化存取非常大型資料集 (如資料倉儲和日誌處理) 的應用程式。有關可用執行個體類型和各區域定價的詳細資訊,請參閱 EMR 定價頁面

問:如何選擇正確的 Amazon EC2 執行個體類型?

選擇執行個體類型時,應該就資源使用率方面考量應用程式的特點,選擇最佳的執行個體系列。Amazon EMR 搭配 Amazon EC2 的優勢之一是只需按使用量付費,您可根據不同的執行個體類型和數量測試叢集的效能,方便且經濟實惠。啟動數個小型叢集並以此為基準測試您的叢集,是決定最適合的執行個體類型的有效方式之一。

問:如何為我的叢集選擇適當數量的執行個體?

叢集中使用的執行個體數量取決於應用程式,並且應根據存放和處理資料所需的資源量以及完成工作可接受的時間量。一般而言,我們建議您限制 60% 的磁碟空間來儲存要處理的資料,剩餘的空間則用於中繼輸出。因此,若 HDFS 上為 3 倍複寫,如果您想在有 1,690 GB 磁碟空間的 m1.xlarge 執行個體上處理 5 TB 資料,我們建議您的叢集至少包含 (5 TB * 3)/(1,690 GB * .6) = 15 個 m1.xlarge 核心節點。如果您的工作產生大量中繼資料或有很高的 I/O 要求,則可能要增加此數量。您也可能希望包含其他任務節點來提高處理效能。請參閱 Amazon EC2 執行個體類型,了解每個執行個體類型設定的本機執行個體儲存體的詳細資訊。

問:執行叢集需要多久時間?

執行叢集所需的時間取決於多種因素,包括叢集的類型、輸入資料的數量,以及為叢集選擇的 Amazon EC2 執行個體數量和類型。

問:如果叢集中的主節點發生故障,Amazon EMR 是否能恢復該節點?

否。如果主節點發生故障,叢集將會終止,您必須重新執行工作。Amazon EMR 目前不支援主節點自動容錯移轉或主節點狀態恢復。如果主節點發生故障,AWS 管理主控台將顯示「主節點已終止」訊息,指示您要啟動新的叢集。客戶可以在叢集中檢測檢查點,以便在 Amazon S3 上儲存中繼資料 (在叢集尚未縮減時建立的資料)。這樣可在故障發生時,能夠從最後一個檢查點恢復叢集。

問:如果叢集中的從節點發生故障,Amazon EMR 是否可從該節點恢復?

是。Amazon EMR 具有從節點故障的容錯能力,當從節點發生故障時,將繼續執行工作。Amazon EMR 也會在核心節點故障時佈建新節點。不過,如果叢集中的所有節點都遺失,Amazon EMR 將不會取代節點。

問:是否可以使用 SSH 存取我的叢集節點?

是。您可以使用 SSH 存取叢集節點,並從該位置直接執行 Hadoop 命令。如果您需要使用 SSH 存取從節點,必須先使用 SSH 存取主節點,再使用 SSH 存取從節點。

問:Microsoft Windows 執行個體是否可與 Amazon EMR 搭配使用?

目前,Amazon EMR 支援 32 位元和 64 位元模式的 Debian/Lenny。我們會持續聆聽客戶的意見回饋,並在一段時間後增加更多功能,以協助客戶解決他們在資料處理方面的問題。

問:什麼是 Amazon EMR 引導操作?

引導操作是 Amazon EMR 中的一項功能,為使用者提供在執行叢集前執行自訂設定的方式。執行叢集前,可使用引導操作來安裝軟體或設定執行個體。有關引導操作的更多資訊,請參閱 EMR 的開發人員指南

問:如何使用引導操作?

您可以用叢集執行個體上已安裝的任何語言編寫引導操作指令碼,包括 Bash、Perl、Python、Ruby、C++ 或 Java。可使用一些預先定義的引導操作。指令碼編寫完成後,您需要將指令碼上傳到 Amazon S3,並在啟動叢集時參考其位置。有關如何使用引導操作的詳細資訊,請參閱「開發人員指南」:http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/。

問:如何為叢集配置 Hadoop 設定?

EMR 預設的 Hadoop 設定適合大多數工作負載。不過,根據叢集的特定記憶體和處理要求,最好對這些設定進行調校。例如,如果叢集任務需要使用大量記憶體,您可以選擇每個核心使用較少的任務,並降低工作追蹤器堆積大小。在這種情況下,可以使用預先定義的引導操作,在啟動時設定叢集。請參閱開發人員指南中的設定記憶體密集型引導操作,了解設定詳細資訊和使用說明。您可以使用其他預先定義的引導操作,針對所選的任何數值自訂叢集設定。請參閱開發人員指南中的設定 Hadoop 引導操作,了解相關使用說明。

問:是否可以修改執行中叢集的從節點數?

是。從節點有兩種類型:(1) 核心節點,既可使用 Hadoop 分散式檔案系統 (HDFS) 託管持續性資料,又能執行 Hadoop 任務;以及 (2) 任務節點,僅用來執行 Hadoop 任務。當叢集執行時,您可以增加核心節點的數量,也可以增加或減少任務節點的數量。您可以透過 API、Java SDK 或透過命令列用戶端執行此操作。請參閱開發人員指南中的調整執行中叢集的大小部分,了解如何修改執行中叢集大小的詳細資訊。

問:何時該使用核心節點?何時該使用任務節點?

由於核心節點在 HDFS 中託管持續性資料且無法移除,所以核心節點應該保留用於必要的容量,直到叢集完成為止。任務節點可以新增或移除且不含 HDFS,所以非常適合僅臨時需要容量的情況。

問:為什麼我會希望修改執行中叢集的從節點數?

在某些情況下,您可能會希望修改執行中叢集的從節點數。如果您的叢集執行速度低於預期,或時間要求發生變化,可以增加核心節點數以提高叢集效能。如果叢集的不同階段有不同的容量需求,您可以一開始使用少量核心節點,再增減任務節點的數量,以滿足叢集不斷變化的容量要求。

問:是否可以自動修改叢集步驟之間的從節點數?

是。您可以在工作流程中包含預先定義的步驟,自動在已知有不同容量需求的步驟之間調整叢集大小。由於所有步驟都保證按順序執行,這讓您能夠設定執行指定叢集步驟的從節點數。

問:如何允許其他 IAM 使用者存取我的叢集?

要建立對 EMR CLI 中所有 IAM 使用者顯示的新叢集:在建立叢集時新增 --visible-to-all-users 旗標。例如:elastic-mapreduce --create --visible-to-all-users。在管理主控台內,只需在建立叢集精靈的 "Advanced Options" 面板上選擇 "Visible to all IAM Users" 即可。

要讓現有叢集對所有 IAM 使用者顯示,您必須使用 EMR CLI。使用 --set-visible-to-all-users 並指定叢集識別符。例如:elastic-mapreduce --set-visible-to-all-users true --jobflow j-xxxxxxx。此步驟只能由叢集的建立者執行。

要進一步了解相關資訊,請參閱 EMR Developer Guide 中的 Configuring User Permissions 部分。

回到最上層 >>


問:可以為哪些 Amazon EMR 資源加上標籤?

您可以將標籤新增到作用中的 Amazon EMR 叢集。Amazon EMR 叢集由 Amazon EC2 執行個體組成,新增到 Amazon EMR 叢集的標籤將傳播到該叢集的每個作用中 Amazon EC2 執行個體。您無法在已終止的叢集或者屬於作用中叢集一部分的已終止 Amazon EC2 執行個體新增、編輯或移除標籤。

問:Amazon EMR 標記是否支援 IAM 使用者以資源為基礎的許可?

否,Amazon EMR 不支援依標籤以資源為基礎的權限。不過,請務必注意,傳播到 Amazon EC2 執行個體的標籤與一般 Amazon EC2 標籤的行為方式相同。因此,如果從 Amazon EMR 傳播的標籤與適用於 Amazon EC2 的 IAM 政策中的條件相符,則此政策將對這些標籤採取動作。

問:可以對資源新增多少個標籤?

在 Amazon EMR 叢集上最多可以新增十個標籤。

問:叢集上的 Amazon EMR 標籤是否會顯示在該叢集的每個 Amazon EC2 執行個體上?如果移除 Amazon EMR 叢集上的標籤,是否會從每個相關的 EC2 執行個體自動移除該標籤?

是,Amazon EMR 會將新增到叢集的標籤傳播到該叢集的基礎 EC2 執行個體。如果將標籤新增到 Amazon EMR 叢集,則此標籤也會顯示在相關的 Amazon EC2 執行個體上。同樣地,如果從 Amazon EMR 叢集移除某個標籤,也會從其相關的 Amazon EC2 執行個體移除該標籤。不過,如果使用適用於 Amazon EC2 的 IAM 政策,並計劃使用 Amazon EMR 的標記功能,您應該確保授予使用 Amazon EC2 標籤 API CreateTags 和 DeleteTags 的許可。

問:如何在帳單中顯示標籤以劃分成本?

這裡選擇要在 AWS 帳單報告中使用的標籤。然後,根據具有相同標籤鍵值的資源來組織帳單資訊,以查看合併資源的成本。

問:如何分辨哪些 Amazon EC2 執行個體屬於 Amazon EMR 叢集?

與 Amazon EMR 叢集關聯的 Amazon EC2 執行個體會有兩個系統標籤:

  • aws:elasticmapreduce:instance-group-role=CORE
    • 鍵值 = instance-group role;值 = [CORE 或 TASK] 
  • aws:elasticmapreduce:job-flow-id=j-12345678
    • 鍵值 = job-flow-id;值 = [JobFlowID]

問:是否能直接在 Amazon EC2 執行個體上編輯標籤?

是,您可以在屬於 Amazon EMR 叢集的 Amazon EC2 執行個體上直接新增或移除標籤。不過,我們不建議這麼做,因為 Amazon EMR 的標記系統不會直接同步您對關聯的 Amazon EC2 執行個體所做的變更。我們建議從 Amazon EMR 主控台、CLI 或 API 新增和移除 Amazon EMR 叢集的標籤,以確保叢集及其關聯的 Amazon EC2 執行個體具有正確的標籤。

回到最上層 >>

問:我現在可以做到哪些之前無法做到的事情?

大部分 EC2 執行個體都有固定的儲存容量連接到執行個體,稱為「執行個體存放區」。您現在可以將 EBS 磁碟區新增到 Amazon EMR 叢集中的執行個體,以便自訂執行個體上的儲存。這個功能也可讓您在僅限 EBS 執行個體系列 (如 M4 和 C4) 上執行 Amazon EMR 叢集。

問:將 EBS 磁碟區新增到 Amazon EMR 上執行的執行個體有哪些好處?

在下列情況中,您能夠受益於將 EBS 磁碟區新增到執行個體:

  1. 您的處理要求是需要執行個體目前所提供的大量 HDFS (或本機) 儲存。透過支援 EBS 磁碟區,您能夠按執行個體提供的運算容量來自訂執行個體上的儲存容量。優化執行個體上的儲存可讓您節省成本。
  2. 您在上一代執行個體系列 (如 M1 和 M2 系列) 上執行並希望移至最新一代執行個體系列,但是受限於下一代執行個體類型上每個節點可用的儲存。現在您可以使用任何新一代的執行個體類型,並新增 EBS 磁碟區來優化儲存。內部基準顯示從上一代執行個體系列 (M1 或 M2) 移到新一代執行個體系列 (M4、C4 和 R3),可以節省成本和提升效能。Amazon EMR 團隊建議執行您的應用程式以獲得正確的結論。
  3. 您想要使用或遷移到新一下僅限 EBS 的 M4 和 C4 系列。

問:叢集終止之後,我的資料仍然會保存在 EBS 磁碟區上嗎?

目前,Amazon EMR 會在叢集終止之後刪除磁碟區。如果您想要持久儲存資料而不受限於叢集的生命週期,請考慮使用 Amazon S3 做為資料存放區。

問:可以將哪種類型的 EBS 磁碟區連接到執行個體?

Amazon EMR 可讓您使用不同的 EBS 磁碟區類型:一般用途 SSD (GP2)、磁帶和佈建 IOPS (SSD)。

問:終止叢集之後,EBS 磁碟區會發生什麼事?

EMR 叢集終止後,Amazon EMR 會刪除磁碟區。

問:EBS 可以與已經有執行個體存放區的執行個體搭配使用嗎?

是,您可以將 EBS 磁碟區新增到有執行個體存放區的執行個體。

問:EBS 磁碟區可以連接到執行中叢集嗎?

否,目前您只能在啟動叢集時連接 EBS 磁碟區。

問:我可以從叢集拍攝磁碟區的快照嗎?

EBS API 可讓您拍攝叢集的快照。然而,Amazon EMR 目前不允許您從快照還原。

問:我可以使用加密的 EBS 磁碟區嗎?

否,目前版本不支援加密的磁碟區。

問:從執行中叢集移除連接的磁碟區時會發生什麼事?

從執行中叢集移除連接的磁碟區會被視為節點故障。Amazon EMR 將會使用相同的節點和 EBS 磁碟區來取代它們。

回到最上層 >>


問:什麼是 Apache Hive?

Hive 是在 Hadoop 上執行的一種開放原始碼資料倉儲和分析軟體套件。Hive 由 SQL 為基礎的語言 Hive QL 操作,讓使用者能建構、摘要和查詢 Amazon S3 中儲存的資料來源。Hive QL 的功能超過標準 SQL,新增 map/reduce 函數的第一級支援及複雜且可擴展的使用者定義資料類型,如 JSON 與 Thrift。這個功能讓您能夠處理複雜甚至非結構化的資料來源,例如,文字文件和日誌檔案。Hive 允許透過以 Java 編寫的使用者定義函數及透過 Amazon S3 中的儲存進行部署,以執行使用者擴展。

問:使用 Amazon EMR 上執行的 Hive 可以執行哪些操作?

使用 Hive 搭配 Amazon EMR 時,您可以利用類似 SQL 的熟悉語言和 Amazon EMR 中易於使用的工具,實作複雜的資料處理應用程式。透過 Amazon EMR,您可以將 Hive 應用程式轉換為可靠的資料倉儲以執行任務,如資料分析、監控和商業智慧任務。

問:Hive 與傳統的 RDBMS 系統有何不同?

傳統的 RDBMS 系統提供交易語意和 ACID 屬性。這些系統還允許對表格進行索引和快取,因此可以非常快速地擷取少量資料。這種系統可快速更新少量資料,並強制執行參考完整性限制。通常在單一大型機器上執行,且不支援在表格上執行 map 和 reduce 函數,通常也不支援對複雜的使用者定義資料類型執行操作。

反之,Hive 使用 MapReduce 執行類似 SQL 的查詢。因此,它在機器叢集上執行時,針對整個表格執行的掃描進行了優化,能夠處理數量龐大的資料。Hive 提供分區表,如果執行的查詢適合掃描表格的分區,就不會掃描整個表格。

傳統 RDMS 系統比較適合要求交易語意和參考完整性,以及時常執行少量更新的情況。Hive 比較適合離線報告、轉換和分析大型資料集;例如,對大型網站或網站集合執行點擊流分析。

其中一種常見的做法是將資料從 RDBMS 系統匯出至 Amazon S3,在其中使用執行 Hive 的 Amazon EMR 叢集執行離線分析。

問:如何開始使用在 Amazon EMR 上執行的 Hive?

有關開始使用的相關資訊,請參閱 http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2862 提供的書面或影片教學

問:在 Hive 中是否有專為 Amazon EMR 設計的新功能?

是。與 Amazon EMR 搭配使用時,有四項新功能可讓 Hive 變得更加強大,包括:

a/ 能夠自動從 Amazon S3 載入表格分區。在過去,若要匯入分區表,您需要單獨更改表格中每個個別分區的表格陳述式。Amazon EMR 現在包含適用於 Hive 語言的新陳述式類型:"alter table recover partitions"。此陳述式讓您能夠輕鬆地將表格同時匯入到多個叢集中,而不必保留共用的中繼資料存放區。使用此功能時,可從外部程序存放資料的表格 (例如,日誌檔案) 進行讀取。

b/ 能夠指定執行個體外的中繼資料存放區。預設情況下,Hive 儲存其結構描述資訊的中繼資料存放區位於主節點上,當叢集終止後即不再存在。此功能讓您能夠覆寫要使用的中繼資料存放區位置,例如,已經在 EC2 中執行的 MySQL 執行個體。

c/ 直接將資料寫入 Amazon S3。將資料寫入 Amazon S3 中的表格時,Amazon EMR 中安裝的 Hive 版本不會使用暫存檔,而是直接寫入 Amazon S3。這樣可大幅提高效能,但從 Hive 的角度而言,代表 HDFS 和 S3 的操作方式不同。如果表格位於 Amazon S3 中,則無法在相同陳述式內對同一個表格進行讀取和寫入。如果要更新 S3 中的表格,要在叢集的本機 HDFS 檔案系統中建立臨時表,將結果寫入該表格,然後將它們複製到 Amazon S3。

d/ 存取 Amazon S3 中的資源。Amazon EMR 中安裝的 Hive 版本允許您直接從 Hive 指令碼 (例如,add jar s3://elasticmapreduce/samples/hive-ads/libs/jsonserde.jar) 內參考資源,例如,自訂 map 和 reduce 操作的指令碼或 Amazon S3 中的其他程式庫。

問:支援哪些類型的 Hive 叢集?

Hive 支援兩種叢集類型:互動式和批次處理。在互動式模式下,客戶可以直接在主節點上以互動方式啟動叢集和執行 Hive 指令碼。一般而言,此模式用來執行臨機操作資料分析和應用程式開發。在批次處理模式下,Hive 指令碼儲存在 Amazon S3 中,並在啟動叢集時參考。一般而言,批次處理模式用於可重複的執行工作,例如產生報告。

問:如何啟動 Hive 叢集?

批次處理和互動式叢集都可從 AWS 管理主控台、EMR 命令列用戶端或 API 啟動。請參閱開發人員指南中的使用 Hive 部分,了解啟動 Hive 叢集的更多詳細資訊。

問:何時應使用 Hive?何時應使用 PIG?

Hive 和 PIG 都提供高等級的資料處理語言,支援在大型資料集操作的複雜資料類型。Hive 語言是 SQL 的變體,因此更適合已熟悉 SQL 和關聯式資料庫的使用者使用。Hive 支援分區表,它們允許 Amazon EMR 叢集只提取與執行的查詢相關的表格分區,而不是執行整個表格掃描。PIG 和 Hive 都有查詢計劃優化功能。PIG 能在整個指令碼範圍內進行優化,而 Hive 查詢僅在陳述式層級進行優化。

選擇使用 Hive 或 PIG 最終還是取決於應用程式網域的確切要求及實作者和查詢撰寫者的偏好。

問:Amazon EMR 支援哪些版本的 Hive?

Amazon EMR 支援多個 Hive 版本,包括版本 0.11.0。

問:是否可以同時從兩個叢集寫入表格?

否。Hive 不支援同時寫入表格。您應避免同時寫入同一個表格,或在寫入表格時從表格讀取。Hive 在同時讀寫或同時寫入時會出現不具決定性的行為。

問:是否可以在叢集之間共用資料?

是。您可以在指令碼上撰寫 ‘create external table’ 陳述式,透過 Hive 指令碼讀取 Amazon S3 中的資料。您存取的每個外部資源都需要一個 create table 陳述式。

問:我應該執行一個大型叢集並在多個使用者之間共用,還是執行多個較小的叢集?

Amazon EMR 提供一個獨特的功能,讓您能夠同時使用兩種方法。一方面,大型叢集對於處理一般的批次處理工作負載可能較為有效。另一方面,如果您需要執行隨時間變化的臨機操作查詢或工作負載,可以選擇建立多個獨立的叢集,調校這些叢集使其適合共用 Amazon S3 中所儲存資料來源的特定任務。

問:是否可以存取本機檔案系統中的指令碼或 Jar 資源?

否。您必須將指令碼或 Jar 上傳到 Amazon S3 或叢集的主節點,才能進行參考。要上傳到 Amazon S3,您可以使用 s3cmd、jets3t 或 S3Organizer 等工具。

問:是否可執行一個持久性叢集以執行多個 Hive 查詢?

是。在手動終止模式下執行的叢集不會在 Hive 步驟間終止。要降低資料遺失的風險,我們建議定期保留您在 Amazon S3 中的所有重要資料。最好定期將工作傳輸到新的叢集,以測試從主節點故障進行恢復的程序。

問:多個使用者是否可在同一個來源資料上執行 Hive 步驟?

是。多個使用者在個別叢集上執行的 Hive 指令碼可能包含 create external table 陳述式,以同時匯入位於 Amazon S3 中的來源資料。

問:多個使用者是否可在同一個叢集中執行查詢?

是。在批次處理模式下,步驟會按順序執行。多個使用者可以將 Hive 步驟新增到同一個叢集,不過,步驟將按順序執行。在互動模式下,多個使用者可以登入到同一個叢集,並且同時執行 Hive 陳述式。

問:是否可在多個 AWS 使用者之間共用資料?

是。可以使用這裡 http://docs.amazonwebservices.com/AmazonS3/latest/index.html?S3_ACLs.html 描述的標準 Amazon S3 共用機制共用資料

問:Hive 是否支援從 JDBC 存取?

是。Hive 提供 JDBC 磁碟機,可用於以程式設計方式執行 Hive 陳述式。要在叢集中啟動 JDBC 服務,您需要在 Amazon EMR 命令列用戶端中傳遞選擇性參數。此外,還需要建立一個 SSH 通道,因為安全群組不允許外部連線。

問:在 EMR AMI 中更新套件的程序是什麼?

我們從 Debian/stable 執行一組選擇的套件,包括安全性修補程式。當 Debian/stable 中的套件升級後,我們也將對套件升級。映像中的 "r-recommended" 套件在 Debian/stable (http://packages.debian.org/search?keywords=r-recommended) 中為最新版本。

問:是否可以在 EMR 叢集中更新自己的套件?

是。您可以使用引導操作對叢集中的套件安裝更新。

問:是否可以使用 Hive 處理 DynamoDB 資料?

是。只需根據您的 DynamoDB 表定義外部 Hive 表即可。然後,可以使用 Hive 分析 DynamoDB 中儲存的資料,並將結果載回 DynamoDB 或在 Amazon S3 中存檔。如需詳細資訊,請參閱開發人員指南

回到最上層 >>


 

問:什麼是 Impala?

Impala 是 Hadoop 生態系統中的開放原始碼工具,適用於使用 SQL 語法的互動式、臨機操作查詢。它不使用 MapReduce,而是利用與傳統關聯式資料庫管理系統 (RDBMS) 中的引擎類似的大規模平行處理 (MPP) 引擎。利用此架構,您可以非常快速地查詢 HDFS 或 HBase 表中的資料,並利用 Hadoop 的功能處理不同資料類型,以及在執行時間提供結構描述。因此 Impala 適合用來進行互動式、低延遲分析。此外,Impala 使用 Hive 中繼儲存來保留有關輸入資料的資訊,包括分區名稱和資料類型。同時,Amazon EMR 上的 Impala 要求 AMI 執行 Hadoop 2.x 或更高版本。按一下這裡進一步了解 Impala。

問:使用 Amazon EMR 上執行的 Impala 可以執行哪些操作?

與在 Amazon EMR 使用 Hive 類似,在 Amazon EMR 使用 Impala,可以透過 SQL 語法實作複雜的資料處理應用程式。不過,在某些使用案例中,Impala 是為了更快的執行速度而建置的 (參閱下文)。透過 Amazon EMR,您可以將 Impala 做為可靠的資料倉儲來執行資料分析、監控和商業智慧等任務。以下是三個使用案例:

  • 在長時間執行的叢集上執行臨機操作查詢時,使用 Impala 而不使用 Hive。Impala 將互動式查詢的時間縮短到幾秒之間,使其成為快速調查的最佳工具。您可以在執行批次 MapReduce 工作流程的相同叢集上執行 Impala,在長時間執行的分析叢集上將 Impala 與 Hive 和 Pig 搭配使用,或是建立專門針對 Impala 查詢調校的叢集。
  • 在暫時性 Amazon EMR 叢集上執行批次處理 ETL 任務時,使用 Impala 而不使用 Hive。對於許多查詢,Impala 比 Hive 的速度更快,可以為這些工作負載提供更好的效能。與 Hive 類似,Impala 也使用 SQL,因此可以輕鬆地將查詢從 Hive 修改為 Impala。
  • 將 Impala 與第三方商業智慧工具搭配使用。將用戶端 ODBC 或 JDBC 驅動程式與您的叢集連接在一起,以便將 Impala 做為強大的視覺化工具和儀表板的引擎。

您可以在 Amazon EMR 中建立批次處理和互動式 Impala 叢集。例如,您可以讓長時間執行的 Amazon EMR 叢集執行 Impala,用於臨機操作、互動式查詢,或使用暫時性的 Impala 叢集來執行快速的 ETL 工作流程。

問:Impala 與傳統的 RDBMS 有何區別?

傳統的關聯式資料庫系統具有交易語意和資料庫不可部分完成性、一致性、隔離性和耐久性 (ACID) 屬性。它們還允許對表格進行索引和快取,可以非常快速地擷取少量資料,可快速更新少量資料,並可強制執行參考完整性限制。一般而言,它們在一部大型機器上執行,並且不支援對複雜的使用者定義資料類型執行操作。Impala 使用與 RDBMS 中類似的分散式查詢系統,但會查詢儲存在 HDFS 中的資料,並使用 Hive 中繼儲存來保存有關輸入資料的資訊。與 Hive 相同,會在執行時間提供查詢的結構描述,可以更輕鬆地變更結構描述。另外,Impala 可以查詢各種複雜資料類型並執行使用者定義函數。不過,因為 Impala 在記憶體內處理資料,所以務必了解叢集的硬體限制並優化查詢以實現最佳效能。

問:Impala 與 Hive 有何區別?

Impala 使用大規模平行處理 (MPP) 引擎執行 SQL 查詢,而 Hive 使用 MapReduce 執行 SQL 查詢。Impala 少了 Hive 用於建立 MapReduce 工作的負荷,其查詢速度比 Hive 快數倍。不過,Impala 使用大量的記憶體資源,而且叢集的可用記憶體為任何查詢可使用的記憶體量設定了限制。Hive 沒有這種方式的限制,可以利用相同的硬體順利地處理更大的資料集。一般而言,您應將 Impala 用於快速、互動式查詢,而 Hive 則更適用於大型資料集的 ETL 工作負載。Impala 針對速度而建置,非常適用於臨機操作調查,但需要大量記憶體來執行耗費大量資源的查詢或處理非常大型的資料集。由於上述限制,完成度重要性優於速度的工作負載,建議使用 Hive。按一下這裡查看 Impala 和 Hive 之間的一些效能基準。

問:是否可使用 Hadoop 1?

否,Impala 需要 Hadoop 2,無法在使用執行 Hadoop 1.x 的 AMI 的叢集上執行。

問:我的 Impala 叢集應該使用哪些執行個體類型?

為了獲得最佳的 Impala 使用體驗,我們建議您的叢集使用經過記憶體優化的執行個體。不過,我們也已經說明,在使用標準執行個體類型時獲得的效能優於 Hive。我們建議閱讀 Amazon EMR Developer's Guide 的 Performance Testing and Query Optimization 部分,以針對您的資料集和查詢類型,為叢集所需的記憶體資源進行更合理的預估。壓縮類型、分區和實際查詢 (加入數、結果大小等) 在所需的記憶體中都需納入考量。您可以使用 EXPLAIN 陳述式預估 Impala 查詢所需的記憶體和其他資源。

問:如果查詢時記憶體不足,會發生什麼情況?

如果記憶體不足,查詢會失敗,而且受影響節點上安裝的 Impala 協助程式會關閉。然後,Amazon EMR 會重新啟動該節點上的協助程式,以便 Impala 準備執行其他查詢。節點上 HDFS 中的資料仍然可以使用,因為關閉的僅是該節點上執行的協助程式,而非整個節點本身。對於使用 Impala 的臨機操作分析,查詢時間通常可以按秒計算;因此,如果某個查詢失敗,您可以快速發現問題,並且可以迅速接著提交新查詢。

問:Impala 是否支援使用者定義的函數?

是,Impala 支援使用者定義的函數 (UDF)。您可以用 Java 或 C++ 編寫專用於 Impala 的 UDF。另外,您可以修改為 Hive 建立的 UDF 或使用者定義的彙總函數,以便與 Impala 搭配使用。有關 Hive UDF 的資訊,請按一下這裡

問:供 Impala 查詢的資料儲存在何處?

Impala 會查詢 HDFS 或 HBase 表中的資料。

問:是否可在叢集上同時執行 Impala 和 MapReduce?

是,您可以設定具有 Impala 和 MapReduce 的多租用戶叢集。不過,您應確保使用 Hadoop 2.x 上的 YARN,將資源 (記憶體、磁碟和 CPU) 分配給每個應用程式。分配的資源應取決於您計劃在每個應用程式上所執行任務的需求。

問:Impala 是否支援 ODBC 和 JDBC 驅動程式?

雖然可以使用 ODBC 驅動程式,但 Impala 也是適合透過 JDBC 連接的第三方工具的最佳引擎。您可以從下列位置下載和安裝 Impala 用戶端 JDBC 驅動程式:http://elasticmapreduce.s3.amazonaws.com/libs/impala/1.2.1/impala-jdbc-1.2.1.zip。在已安裝商業智慧工具的用戶端電腦中,使用連接埠 21050 上的 SSH 或 VPN,將 JDBC 驅動程式連接到 Impala 叢集的主節點。如需詳細資訊,請參閱 Open an SSH Tunnel to the Master Node

回到最上層 >>


問:什麼是 Apache Pig?

Pig 是在 Hadoop 上執行的一種開放原始碼分析套件。Pig 由類似 SQL 的語言 Pig Latin 操作,允許使用者建構、摘要和查詢 Amazon S3 中儲存的資料來源。與 SQL 操作類似,Pig Latin 也新增 map/reduce 函數的第一級支援,及複雜且可擴展的使用者定義資料類型。這個功能讓您能夠處理複雜甚至非結構化的資料來源,例如,文字文件和日誌檔案。Pig 允許透過以 Java 編寫的使用者定義函數及透過 Amazon S3 中的儲存進行部署,以執行使用者擴展。

問:使用 Amazon EMR 上執行的 Pig 可以執行哪些操作?

使用 Pig 搭配 Amazon EMR 時,您可以利用類似 SQL 的熟悉語言和 Amazon EMR 中易於使用的工具,實作複雜的資料處理應用程式。透過 Amazon EMR,您可以將 Pig 應用程式轉換為可靠的資料倉儲以執行任務,如資料分析、監控和商業智慧任務。

問:如何開始使用在 Amazon EMR 上執行的 Pig?

有關開始使用的相關資訊,請參閱 http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2735&categoryID=269 提供的書面或影片教學

問:在 Pig 中是否有專為 Amazon EMR 設計的新功能?

是。與 Amazon EMR 搭配使用時,有三項新功能可讓 Pig 變得更加強大,包括:

a/ 存取多個檔案系統。預設情況下,無論是用於輸入、輸出和暫存資料的 HDFS 存放還是 S3 儲存貯體,Pig 任務只能存取一個遠端檔案系統。EMR 對 Pig 進行了擴展,因此任何任務都能根據需要存取任意數量的檔案系統。這樣做的好處是,任務內的暫時資料將一直儲存在本機 HDFS 中,能夠提升效能。

b/ 從 S3 載入資源。EMR 對 Pig 進行了擴展,因此自訂的 JAR 和指令碼可以來自 S3 檔案系統,例如 "REGISTER s3:///my-bucket/piggybank.jar"

c/ 更多用於字串和日期時間處理的 Piggybank 函數。相關資訊請參閱 http://developer.amazonwebservices.com/connect/entry.jspa?externalID=2730 的文件。

問:支援哪些類型的 Pig 叢集?

Pig 支援兩種叢集類型:互動式和批次處理。在互動式模式下,客戶可以直接在主節點上以互動方式啟動叢集和執行 Pig 指令碼。一般而言,此模式用來執行臨機操作資料分析和應用程式開發。在批次處理模式下,Pig 指令碼儲存在 Amazon S3 中,在啟動叢集時參考。一般而言,批次處理模式用於可重複的執行工作,例如產生報告。

問:如何啟動 Pig 叢集?

批次處理和互動式叢集都可從 AWS 管理主控台、EMR 命令列用戶端或 API 啟動。

問:Amazon EMR 支援哪些版本的 Pig?

Amazon EMR 支援多個 Pig 版本,包括 0.11.1。

問:是否可從兩個叢集同時寫入 S3 儲存貯體?

是,可從兩個並行叢集寫入同一個儲存貯體。

問:是否可在叢集之間共用 S3 中的輸入資料?

是,可從兩個並行叢集讀取 S3 中的相同資料。

問:是否可在多個 AWS 使用者之間共用資料?

是。可以使用這裡 http://docs.amazonwebservices.com/AmazonS3/latest/index.html?S3_ACLs.html 描述的標準 Amazon S3 共用機制共用資料

問:我應該執行一個大型叢集並在多個使用者之間共用,還是執行多個較小的叢集?

Amazon EMR 提供一個獨特的功能,讓您能夠同時使用兩種方法。一方面,大型叢集對於處理一般的批次處理工作負載可能較為有效。另一方面,如果您需要執行隨時間變化的臨機操作查詢或工作負載,可以選擇建立多個獨立的叢集,調校這些叢集使其適合共用 Amazon S3 中所儲存資料來源的特定任務。

問:是否可以存取本機檔案系統中的指令碼或 Jar 資源?

否。您必須將指令碼或 Jar 上傳到 Amazon S3 或叢集的主節點,才能進行參考。要上傳到 Amazon S3,您可以使用 s3cmd、jets3t 或 S3Organizer 等工具。

問:是否可執行一個持久性叢集以執行多個 Pig 查詢?

是。在手動終止模式下執行的叢集不會在 Pig 步驟間終止。要降低資料遺失的風險,我們建議您定期保留 Amazon S3 中的所有重要資料。最好定期將工作傳輸到新的叢集,以測試從主節點故障進行恢復的程序。

問:Pig 是否支援從 JDBC 存取?

否。Pig 不支援透過 JDBC 存取。

回到最上層 >>


問:什麼是 Apache HBase?

HBase 是一種仿效 Google BigTable 的開放原始碼、非關聯式、分散式資料庫。它是 Apache 軟體基金會 Hadoop 專案開發的一部分,在 Hadoop 分散式檔案系統 (HDFS) 上執行,為 Hadoop 提供與 BigTable 類似的功能。HBase 為您提供一種可儲存大量疏鬆資料的容錯、高效率方法,此方法採用以欄為基礎的壓縮和儲存方式。此外,因為資料儲存在記憶體內而非磁碟上,所以還可以透過 HBase 快速查詢資料。HBase 在連續寫入操作方面已經過優化,且批次插入、更新和刪除等操作的效率很高。HBase 可與 Hadoop 無縫搭配,不但共享檔案系統,且做為 Hadoop 工作的直接輸入和輸出。HBase 也與 Apache Hive 整合,對 HBase 表啟用類似 SQL 的查詢,與以 Hive 為基礎的表格結合,以及支援 Java 資料庫連接 (JDBC)。

問:在 HBase 中是否有專為 Amazon EMR 設計的新功能?

您可以透過 Amazon EMR 將 HBase 備份到 Amazon S3 (完整或增量、手動或自動),並可從之前建立的備份中還原。進一步了解有關 HBase 和 EMR 的資訊

問:Amazon EMR 支援哪些版本的 HBase?

Amazon EMR 支援 HBase 0.94.7 和 HBase 0.92.0。要使用 HBase 0.94.7,必須指定 AMI 3.0.0 版。如果使用的是 CLI,則必須使用 2013-10-07 版或更新版本。

回到最上層 >>


問:新增到 Kinesis 的 EMR 連接器支援什麼功能?

該連接器支援 EMR 直接從 Kinesis 串流讀取和查詢資料。現在,您可以使用現有的 Hadoop 生態系統工具 (如 Hive、Pig、MapReduce、Hadoop Streaming 和 Cascading) 來執行 Kinesis 串流的批次處理。

問:新增到 Kinesis 的 EMR 連接器能支援我完成哪些之前無法完成的任務?

讀取和處理來自 Kinesis 串流的資料需要編寫、部署和維護獨立的串流處理應用程式。這些需要耗費大量的時間和精力。但是,使用此連接器,您只需編寫一個簡單的 Hive 或 Pig 指令碼就可以開始讀取和分析 Kinesis 串流。這表示您可以使用 SQL 來分析 Kinesis 串流!當然,也可以使用其他 Hadoop 生態系統工具。您不必開發或維護一組新的處理應用程式。

問:此功能對哪些人有用?

這個整合對以下各類的使用者有用:

  • 有興趣使用此廣泛的 Hadoop 生態系統工具來分析 Kinesis 串流的 Hadoop 使用者。
  • 正在尋求簡單方法來增強效能和正在執行 Kinesis 資料的串流處理和 ETL 的 Kinesis 使用者。
  • 希望使用熟悉的工具,如 SQL (透過 Hive) 或指令碼撰寫語言,如 Pig,對 Kinesis 串流中的資料執行臨機操作分析的商業分析師和 IT 專業人員。

問:這種整合有哪些使用案例?

以下為此整合支援的代表性使用案例:

  • 串流處理日誌分析:您可以按區域、瀏覽器和存取網域分析串流處理 Web 日誌,以便每隔幾分鐘產生一個前 10 大錯誤類型清單。
  • 複雜資料處理工作流程:您可以將儲存在 S3、Dynamo DB 表和 HDFS 中的資料加入 Kinesis 串流中。您可以編寫結合 Kinesis 點擊流資料的查詢,並將廣告活動資訊儲存在 DynamoDB 表中,以找出特定網站上顯示的最有效廣告類別。
  • 臨機操作查詢:您可以定期將來自 Kinesis 的資料載入 HDFS 中並做為本機 Impala 表使用,用於快速的互動式分析查詢。

問:需要使用哪個 EMR AMI 版本才能使用此連接器?

您需要使用 EMR AMI 的 3.0.4 版和更新版本。

問:此連接器是否為獨立的工具?

否,它是 Amazon Hadoop 分發的內建元件,EMR AMI 的 3.0.4 版和更新版本都提供此元件。客戶只需使用 3.0.4 版或更新版本的 AMI 快速建置一個叢集,就可以開始使用此功能。

問:允許 EMR 從 Kinesis 串流讀取資料需要哪種資料格式?

EMR Kinesis 整合不指定資料格式。您可以讀取任何格式的資料。個別 Kinesis 記錄會以標準記錄的形式顯示給 Hadoop,該記錄可使用任何 Hadoop MapReduce 架構讀取。Hive、Pig 和 Cascading 等個別架構已內建在協助序列化和還原序列化的元件中,因此開發人員能夠輕鬆查詢多種格式的資料,無須實作自訂程式碼。例如,Hive 使用者可透過在定義表格時指定適當的 Hive SerDe,從 JSON 檔案、XML 檔案和 SEQ 檔案讀取資料。Pig 擁有類似的元件 Loadfunc/Evalfunc,而 Cascading 的類似元件為 Tap。Hadoop 使用者可以利用此廣泛的 Hadoop 配接器生態系統,無須編寫格式特定程式碼。您還可以實作自訂還原序列化格式,讀取其中任何一個工具的網域特定資料。

問:在 EMR 中,如何使用 Hive 來分析 Kinesis 串流?

建立一個參考 Kinesis 串流的表格。然後,您可以像分析 Hive 中的其他任何表格一樣分析這個表格。請參閱我們的教學頁面了解更多詳細資訊。

問:使用 Hive 時,如何建立結合 Kinesis 串流資料和其他資料來源的查詢?

首先,建立一個參考 Kinesis 串流的表格。Hive 表建立完成後,您可以將它與對應到其他資料來源 (如 Amazon S3、Amazon Dynamo DB 和 HDFS) 的表格結合起來。這會有效地將來自 Kinesis 串流的資料加入其他資料來源中。

問:此整合是否僅用於 Hive?

否,您可以使用 Hive、Pig、MapReduce、Hadoop 串流以及 Cascading。

問:如何設定要在 Kinesis 串流上執行的已排定任務?

EMR Kinesis 輸入連接器提供各種功能,協助您設定和管理傳統排程引擎 (如 Cron) 中的已排定週期性任務。例如,您可以開發一個每 N 分鐘執行一次的 Hive 指令碼。在任務的設定參數中,您可以為任務指定一個邏輯名稱。邏輯名稱是一個標籤,會通知 EMR Kinesis 輸入連接器,該任務的個別執行個體是同一個週期性排程的成員。邏輯名稱允許程序利用反覆項目,以下會加以說明。

因為 MapReduce 是批次處理架構,所以要使用 EMR 來分析 Kinesis 串流,連續的串流就需分批進行處理。每個批次稱為一個反覆項目。每個反覆項目會指派一個以 0 開頭的號碼。每個反覆項目的邊界由起始序號和結尾序號定義。然後 EMR 會按順序處理反覆項目。

如果一次嘗試發生故障,EMR Kinesis 輸入連接器將在邏輯名稱內重試該反覆項目 (從該反覆項目的已知起始序號開始)。此功能確保同一個反覆項目的連續嘗試與之前的嘗試具有完全相同的 Kinesis 串流輸入記錄。這可保證 Kinesis 串流的等冪 (一致性) 處理。

您可以在個別的 Hadoop 工具中,將邏輯名稱和反覆項目指定為執行時間參數。例如,在教學的 "Running queries with checkpoints" 部分,程式碼範例顯示一個排定的 Hive 查詢,為查詢指定邏輯名稱,並且在每次執行任務後增加一個反覆項目。

此外,教學中還提供一個範例 Cron 排程指令碼。

問:邏輯名稱的中繼資料和反覆項目儲存在何處?

允許 EMR Kinesis 輸入連接器在排定的週期性工作流程中使用的中繼資料儲存在 Amazon DynamoDB 中。您必須佈建一個 Amazon Dynamo DB 表,並指定其作為 Hadoop 任務的輸入參數。務必為該表設定適當的 IOPS 以啟用此整合。請參閱入門教學,了解更多有關設定 Amazon Dynamo DB 表的資訊。

問:當反覆項目處理失敗時,會出現什麼情況?

在 Kinesis 串流中,反覆項目識別碼是對應到特定邊界 (開頭和結尾序號) 的值,由使用者提供。這些邊界對應的資料會在 MapReduce 任務的對應階段載入。此階段由架構管理,並在任務失敗時自動重新執行 (預設執行三次)。如果重試失敗,您仍可以選擇從最後一次成功的資料邊界或通過的資料邊界開始重試處理。此行為透過處理期間提供的 kinesis.checkpoint.iteration.no 參數控制。請參考入門教學,了解有關如何為 Hadoop 生態系統中不同工具設定這個值的詳細資訊。

問:是否能在同一個反覆項目中執行多個查詢?

是,您可以在連續處理過程中設定 kinesis.checkpoint.iteration.no 參數,指定之前執行的反覆項目。此實作可確保同一個反覆項目的連續執行與之前的執行具有完全相同的 Kinesis 串流輸入記錄。

問:如果反覆項目中的記錄在 Kinesis 串流中到期,會出現什麼情況?

如果反覆項目的開始序號和/或結尾序號屬於已在 Kinesis 串流中到期的記錄,則 Hadoop 任務會失敗。您需要使用其他邏輯名稱來處理 Kinesis 串流的開始資料。

問:是否能將資料從 EMR 推送到 Kinesis 串流中?

否。目前,EMR Kinesis 連接器不支援將資料回寫到 Kinesis 串流中。

問:Kinesis 的 EMR Hadoop 輸入連接器是否支援連續串流處理?

Hadoop MapReduce 架構是批次處理系統。因此,不支援連續查詢。不過,有一組新興的 Hadoop 生態系統架構,例如 Twitter Storm 和 Spark 串流,可讓開發人員建置適用於連續串流處理的應用程式。Kinesis 的 Storm 連接器可在這裡的 GitHub 上取得,您還可以在這裡找到說明如何在 EMR 上設定 Spark 串流和執行連續查詢的教學。

此外,開發人員還可以利用 Kinesis 用戶端程式庫來開發即時串流處理應用程式。您可以在這裡的 Kinesis 文件中找到有關開發自訂 Kinesis 應用程式的詳細資訊。

問:是否能指定存取登入資料,以讀取在其他 AWS 帳戶中管理的 Kinesis 串流?

是。只要指定適當的帳戶存取登入資料 (擁有 Kinesis 串流的帳戶),就可以讀取來自其他 AWS 帳戶的串流。預設情況下,Kinesis 連接器會利用建立叢集時指定的存取登入資料,此資料由使用者提供。您可以設定 kinesis.accessKey 和 kinesis.secretKey 參數來覆寫這些登入資料,以便從其他 AWS 帳戶存取串流。以下範例說明如何在 Hive 和 Pig 中設定 kinesis.accessKey 和 kinesis.secretKey 參數。

Hive 程式碼範例:
...
STORED BY
'com.amazon.emr.kinesis.hive.KinesisStorageHandler'
TBLPROPERTIES(
"kinesis.accessKey"="AwsAccessKey",
"kinesis.secretKey"="AwsSecretKey",
);

Pig 程式碼範例:

raw_logs = LOAD 'AccessLogStream' USING com.amazon.emr.kinesis.pig.Kin
esisStreamLoader('kinesis.accessKey=AwsAccessKey', 'kinesis.secretKey=AwsSecretKey'
) AS (line:chararray);

問:是否能在一個 Kinesis 串流中執行多個平行查詢?對效能是否有影響?

是,客戶透過為每個查詢使用單獨的邏輯名稱,可以在同一個串流中執行多個平行查詢。不過,從 Kinesis 串流內的碎片中讀取資料受到每秒 2 MB 的速率限制。因此,如果在同一個串流內執行 N 個平行查詢,則串流上的每個碎片的每個查詢約獲得每秒 (2/N) MB 的輸出率。這可能會降低處理速度,有些情況下,還會導致查詢失敗。

問:是否能在 EMR 中加入並分析多個 Kinesis 串流?

是,例如在 Hive 中,您可以建立兩個對應到不同 Kinesis 串流的表,並在兩個表之間建立連接。

問:EMR Kinesis 連接器是否會處理 Kinesis 擴展事件,如合併和分割事件?

是。此實作會處理分割和合併活動。Kinesis 連接器將個別 Kinesis 碎片 (Kinesis 串流內的擴展邏輯單元) 與 Hadoop MapReduce 對應任務相繫結。在反覆項目的邏輯期間內,串流內的每個唯一碎片都將產生一個確切的對應任務。如果發生碎片分割或合併事件,Kinesis 將佈建新的唯一碎片 ID。因此,MapReduce 架構會佈建更多對應任務,以便從 Kinesis 讀取內容。所有內容對使用者而言都是透明的。

問:如果我的串流中有一些「無回應」期間,會發生什麼情況?

此實作允許您設定名為 kinesis.nodata.timeout 的參數。例如,假設有一個情況,kinesis.nodata.timeout 設為 2 分鐘,同時您希望每隔 10 分鐘執行一次 Hive 查詢。此外,假設從上次反覆項目後 (10 分鐘之前),一些資料已寫入串流中。不過,目前沒有新記錄到達,也就是說,串流內是無回應的。在這種情況下,當查詢的目前反覆項目啟動時,Kinesis 連接器將發現沒有即將到達的新記錄。連接器將使該串流保持輪詢 2 分鐘,如果該時間間隔內沒有記錄到達,則停止輪詢並僅處理目前串流批次中已讀取的記錄。不過,如果新記錄在 kinesis.nodata.timeout 時間間隔用完之前到達,則連接器將等待參數 kinesis.iteration.timeout 對應的額外時間間隔。請參閱教學了解如何定義這些參數。

問:如何偵錯在每次反覆項目中持續失敗的查詢?

如果處理失敗,您可以利用在偵錯 Hadoop 任務時目前所用的相同工具。包括協助識別和存取錯誤日誌的 Amazon EMR Web 主控台。有關偵錯 EMR 任務的詳細資訊,請參閱這裡

問:如果指定沒有存取權限的 DynamoDB 表,會發生什麼情況?

任務會失敗,任務的錯誤日誌會顯示例外狀況。

問:如果任務沒有失敗,但是 DynamoDB 的檢查點發生失敗,會發生什麼情況?

任務會失敗,任務的錯誤日誌會顯示例外狀況。

問:如何將從 Kinesis 串流到 EMR 的讀取輸送量最大化?

Kinesis 串流的輸送量會隨著所用執行個體的大小以及 Kinesis 串流中的記錄大小而增加。我們建議您在此功能使用 m1.xlarge 以及更大的執行個體來處理主節點和核心節點。

回到最上層 >>