日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

大數據的處理引擎

> Photo by Tomas Martinez on Unsplash

 

介紹

本文基于我之前的文章"一文了解大數據管道",我試圖快速概述大數據世界的所有方面。

本文的目標是重點介紹大數據 ETL 管道的"T",該管道審查處理大量數據的主要框架。主要焦點將是 Hadoop 生態系統。

但首先,讓我們回顧一下這個階段是什么。請記住,此時您已輸入了已準備好處理的原始數據。

大數據處理階段

此階段的目標是使用單個架構清理、規范化、處理和保存數據。最終結果是具有定義良好的架構的受信任數據集。處理框架(如 Spark)用于在計算機群集中并行處理數據。

通常,您需要執行某種處理,例如:

· 驗證:通過將錯誤數據存儲在單獨的存儲中來驗證數據并隔離壞數據。在達到特定閾值時,根據您的數據質量要求發送警報。

· 替換和清理:清理數據并將其存儲在另一種格式中,以進行進一步處理,例如,用 Avro 替換效率低下的 JSON。

· 數值的規范化和標準化

· 重命名字段

請記住,目標是創建一個受信任的數據集,該數據集以后可用于下游系統。這是數據工程師的一個關鍵作用。這可以通過流或批處理方式完成。

在批處理的情況下,管道處理可分為三個階段:

預處理階段

如果原始數據未干凈或格式不正確,則需要進行預處理。此階段包括一些基本驗證,但目標是為下一階段高效處理數據做好準備。在此階段,您應該嘗試拼合數據,并保存為二進制格式,如 Avro。這將加快進一步處理。其理念是,下一階段將執行行級操作,嵌套查詢成本高昂,因此現在拼合數據將提高下一階段的性能。

可信階段

在此階段,數據將驗證、清理、規范化并轉換為存儲在 Hive 或其他數據存儲中的通用架構。目標是創建數據所有者理解的受信任的公共數據集。通常,創建數據規范,數據工程師的作用是應用轉換來匹配規范,包括驗證規則、轉換、值標準化、重命名字段等。

最終結果是可以輕松查詢的 Parquet 或其他列格式的數據集。選擇正確的分區并優化數據以執行內部查詢至關重要。

在此階段,您可能需要部分預計算某些聚合,以提高查詢性能。

報告階段

此步驟是可選的,但通常是必需的。遺憾的是,在使用數據湖時,單個架構不會為所有用例服務;這是數據倉庫和數據湖之間的一個區別。查詢 HDFS 的效率不像數據庫或數據倉庫那樣高,因此需要進一步的優化。

在此階段,您可能需要取消規范化數據以使用不同的分區存儲數據,以便不同利益干系人可以更高效地查詢數據。其理念是創建針對不同下游系統(數據集市)優化的不同視圖。

在此階段,如果不使用 OLAP 引擎,也可以計算聚合。受信任的階段不知道誰將查詢數據,此階段優化了使用者的數據。如果客戶端具有高度交互性,您可能希望在此階段引入快速存儲層,如用于快速查詢的關系數據庫。或者,您也可以使用 OLAP 引擎。

對于流式處理,邏輯是相同的,但它將在定義的 DAG 中以流方式運行。Spark 允許您使用歷史數據加入流,但它有一些限制。OLAP 引擎更適合實時與歷史數據合并。

處理框架

可用于處理的一些工具包括:

Spark

這是最廣為人知的批處理框架。作為 Hadoop 生態系統的一部分,它是一個托管群集,提供令人難以置信的并行性、監視和出色的 UI。它還支持流處理(結構流)。基本上 Spark 在內存中運行 MapReduce 作業,使常規 MapReduce 性能增加 100 倍。它與 Hive 集成以支持 SQL,可用于創建 Hive 表、視圖或查詢數據。它有很多集成,支持許多格式,有一個巨大的社區。它由所有云提供商支持。它可以作為 Hadoop 群集的一部分在 YARN 上運行,也可以在 Kubernetes 和其他平臺上運行。它有許多用于特定用例的庫,如 SQL 或機器學習。

大數據的處理引擎

 

Flink

第一個統一批處理和流處理但主要關注流式處理的引擎。它可以用作像 Kafka 這樣的微服務的骨干。它可以作為 Hadoop 群集的一部分在 YARN 上運行,但自成立以來,它也針對其他平臺(如 Kubernetes 或 Mesos)進行了優化。它速度極快,提供實時流式處理,因此比 Spark 更好的選擇,用于低延遲流處理,尤其是對于有狀態流。它還具有 SQL、機器學習等庫。它比 Spark 更快,是數據流更好的選項。

大數據的處理引擎

 

Storm

Apache Storm 是一個免費且開源的分布式實時計算系統。它專注于流式處理,它是 Hadoop 生態系統的托管解決方案部分。它是可擴展的,容錯,保證您的數據將得到處理,并且易于設置和操作。

Samza

另一個偉大的有狀態流處理引擎。Samza 允許您構建有狀態的應用程序,這些應用程序可實時處理來自多個來源(包括 Apache Kafka)的數據。在 YARN 頂部運行的 Hadoop 生態系統的托管解決方案部分。

大數據的處理引擎

 

Beam

Apache Beam 它不是一個引擎本身,而是一個統一編程模型的規范,它匯集了所有其他引擎。它提供了一個可用于不同語言的編程模型,因此開發人員在處理大數據管道時不必學習新語言。然后,它將不同的后端插入可以在云或本地運行的處理步驟。Beam 支持前面提到的所有引擎,您可以輕松地在它們之間切換并在任何平臺上運行它們:云、YARN、Mesos、Kubernetes。如果您要啟動一個新項目,我真的建議從 Beam 開始,以確保您的數據管道是未來的證明。

大數據的處理引擎

 

結論

處理引擎是目前在大數據詞中使用的最著名的工具。作為一名大數據工程師,您將經常使用這些引擎。了解這些引擎的分布式性質并知道如何優化它們、保護它們并監視它們,這一點至關重要。

請記住,還有 OLAP 引擎提供單一解決方案來查詢大量數據,而無需編寫復雜的轉換,而是以特定格式加載數據,使查詢更具性能。

對于一個新項目,我真正建議研究Apache Beam,因為它提供了一個抽象的頂部所有其他引擎允許您更改處理引擎,而無需更改代碼。

對于流處理,特別是有狀態的流處理,請考慮 Flink 或 Samza。對于批處理,請使用火花。

我希望你喜歡這篇文章。請隨時發表評論或分享此帖子。關注我的未來職位。

(本文翻譯自Daan的文章《Processing Engines for Big Data》,參考:https://itnext.io/processing-engines-for-big-data-5827bfad6b02)

分享到:
標簽:引擎 數據
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定