技術專欄

集結國內外精選文章,掌握最新雲端技術新知與應用 

iKala Cloud / 部落格 / 最新消息與洞察 / Amazon EMR Serverless 現可廣泛使用 – 不需管理伺服器即可執行大數據應用

Amazon EMR Serverless 現可廣泛使用 – 不需管理伺服器即可執行大數據應用

 

在 AWS re:Invent 2021,我們對檔案分析服務推出三個新的無伺服器的選項- Amazon EMR Serverless, Amazon Redshift Serverless, Amazon MSK Serverless -可以更輕鬆的分析任何規模的數據,而無需配置、擴展或 管理底層基礎設施。

今天,我們宣布推出 Amazon EMR Serverless,對客戶來說是一種無服務器部署選項,可去執行大數據分析應用程序使用像是 Apache Spark 和 Hive 等開源框架而無需配置、管理和擴展集群或服務器。

 

使用 EMR Serverless,你可以執行分析任何規模的工作負載,自動擴展可以在幾秒內調整資源大小達到改變的資料大小和處理需求。EMR Serverless 自動擴展和縮減資源,提供恰到好處的容量給你的應用程序,你只需為使用到的量所付費。

 

在預覽時,我們從客戶那裡得知 EMR Serverless 是具有成本效益的,因為它們不會因為必須過度配置資源來處理需求高峰而造成成本提升。他們不必擔心調整實例大小或應用操作系統更新,可以專注在更快把產品推出市場。

 

Amazon EMR 提供各種不同的部署選項去執行應用程序去達到各種需求,像是Amazon Elastic Compute Cloud  (Amazon EC2) 上的 EMR 集群、  Amazon Elastic Kubernetes Service  (Amazon EKS) 集群、  AWS Outposts或 EMR Serverless

 

  • Amazon EC2 集群上的 EMR 適用需要最大程度地控制和靈活運行他們應用程序的客戶。使用 EMR 集群,客戶可以選擇 EC2 實例類型以增強特定應用程序的效能,自定 Amazon 機器映像 (AMI)、選擇 EC2 實例配置,自定和擴展開源框架和安裝額外的自定軟體在集群實例上。
  • Amazon EKS 上的 EMR 適用於希望在 EKS 上標準化以跨應用程序管理集群或使用不同版本的開源框架在同一集群上的客戶。
  • AWS Outposts 上的 EMR 是給客戶希望在 Outpost 內更靠近資料中心執行
  • EMR Serverless 適用希望避免管理和操作集群,單純執行應用程序使用開源框架的客戶。

 

另外,當你建構應用程序使用 EMR 版本(像是使用 EMR 版本 6.4 的 Spark 作業),你可以選擇在 EMR 集群、EKS 上的 EMR 或 EMR Serverless 上運行它,不需重寫應用程序。這讓你可以建構應用程序在給定的框架且保留靈活性根去改變部署的模型根據未來運行需求。

 

 

立即聯繫 iKala Cloud,了解無伺服器架構應用!

 

開始 Amazon EMR Serverless

 

要開始使用 EMR Serverless,你可以使用 Amazon EMR Studio,一個免費的 EMR 功能他提供端到端的開發和除錯體驗。使用 EMR Studio,你可以創造 EMR Serverless 應用程序(Spark 或 Hive),選擇開源軟體的版本為你的應用程序,提交工作,檢查正在運行的作業的狀態,調用 Spark UI 或 Tez UI 做工作診斷。

當你選擇 Get started 按鈕在 EMR Serverless Console 中 ,你可以創造並設置 EMR Studio 使用預配置的 EMR Serverless 應用程序。

 

在 EMR Studio 中,當你選擇 Applications 在 Serverless 菜單中,你可以創造一個或多個 EMR Serverless 應用程序並選擇開源框架和版本。如果你想要分開的邏輯環境用來測試和生產或不同的業務線案例,你可以在每個邏輯環境創造分開的應用程序。

 

EMR 無服務器應用程序是 (a)  你想使用的開源框架版本的EMR 發行版本和 (b) 特定運行時你所希望使用的應用程序的組合,像是 Apache Spark 或 Apache Hive。

 

當你選擇 Create application時,你可以設定你的應用程序名稱、Spark 或 Hive 的類型和支援的發行版本。你也可以選擇默認或自定設置選項為預初始化容量、應用程序限制和Amazon Virtual Private Cloud (Amazon VPC) 連接選項。每個 EMR Serverless 應用程序都與其他應用程序無關,並在安全的 VPC 中運行。

使用默認選項如果你希望工作立即開始。但每個工人都需要收費當開始申請時,。想了解有關預初始化容量更多,請看配置和管理預初始化容量

 

 

當你選擇 Start application,你的應用程序設置為以 1 個 Spark 驅動程序和 1 個 Spark 執行程序的預初始化容量啟動。你的應用程序默認配置為在提交作業時啟動,並在應用程序空閒超過 15 分鐘時停止。

您可以通過選擇選擇自定義設置自定義這些設置並設置不同的應用程序限制。

 

