什麼是 Hadoop?
Apache Hadoop 是開放原始碼架構,可以有效率地存放和處理從 GB 到 PB 級資料大小的大型資料集。Hadoop 不使用單一大型電腦來存放和處理資料,而是將多個電腦結合成叢集,以平行方式快速分析大量資料集。
Hadoop 的四個主要模組是什麼?
Hadoop 有四個主要模組:
- Hadoop 分散式檔案系統 (HDFS) – 在標準或低階硬體上執行的分散式檔案系統。除了具備高容錯能力和對大型資料集的原生支援外,HDFS 提供優於傳統檔案系統的資料輸送量。
- Yet Another Resource Negotiator (YARN) – 管理和監控叢集節點和資源用量。它可排程作業和任務。
- MapReduce – 可幫助程式對資料執行平行運算的架構。映射任務會接收輸入資料並將其轉換為可以鍵值組運算的資料集。縮減任務會耗用映射任務的輸出,以彙總輸出並提供所需的結果。
- Hadoop Common – 提供可在所有模組中使用的常見 Java 程式庫。
Hadoop 如何運作?
Hadoop 可讓您更輕鬆地使用叢集伺服器中的所有儲存容量和處理能力,以及針對大量資料執行分散式處理。Hadoop 提供了可建置於其他服務和應用程式上的建置區塊。
收集各種格式資料的應用程式可以使用 API 操作連線至 NameNode,進而將資料放入 Hadoop 叢集中。NameNode 會追蹤每個檔案的檔案目錄結構和「區塊」的置放,並在 DataNodes 之間複寫。若要執行查詢資料作業,請提供包含許多映射和縮減任務的 MapReduce 作業,這些任務會針對分散在 DataNode 上的 HDFS 中的資料執行。映射任務會在每個節點上針對提供的輸入檔案執行,並且還會執行縮減器來彙總和整理最終輸出。
Hadoop 生態系統是如何演進的?
由於其可擴展性,Hadoop 生態系統多年來已實現大幅成長。如今,Hadoop 生態系統包含許多工具和應用程式,可協助收集、儲存、處理、分析和管理大數據。一些熱門的應用程式包括:
- Spark – 常用於大數據工作負載的開放原始碼、分散式處理系統。Apache Spark 使用記憶體內快取和最佳化執行以獲得快速效能,且支援一般批次處理、串流分析、機器學習、圖形資料庫及臨機操作查詢。
- Presto – 一種開放原始碼的分散式 SQL 查詢引擎,已針對低延遲和資料臨機操作分析進行最佳化。它支援 ANSI SQL 標準,包含複雜查詢、彙總、加入 (join) 和視窗函數。Presto 可以處理來自多個資料來源的資料,而這些資料來源包含 Hadoop 分散式檔案系統 (HDFS) 和 Amazon S3。
- Hive – 允許使用者使用 SQL 界面來利用 Hadoop MapReduce,除了分散式及容錯資料倉儲外,還可以執行大規模分析。
- HBase – 開放原始碼、非關聯式的版本控制資料庫,在 Amazon S3 (使用 EMRFS) 或 Hadoop 分散式檔案系統 (HDFS) 上執行。HBase 是可大規模擴展的分散式大數據存放區,專為隨機、嚴格地一致即時存取表格所建置,可存取包含數十億資料列和數百萬資料欄的表格。
- Zeppelin – 互動式筆記本,可實現互動式資料探索。
AWS 如何支援您的 Hadoop 需求?
Amazon EMR 是受管服務,能夠在可完全自訂的叢集使用大數據處理框架 (像是 Apache Hadoop、Spark、HBase 和 Presto) 的最新版本處理和分析大型的資料集。
- 易於使用:您只需幾分鐘就可以啟動 Amazon EMR 叢集。您不必擔心節點佈建、叢集設置、Hadoop 配置或叢集調校。
- 低成本:Amazon EMR 定價不僅簡單且可預估:為所使用的每個執行個體小時數按照小時費率支付費用,並且可以利用 Spot 執行個體實現更多的節省。
- 彈性:使用 Amazon EMR,您可以佈建一個、數百個或者甚至數千個運算執行個體來處理任何規模的資料。
- 暫時性:您可以使用 EMRFS 根據持續儲存在 Amazon S3 中的 HDFS 資料,隨需執行叢集。完成作業後,您可以關閉叢集並將資料儲存在 Amazon S3 中。您只需為叢集執行的運算時間付費。
- 安全:Amazon EMR 使用 AWS 服務的所有常見安全特性:
- Identity and Access Management (IAM) 角色和政策,可用於管理許可。
- 傳輸中和靜態加密,可協助您保護資料並符合合規標準,例如 HIPAA。
- 安全群組,可用於控制叢集節點的傳入和傳出網路流量。
- AWS CloudTrail:稽核您帳戶中已進行的所有 Amazon EMR PI 呼叫,以提供安全分析、資源變更追蹤和合規稽核。
立即建立帳戶,開始在 AWS 上使用 Hadoop。