Apache Apex – 簡介

已發表: 2015-12-29

Apache Hadoop 已成為可靠、可擴展、分佈式和大規模計算的事實上的軟件框架。 自成立以來,Hadoop 一直是批處理的首選框架。 從大型銀行到在線零售巨頭,每個人都在使用 Hadoop 進行定期報告生成、計算和更多用例。 通常,這些用例是面向批處理的過程,需要幾個小時才能從數據中獲得意義。 當今的快速世界幾乎在生成原始數據時就需要其意義或行動。 這導致了流處理的概念。 儘管最初認為 Hadoop 不適合流處理,但 YARN(Hadoop 2.0)的發明使其成為它的理想選擇。 目前Hadoop生態系統中有多種流處理框架,Apex是進入這個擁擠市場的全新框架。

什麼是 Apache Apex?

Apache Apex 是基於 YARN 的原生平台,可幫助應用程序開發人員編寫面向流和麵向批處理的應用程序。 它旨在以分佈式、高性能、容錯的方式處理動態數據。 冰上一層是簡單的 API,它使用戶能夠在有限的流處理知識的情況下編寫他們的 java 代碼。

Apex 基於單獨的功能和操作規範,而不是將它們組合在一起。 這使得應用程序開發人員可以專注於編寫用戶定義的函數,而不必考慮他們將如何在分佈式環境中運行。

Apache Apex 擁有豐富的常用函數庫。 這些是作為 Apache Apex-Malhar 庫的一部分添加的。 該庫具有訪問不同文件系統、數據庫、消息隊列的操作員。 社區每天都在增加運營商,使應用程序開發人員的生活更加輕鬆。

Apache Apex 的核心塊是什麼?

Apex 的架構非常簡單。 Apex 有 Malhar,一個可以使用的算子庫和核心引擎。 Apex 的核心可以描述如下,它們通常被稱為 Apache Apex 的主要塊。

Apache Apex 的核心塊

