天天看點

周邊生态|StreamNative 聯合 Cloudera 開源 Apache Pulsar+Apache NiFi 內建處理器

近日,StreamNative 和 Cloudera 官方宣布共同開源 Apache NiFi 和 Apache Pulsar 聯合解決方案,将二者內建打造成完整的邊緣到雲資料的流平台。

StreamNative 由 Apache Pulsar 創始團隊組建,專注于 Apache Pulsar 社群和生态建構,并圍繞 Apache Pulsar 打造批流一體的雲原生解決方案;Cloudera 團隊包括一些 Apache NiFi 的原始開發人員,并通過 Apache NiFi 打造資料流。通過将 NiFi 與 Pulsar 內建,企業能夠建立一個雲原生、可擴充的實時流資料平台,來攝取、轉換和分析海量資料。

本文将介紹該處理器的開源背景,以及如何通過簡單配置設定 Apache NiFi 來大規模地生産消費來自 Pulsar 主題的消息。Cloudera 為 Data Hub 7.2.14 和更高版本的 CDF[1] 提供開箱即用的處理器。

關于 Apache NiFi

Apache NiFi[2] 初始的項目名稱是 Niagara Files,是由美國國家安全局(NSA)貢獻給 Apache 軟體基金會的開源項目,其設計初衷是自動化系統間的資料流。2015 年 7 月,NiFi 從 Apache 軟體基金會畢業并成為 Apache 軟體基金會的頂級項目。

NiFi 實作了基于流程式設計的一種可視化工具,使用者可以通過 NiFi 建構将資料從一個平台(如資料庫、雲存儲和消息系統)移動到另一個平台的資料流。

NiFi 可幫助使用者自動在不同資料源和系統之間移動資料,保證資料攝取的快速、簡單和安全;NiFi 提供實時控制來輕松管理任何來源和任何目的地之間的資料移動;它還提供事件級别的資料溯源和可追溯性,使用者可以将每條資料追溯到其源頭。

NiFi 平台包含 100 多個預建構處理器的集合,可用于從資料源向資料目的地對資料進行豐富、路由等轉換。

關于 Apache Pulsar

Apache Pulsar 是雲原生時代消息隊列和流融合系統,提供統一的消費模型,支援消息隊列和流兩種場景,既能為隊列場景提供企業級讀寫服務品質和強一緻性保障,又能為流場景提供高吞吐、低延遲;采用存儲計算分離架構,支援大叢集、多租戶、百萬級 Topic、跨地域資料複制、持久化存儲、分層存儲、高可擴充性等企業級和金融級功能。

Pulsar 的核心是使用複制的分布式 ledger 來提供持久的流存儲,保證輕松擴充以保留 PB 級的資料。Pulsar 的可擴充流存儲使其成為事件資料的完美長期存儲庫。通過其消息保留政策,使用者可以無限期地保留曆史事件資料,友善在未來随時對事件資料進行流式分析。

處理器:将 Apache Pulsar 與 Apache NiFi 互補

Apache NiFi 和 Apache Pulsar 的功能在現代流資料架構中互相補充。NiFi 提供了一種資料流解決方案,可自動執行軟體系統之間的資料流。是以,它可以充當不同資料源之間的短期緩沖區,而不是長期的資料存儲庫。

相反,Pulsar 旨在充當事件資料的長期存儲庫,并提供與常見的流處理架構(如 Flink 和 Spark)的強大內建。通過結合這兩種技術,使用者可以建立一個強大的實時資料處理和分析平台。

這些技術結合所實作的協同效應将在資料平台中得到顯著展現。NiFi 提供了使用者所有的資料流管理需求,包括優先級、背壓和邊緣智能。

使用者可以使用 NiFi 廣泛的連接配接器套件來自動将資料流到消息流平台,同時執行 ETL 處理。資料轉換後,可以通過這些專為 Apache Pulsar 設計的 NiFi 處理器直接路由到 Pulsar 的持久流存儲,以便長期保留。

一旦資料存儲在 Pulsar 中,就可以随時供如 Flink 或 Spark 等各種常見的流處理引擎使用,将資料用于更複雜的流處理和分析場景。

