自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我們一起聊聊大數(shù)據(jù)框架發(fā)展史

大數(shù)據(jù)
Spark 掀開了內(nèi)存計算的先河,也以內(nèi)存為賭注,贏得了內(nèi)存計算的飛速發(fā)展。Spark 的火熱或多或少的掩蓋了其他分布式計算的系統(tǒng)身影。就像 Flink,也就在這個時候默默的發(fā)展著。

[[428812]]

這幾年大數(shù)據(jù)的飛速發(fā)展,出現(xiàn)了很多熱門的開源社區(qū),其中著名的有 Hadoop、Storm,以及后來的 Spark,他們都有著各自專注的應用場景。Spark 掀開了內(nèi)存計算的先河,也以內(nèi)存為賭注,贏得了內(nèi)存計算的飛速發(fā)展。Spark 的火熱或多或少的掩蓋了其他分布式計算的系統(tǒng)身影。就像 Flink,也就在這個時候默默的發(fā)展著。

在國外一些社區(qū),有很多人將大數(shù)據(jù)的計算引擎分成了 4 代,當然,也有很多人不會認同。我們先姑且這么認為和討論。

第1代——Hadoop MapReduce

首先第一代的計算引擎,無疑就是 Hadoop 承載的 MapReduce。它將計算分為兩個階段,分別為 Map 和 Reduce。對于上層應用來說,就不得不想方設法去拆分算法,甚至于不得不在上層應用實現(xiàn)多個 Job 的串聯(lián),以完成一個完整的算法,例如迭代計算。

介紹

MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數(shù)式編程語言里借來的,還有從矢量編程語言里借來的特性。它極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統(tǒng)上。當前的軟件實現(xiàn)是指定一個Map(映射)函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce(歸約)函數(shù),用來保證所有映射的鍵值對中的每一個共享相同的鍵組。

  • 批處理
  • Mapper、Reducer

第2代——DAG框架(Tez) + MapReduce

由于這樣的弊端,催生了支持 DAG 框架的產(chǎn)生。因此,支持 DAG 的框架被劃分為第二代計算引擎。如 Tez 以及更上層的 Oozie。這里我們不去細究各種 DAG 實現(xiàn)之間的區(qū)別,不過對于當時的 Tez 和 Oozie 來說,大多還是批處理的任務。

介紹

Tez是Apache開源的支持DAG作業(yè)的計算框架,它直接源于MapReduce框架,核心思想是將Map和Reduce兩個操作進一步拆分,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,這樣,這些分解后的元操作可以任意靈活組合,產(chǎn)生新的操作,這些操作經(jīng)過一些控制程序組裝后,可形成一個大的DAG作業(yè)。

  • 批處理
  • 1個Tez = MR(1) + MR(2) + ... + MR(n)
  • 相比MR效率有所提升

第3代——Spark

接下來就是以 Spark 為代表的第三代的計算引擎。第三代計算引擎的特點主要是 Job 內(nèi)部的 DAG 支持(不跨越 Job),以及強調(diào)的實時計算。在這里,很多人也會認為第三代計算引擎也能夠很好的運行批處理的 Job。

介紹

Spark是加州大學伯克利分校AMP實驗室(Algorithms, Machines, and People Lab)開發(fā)的通用內(nèi)存并行計算框架