您可以清楚地分離圖層,並可以在適合的位置獲得概覽。 讓我們看看有關這些塊的信息。

  1. StrAM 流應用程序大師)
    StrAM 是 YARN 應用大師。 它的職責包括流應用程序啟動、資源分配、調度邏輯 DAG。 除了這些 YARN 操作,StrAM 還初始化操作符、流。 StrAM 還從其子代收集統計數據。
  2. 狀態快照
    流處理框架無法承受丟失處理結果的後果。 此外,他們必須知道他們已經處理了多少才能在從故障中恢復後正確處理記錄。 所以周期性地,檢查點在流處理中很重要。 在 Apex 中,StrAM 跟踪檢查點,並且在操作員邊界處,定期檢查點在 HDFS 上執行。
  3. REST API
    StrAM 是 REST API 的訪問點。 外部工具可以訪問此 REST API 並與任何外部應用程序集成。
  4. 工具
    Apex 提供 CLI 來啟動和監控 Apex 應用程序。 甚至我們可以在 REST API 的幫助下構建自己的。 與 CLI 一起,應用程序可以配置靜態配置腳本以自動啟動。
  5. 分區
  6. Apex 提供基於鍵和動態負載平衡的分區。 甚至用戶也可以定義自己的分區方案。

  7. 動態修改
  8. Apache Apex 具有這個非常有用且獨特的功能。 它支持邏輯 DAG 更改、物理執行計劃更改。

  9. 服務水平協議分析
    Apache Apex 會定期自行進行 SLA 分析。 它進行延遲、瓶頸和吞吐量分析,並添加更多資源以滿足配置的 SLA。
  10. 安全
  11. Apex 支持 Kerberos。 作為底層安全 Hadoop 集群,它可以通過固有的 Kerberos 集成進行訪問。

  12. 高可用性
    Apache Apex 利用 YARN 的重新啟動功能並從上次檢查點狀態重新啟動。
  13. 馬爾哈爾
    Apache Apex –Malhar 是具有眾多運算符的運算符庫。 這些運算符分為
    • 輸入/輸出運算符
      在這個類別下,目前 Malhar 有操作員可以讀取/寫入
    • 文件系統
    • 關係型數據庫管理系統
    • NoSQL 存儲
    • 消息隊列
    • 內存數據庫
    • 社交媒體
  14. 計算運算符 –
  15. Malhar 有許多有助於實際業務邏輯實現的運算符。 這個圖書館有

        • 模式匹配
        • 統計和數學
        • 機器學習
        • 解析器
        • 社交媒體
      • 緩沖服務器

      緩沖服務器位於每個運營商邊界。 在數據的情況下,本地運算符緩沖服務器可以在運算符字符串之後。 它們的主要目的是在轉發到下一個之前在邊緣臨時保存數據。 當節點從故障中恢復時,它們起著重要作用。 緩沖服務器從最後一個檢查點狀態加載數據以重播

      什麼是 Apex 應用程序編程模型?

      這具有豐富的框架和 Malhar 庫,這意味著應用程序開發人員只需要連接運營商並啟動應用程序。 因此,您的應用程序只不過是一系列運算符。

      Apex 應用程序編程模型

      這就是豐富的框架使開發人員的生活變得輕鬆的方式。 那麼讓我們看看這個演示應用程序是如何運行的

      Apache Apex 演示

      因此,讓我們從“ Hello World of Big Data J”開始,這是一個使用 Apache Apex 進行字數統計的小演示。

      設置 Apache Apex

      要運行此演示,我們需要配置 Apex。 您可以在現有集群上安裝 Apache Apex,或者有簡單的試用方法,您可以從此處從 DataTorrent 網站下載預安裝沙箱 VM。 對於此演示,我們將使用預安裝的 VM。

      演練 Apex UI 控制台

      Apex 帶有一個非常直觀且設計精美的 UI 控制台,您可以使用它來啟動、監控和管理應用程序。 它包括有關已部署的不同組件的各種統計信息。

      之後,您已經下載了沙盒虛擬機,解壓縮它並將其加載到您最喜歡的虛擬機播放器中(我使用 VMWare 虛擬機播放器)。 運行 Apex 所需的所有軟件和工具都已在此 VM 中配置,並且所有啟動腳本都配置為在操作系統啟動時執行。 因此,當您的 VM 啟動時,您將擁有正在運行的 Apache Apex 實例。 現在,要查看控制台,只需在您喜歡的 Web 瀏覽器中點擊 http://locahost:9090 並登錄到控制台。 默認用戶名:沙盒 VM 的密碼為 dtadmin:dtadmin。 您將看到如下控制台

      Apache Apex UI 控制台

      此頁面為我們提供了所有系統的完整概述,例如 CPU 和內存使用情況、應用程序、性能、問題等。

      要部署應用程序,請轉到頁面頂部的開發選項卡。

      數據洪流

      在這裡,您可以部署應用程序包,並可以管理 Apex 內數據的元組模式。

      Apex 為您提供了許多開箱即用的應用程序,您可以在下面看到這些應用程序:

      數據洪流

      字數演示

      現在,讓我們啟動 wordcount 應用程序。 您可以通過單擊 DataTorrent Wordcount Demo 旁邊的啟動應用程序選項來執行此操作。 接下來,您可以提供不同的應用程序並根據需要修改配置詳細信息(我們不會這樣做,因為大多數默認設置都可以正常工作,我們只需將應用程序名稱修改為“MyWordCountDemo”)。 您將看到一條消息,說明應用程序已成功部署,並帶有指向該應用程序的鏈接。 單擊該鏈接。

      字數演示

      這將打開一個新頁面。 等待幾秒鐘,直到應用程序狀態從 Accepted 變為 Running。 您現在將看到一個充滿各種統計數據和信息的頁面。 接下來的兩個屏幕截圖描述了它們。

      字數演示

      Apache Apex UI 控制台

      該頁面向我們展示了各種信息,例如應用程序的邏輯、物理和度量視圖,以及應用程序每秒處理的各種元組/記錄的統計信息。 它顯示了發出的元組的圖形表示和延遲等。

      您可以單擊任何邏輯運算符,檢查其記錄,甚至記錄樣本。 讓我們為控制台操作員這樣做。 點擊控制台操作員,您將獲得有關操作員的詳細信息,如下所示:

      Apache Apex UI 控制台

      接下來,選擇其中一個分區並單擊記錄樣本。

      Apache Apex UI 控制台

      幾秒鐘後,您將看到元組已填充,單擊元組以查看其內容。 從內容可以看出,應用程序已經對基於windows的數據進行了wordcount,在這個window的第0個輸入元組中有2個“to”、4個“the”、4個“a”等。 您現在可以通過單擊應用程序主頁上的“關閉”或“終止”來停止應用程序。

      就是這樣,我們已經成功部署並運行了 wordcount 應用程序。

      結論

      這就是對新流媒體工具 Apache Apex 的介紹,並在 Apache Apex 中成功運行了應用程序。 Apache Apex 具有許多顯著的特性,使其優於其他現有框架,我將在後續文章中介紹。