在 Job runs 菜單中,你可以看到應用程序的運行工作列表。

 

選擇提交作業並設置作業詳細資訊,像是名稱,AWS Identity and Access Management (IAM) 角色,腳本位置Amazon Simple Storage Service (Amazon S3) 存儲桶中 JAR 或 Python 你想執行的腳本的參數。

如果你希望將 Spark 或 Hive 作業的紀錄提交到 S3 存儲桶,你需要設置 S3 存儲桶在運行 EMR 無服務器作業的同一區域中。

 

 

或者,你可以設置其他配置屬性可以為每個作業指定,像是 Spark 屬性、作業配置以覆蓋應用程序的默認配置(像是使用 AWS Glue 資料目錄作為他的元存儲)、將紀錄存到 Amazon S3、並把紀錄保留 30 天。

以下是使用  StartJobRun 運行 Python 腳本的示例。

 \
    --execution-role-arn  \
    --job-driver '{
        "sparkSubmit": {
            "entryPoint": "s3://spark-scripts/scripts/spark-etl.py",
            "entryPointArguments": "s3://spark-scripts/output",
            "sparkSubmitParameters": "--conf spark.executor.cores=1 --conf spark.executor.memory=4g --conf spark.driver.cores=1 --conf spark.driver.memory=4g --conf spark.executor.instances=1"
        }
    }' \
    --configuration-overrides '{
        "monitoringConfiguration": {
           "s3MonitoringConfiguration": {
             "logUri": "s3://spark-scripts/logs/"
           }
        }
    }'

 

你可以檢查 S3 存儲桶中的作業結果。關於詳細資訊,你可以使用 Spark UI for Spark Application 和 Job runs 菜單中的 Hive/Tez UI 來了解作業的運行方式或除錯當它失敗時。

 

為了進行更多除錯,EMR Serverless 會將事件紀錄推到 sparklogs 的文件夾在你 S3 紀錄目標中的Spark 應用程序。對於 Hive 應用程序,EMR Serverless 會不斷上傳 Hive 驅動程序和 Tez 任務紀錄到你的 S3 紀錄目標的HIVE_DRIVERTEZ_TASK文件夾。要了解更多資訊,看AWS 文件中日誌記錄。

Things to Know

使用 EMR 無服務器,你可以獲得所有執行 Amazon EMR 的好處。 我想引用一些關於 EMR Serverless 從預覽公的 AWS 大數據博客文章 

  • 自動和細粒度的擴展 – EMR Serverless 自動擴展工作人員在處理你每個階段的工作,並在不需要時縮減它們。你需要為從工作程序開始運行到停止時使用的聚合 vCPU、內存和存儲資源付費,四捨五入到最接近的秒數,最小值為 1 分鐘。例如你的工作可能需要 10 名工作人員在前 10 分鐘處理工作在接下來的 5 分鐘內需要 50 名工作人員。你只需要支付 10 名工人 10 分鐘和 50 名工人 5 分鐘的費用使用細粒度的自動擴展。因此,你不必為未充分利用的資源付費。

 

  • 對可用區域故障的恢復能力 ——EMR Serverless 是一項區域服務。當你向 EMR Serverless 應用程序提交作業時,它可以在區域中的任何可用區中運行。如果可用區故障,提交給你的 EMR Serverless 應用程序的作業會自動在不同的(健康的)可用區中運行。在私人 VPC 中使用資源時,EMR Serverless 建議你指定私有 VPC 配置為多個可用區,以便 EMR Serverless 可以自動選擇健康的可用區。

 

  • 啟用共享應用程序 – 當你向 EMR 無服務器應用程序提交作業時,你可以指定作業必須使用的 IAM 角色來存取 AWS 資源,像是 S3 對象。因此,不同的 IAM 委託人可以在單個 EMR Serverless 應用程序上運行作業,並且每個作業只能訪問允許 IAM 委託人訪問的 AWS 資源。這使你能夠設置方案,有預初始化工作器池的單個應用程序可供多個租戶使用,其中每個租戶可以使用不同的 IAM 角色提交作業,但使用預初始化工作器的公共池來立即處理請求.

Now Available

推出 Amazon EMR Serverless 在美國東部(弗吉尼亞北部)、美國西部(俄勒岡)、歐洲(愛爾蘭)和亞太地區(東京)區域可用。使用 EMR Serverless,沒有前期成本你只需為使用的資源付費。你需要為應用程序消耗的 vCPU、內存和存儲資源量付費。有關定價詳細資訊,請看EMR Serverless 定價頁面

 

要了解更多資訊,請訪問 Amazon EMR 無服務器用戶指南以及使用 Apache Spark 和 Apache Hive 的樣本代碼。請向AWS re:Post發送反饋對於 Amazon EMR Serverless或通過您常用的 AWS 支持聯繫人。

了解有關 Amazon EMR Serverless 的所有詳細信息並從今天開始

分享本文:
FacebookLineTwitter
回到頂端