Spark使用Scala語言進行實現(xiàn),它是一種面向對象、函數(shù)式編程語言,能夠像操作本地集合對象一樣輕松地操作分布式數(shù)據(jù)集,具有以下特點。

  1. 運行速度快:Spark擁有DAG執(zhí)行引擎,支持在內(nèi)存中對數(shù)據(jù)進行迭代計算。官方提供的數(shù)據(jù)表明,如果數(shù)據(jù)由磁盤讀取,速度是Hadoop MapReduce的10倍以上,如果數(shù)據(jù)從內(nèi)存中讀取,速度可以高達100多倍。
  2. 易用性好:Spark不僅支持Scala編寫應用程序,而且支持Java和Python等語言進行編寫,特別是Scala是一種高效、可拓展的語言,能夠用簡潔的代碼處理較為復雜的處理工作。
  3. 通用性強:Spark生態(tài)圈即BDAS(伯克利數(shù)據(jù)分析棧)包含了Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等組件,這些組件分別處理Spark Core提供內(nèi)存計算框架、SparkStreaming的實時處理應用、Spark SQL的即席查詢、MLlib或MLbase的機器學習和GraphX的圖處理。
  4. 隨處運行:Spark具有很強的適應性,能夠讀取HDFS、Cassandra、HBase、S3和Techyon為持久層讀寫原生數(shù)據(jù),能夠以Mesos、YARN和自身攜帶的Standalone作為資源管理器調(diào)度job,來完成Spark應用程序的計算
  • 批處理、流處理、SQL高層API支持
  • 自帶DAG
  • 內(nèi)存迭代計算、性能較之前大幅提升

第4代——Flink

隨著第三代計算引擎的出現(xiàn),促進了上層應用快速發(fā)展,例如各種迭代計算的性能以及對流計算和 SQL 等的支持。Flink 的誕生就被歸在了第四代。這應該主要表現(xiàn)在 Flink 對流計算的支持,以及更一步的實時性上面。當然 Flink 也可以支持 Batch 的任務,以及 DAG 的運算。

介紹

Flink 誕生于歐洲的一個大數(shù)據(jù)研究項目 StratoSphere。該項目是柏林工業(yè)大學的一個研究性項目。早期, Flink 是做 Batch 計算的,但是在 2014 年, StratoSphere 里面的核心成員孵化出 Flink,同年將 Flink 捐贈 Apache,并在后來成為 Apache 的頂級大數(shù)據(jù)項目,同時 Flink 計算的主流方向被定位為 Streaming, 即用流式計算來做所有大數(shù)據(jù)的計算,這就是 Flink 技術誕生的背景。

2014 年 Flink 作為主攻流計算的大數(shù)據(jù)引擎開始在開源大數(shù)據(jù)行業(yè)內(nèi)嶄露頭角。區(qū)別于 Storm、Spark Streaming 以及其他流式計算引擎的是:它不僅是一個高吞吐、低延遲的計算引擎,同時還提供很多高級的功能。比如它提供了有狀態(tài)的計算,支持狀態(tài)管理,支持強一致性的數(shù)據(jù)語義以及支持 基于Event Time的WaterMark對延遲或亂序的數(shù)據(jù)進行處理等。

  • 批處理、流處理、SQL高層API支持
  • 自帶DAG
  • 流式計算性能更高、可靠性更高

本文轉載自微信公眾號「大數(shù)據(jù)老哥」,作者大數(shù)據(jù)老哥。轉載本文請聯(lián)系大數(shù)據(jù)老哥公眾號。

 

責任編輯:武曉燕 來源: 大數(shù)據(jù)老哥
相關推薦

2022-06-26 09:40:55

Django框架服務

2023-02-02 13:18:22

2025-02-28 08:46:24

框架微服務架構

2023-08-04 08:20:56

DockerfileDocker工具

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-08-10 08:28:46

網(wǎng)絡編程通信

2023-09-10 21:42:31

2023-06-30 08:18:51

敏捷開發(fā)模式

2021-08-27 07:06:10

IOJava抽象

2024-02-20 21:34:16

循環(huán)GolangGo

2015-12-17 14:48:27

2024-08-02 09:49:35

Spring流程Tomcat

2022-02-23 08:41:58

NATIPv4IPv6

2022-09-22 08:06:29

計算機平板微信

2024-11-28 09:57:50

C#事件發(fā)布器

2022-10-08 00:00:05

SQL機制結構

2024-07-26 09:47:28

2023-03-26 23:47:32

Go內(nèi)存模型

2023-07-24 09:41:08

自動駕駛技術交通

2021-08-12 07:49:24

mysql
點贊
收藏

51CTO技術棧公眾號