簡而言之,NiFi 豐富的連接配接器允許使用者輕松地将資料“輸入”到消息流平台,同時保證 Pulsar 與 Flink 或者 Spark 的內建可以輕松獲得實時洞察。

Apache Pulsar 和 Apache NiFi 的結合建立了一個完整的邊緣到雲資料的流平台,可跨多個應用程式提供實時洞察。該內建适用于多個行業和場景,舉例來說,在網絡安全行業,使用者需要盡快識别和檢測威脅,要求系統具有攝取和解析日志資料的能力;制造業、采礦業以及石油和天然氣等衆多行業都需要能夠從不同位置攝取大量 IoT 傳感器資料,企業需要近實時地分析這些海量資料,以防止災難性的裝置故障和/或防止可能導緻的營運突然中斷;在金融服務行業,算法交易或加密貨币套利等時間敏感型應用要求系統具有近實時地攝取和處理資料的能力。

視訊示範

接下來讓我們來看看這些處理器的實際應用。本視訊示範了配置和使用這些處理器向 Apache Pulsar 叢集發送資料并從其接收資料的過程。

視訊示範:

周邊生态|StreamNative 聯合 Cloudera 開源 Apache Pulsar+Apache NiFi 內建處理器

從視訊示範中可以看到,一共有四個處理器:​

​PublishPulsar​

​​ 和 ​

​PublishPulsarRecord​

​​ 用于向 Pulsar 釋出資料;​

​ConsumePulsar​

​​ 和 ​

​ConsumePulsarRecord​

​ 用于消費來自 Pulsar 的資料。bundle 中還包含兩個控制器服務:一個用于建立 Pulsar 用戶端,另一個用于身份驗證以保護 Pulsar 叢集。

使用處理器

這些處理器在公有雲上的 CDF 7.2.14 版本及以上版本可用,參考文檔[3]。如果您希望在其他 Apache NiFi 叢集中使用這些處理器,可以直接從 Maven 中央代碼倉庫[4]下載下傳工件,或者直接通過源代碼建構[5]。

相關閱讀

  • • Pulsar Summit 演講視訊: 邊緣 AI 場景中 FLiPN 技術棧(Flink, NiFi, Pulsar)的應用[6]
  • • 下載下傳示範代碼[7] 開始運作處理器。
  • • Producing and Consuming Pulsar messages with Apache NiFi[8]
  • • FLiP-Transit GitHub 倉庫[9]
  • • FLiPN-Demos GitHub 倉庫[10]

關于 StreamNative

StreamNative 是一家開源基礎軟體公司,由 Apache 軟體基金會頂級項目 Apache Pulsar 創始團隊組建而成,圍繞 Pulsar 打造下一代雲原生批流融合資料平台。StreamNative 作為 Apache Pulsar 商業化公司,專注于開源生态和社群建構,緻力于前沿技術領域的創新,創始團隊成員曾就職于 Yahoo、Twitter、Splunk、EMC 等知名大公司。

引用連結

[1] CDF: https://docs.cloudera.com/cdf-datahub/7.2.14/release-notes/topics/cdf-datahub-supported-partner-components.html

[2] Apache NiFi: https://nifi.apache.org/

[3] 文檔: https://docs.cloudera.com/cdf-datahub/7.2.14/release-notes/topics/cdf-datahub-supported-partner-components.html

[4] Maven 中央代碼倉庫: https://search.maven.org/search?q=g:io.streamnative.connectors%20nifi

[5] 建構: https://github.com/streamnative/pulsar-nifi-bundle

[6] 邊緣 AI 場景中 FLiPN 技術棧(Flink, NiFi, Pulsar)的應用: https://www.bilibili.com/video/BV1TP4y1P7TV

[7] 示範代碼: https://github.com/tspannhw/FLiPN-NFT

[8] Producing and Consuming Pulsar messages with Apache NiFi: https://www.datainmotion.dev/2021/11/producing-and-consuming-pulsar-messages.html

[9] FLiP-Transit GitHub 倉庫: https://github.com/tspannhw/FLiP-Transit

[10] FLiPN-Demos GitHub 倉庫: https://github.com/tspannhw/FLiPN-Demos