打造結構一體化 功能多元化的高效資料流水線

2021-06-21 04:14:54 字數 1257 閱讀 9669

最初接觸spark純粹是出於個人興趣。我感興趣的技術方向主要有二,即分布式系統和函式式語言。spark作為一套用scala寫成的分布式記憶體計算系統,很好地結合了這兩個領域。spark提供的scala api本身也很類似於一套分布式、惰性求值的純函式式語言。然而後來,越是深入探尋,便越是被spark所吸引。spark背後的不少想法在先前的系統中或多或少都有所體現,但matei zaharia博士眾人非常巧妙地集眾家之所長,融會貫通,克服了眾多舊有特化系統中的各種缺陷,濃縮提煉出了rdd(resilient distributed dataset,彈性分布式資料集)這一高度通用的抽象結構。圍繞rdd這一核心,amplab團隊以紮實的工程功底和開放的心態,打造了全新的spark生態圈,又以spark為核心提出了極富創意的bdas(berkeley data analytics stack,伯克利資料分析棧)。在研究成果的工業轉化方面,amplab團隊可謂典範:他們不僅是富有遠見的科學家,也是功力深厚的工程師,同時還扮演著開源社群中循循善誘的良師益友角色。正是基於以上這些原因,去年得知spark核心團隊創辦databricks後我便力求加盟,並最終幸運地得償所願。能與這樣一群傑出的同事工作,本身就是一件令人非常興奮的事。

- 對於解決哪些問題spark獨具優勢?

隨著大資料相關技術和產業的逐漸成熟,單個組織內往往需要同時進行多種型別的大資料分析作業。如:傳統hadoop mapreduce最為擅長的批量計算、各種機器學習演算法為代表的迭代型計算、流式計算、社交網路中常用的圖計算、sql關係查詢、互動式即席查詢等等。在spark出現之前,要在乙個組織內同時完成數種大資料分析任務,就不得不與多套特化系統打交道,一方面引入了不容小覷的運維複雜性,另一方面還免不了要在多個系統間頻繁進行代價高昂的資料轉儲(etl)。amplab在介紹以spark為核心的bdas時常說的一句話是:one stack to rule them all,也就是說可以在一套軟體棧內完成前述各種大資料分析任務。相對於mapreduce上的批量計算、迭代型計算以及基於hive的sql查詢,spark更是可以帶來一到兩個數量級的效率提公升,在傳統mapreduce近乎不可能的互動式即席查詢也因而得以實現。這種「全能」特質,很大程度上源自rdd這一合理抽象和amplab/databricks團隊紮實的工程功底。當然,spark並不真的是全能的。rdd模型適合的是粗粒度的資料平行計算,而不適合細粒度的、需要非同步更新的計算;對於這些計算需求,如果要追求極致的效能,還是需要求助於特化系統(如圖計算領域的graphlab等)。但就現有成果來看,spark的覆蓋面已然相當廣泛。簡而言之,spark的獨門秘籍便是打造結構上一體化、功能上多元化的高效資料流水線。

前向一體化 後向一體化 縱向一體化的含義

前向一體化就是企業通過收購或兼併若干商業企業,或者擁有和控制其分銷系統,實行產銷一體化。前向一體化是指獲得分銷商或零售商的所有權或加強對它們的控制,也就是指企業根據市場的需要和生產技術的可能條件,利用自己的優勢,把成品進行深加工的戰略。在生產過程中,物流從順方向移動,稱為前向一體化,採用這種戰略,是...

打造Android一體化輪播廣告條

在文章打造android一體式輪播廣告條中,我們已經學習了打造android一體式輪播廣告條的製作,在上篇文章中我們已經通過一種方法實現了廣告條的無線迴圈。主要做的目的就是讓viewpager和指示器進行封裝,方便我們使用,不需要多次進行指示器的控制。看過最後的效果圖我們發現上篇的原理中,從最後一張...

狀態列一體化

效果圖方法實現 1新增布局屬性 首先要在布局檔案中加入下面兩個屬性 android cliptopadding true android fitssystemwindows true 解釋一下上面兩個布局屬性的意思 android cliptopadding 定義布局間是否有間距 android f...