最近看到的spark資料整理

2021-07-24 10:34:24 字數 1762 閱讀 2479

先分享乙個鏈結這是spark開發團隊寫的,讀完之後會對spark更了解一點。因為現在我也處於開始學習的階段,不敢說理解。

spark的特點:相比於mapreduce,spark是基於記憶體的,在分布式環境下,spark將作為轉化為有向無環圖dag,並分階段進行dag的排程和任務的分布式並行處理。所以spark也支援記憶體資料共享,所以spark比hadoop快。spark的執行圖如下:

在spark執行過程中,driver和worker是重要角色。driver是應用邏輯的起點,負責作業的排程,即task任務的分發,多個worker負責管理計算節點和建立executor並行執行任務;在執行階段,driver會將task和task依賴的jar序列化後傳輸給work機器。

下面介紹spark架構的基本元件:

spark還包含許多有用的庫,常見的spark庫有:

spark streaming:

spark streaming基於微批量方式的計算和處理,可以用於處理實時的流資料。它使用dstream,簡單來說就是乙個彈性分布式資料集(rdd)系列,處理實時資料。

spark sql:

spark sql可以通過jdbc api將spark資料集暴露出去,而且還可以用傳統的bi和視覺化工具在spark資料上執行類似sql的查詢。使用者還可以用spark sql對不同格式的資料(如json,parquet以及資料庫等)執行etl,將其轉化,然後暴露給特定的查詢。

spark mllib:

mllib是乙個可擴充套件的spark機器學習庫,由通用的學習演算法和工具組成,包括二元分類、線性回歸、聚類、協同過濾、梯度下降以及底層優化原語。

spark graphx:

graphx是用於圖計算和並行圖計算的新的(alpha)spark api。通過引入彈性分布式屬性圖(resilient distributed property graph),一種頂點和邊都帶有屬性的有向多重圖,擴充套件了spark rdd。為了支援圖計算,graphx暴露了乙個基礎操作符集合(如subgraph,joinvertices和aggregatemessages)和乙個經過優化的pregel api變體。此外,graphx還包括乙個持續增長的用於簡化圖分析任務的圖演算法和構建器集合。

除了這些庫以外,還有一些其他的庫,如blinkdb和tachyon。

blinkdb是乙個近似查詢引擎,用於在海量資料上執行互動式sql查詢。blinkdb可以通過犧牲資料精度來提公升查詢響應時間。通過在資料樣本上執行查詢並展示包含有意義的錯誤線註解的結果,操作大資料集合。

tachyon是乙個以記憶體為中心的分布式檔案系統,能夠提供記憶體級別速度的跨集群框架(如spark和mapreduce)的可信檔案共享。它將工作集檔案快取在記憶體中,從而避免到磁碟中載入需要經常讀取的資料集。通過這一機制,不同的作業/查詢和框架可以以記憶體級的速度訪問快取的檔案。

此外,還有一些用於與其他產品整合的介面卡,如cassandra(spark cassandra 聯結器)和r(sparkr)。cassandra connector可用於訪問儲存在cassandra資料庫中的資料並在這些資料上執行資料分析。

spark的生態系統如下圖:

最近看到的幾本書

聊聊架構通過大量例項揭示架構背後的原理,在軟體行業的發展,並通過例項展示軟體架構的實際應用。架構真經幫助工程師 架構師和管理者研發及維護擴充套件的網際網路產品。演算法之美 指導工作與生活的演算法告訴我們如何更有效的利用直覺,如何有效的做出選擇,如何有效地與他們保持聯絡。山山水水聊聊畫畫 本書雖然沿襲...

Spark需要改進的點整理

1.主要還是記憶體問題 基於jvm的大資料程式都很難避開資源管理或者記憶體管理這個問題 a jvm的記憶體overhead太大,1g的資料通常需要消耗5g的記憶體 project tungsten 正試 決這個問題 最明顯的當然是記憶體需要太多,花錢太多。還有部署麻煩,能否一鍵安裝。執行過程中不要老...

關於Spark和Spark的學習資料

hadoop社群依然發展迅速,2014年推出了2.3,2.4,2.5 的社群版本,比如增強 resource manager ha,yarn rest api,acl on hdfs,改進 hdfs 的 web ui hadoop roadmap 根據我的觀察,主要更新在yarn,hdfs,而map...