談談spark2以及stream

2021-08-19 14:27:20 字數 1038 閱讀 3133

4月底去參加了qcon 2018北京站,新興資料處理專場有機會聽到了spark structedstreming/blink/kafka stream三場的分享,整個聽下來有一些感想,剛好最近又在看spark2這塊的一些原始碼設計,所以想著寫點自己的理解。

想要解釋為什麼會出現dataset,那就不得不提到dataframe了

dataframe

dataframe相比rdd而言,有乙個優勢那就是可以使用spark catalyst optimized,如下圖:

可以看出dataframe和spark sql一樣底層都可以經過catalyst的優化

主要有以下幾個過程

1. 邏輯計畫生成、優化

2. 物理計畫生成、優化

3. 最後生成rdd操作

其他的類sql查詢,比如hive sql的執行過程也大抵如此,包括了抽象語法樹生成、邏輯計畫、物理計畫等,尤其是語法樹生成,hive更具備通用性,spark2當中也使用了和hive一樣的antlr來生成ast,大家有興趣可以看一下。

dataset做了什麼?

dataset在dataframe的基礎上做了更高階的封裝,如增加靜態變數、自定義函式等,在擁有dataframe所有的優點的前提下,程式設計方式更靈活。spark2為了統一api,移除了dataframe,將之變為dataset[row],也正是出於這點。

回到一開始的問題,為什麼會出現dataset,想必已經有了答案了。

目前較為主流的實時這塊的還是這幾個

各家廠商都在大力發展通用性這塊,從最早的spark streaming的程式設計方式到現在的只要幾條sql就可以處理一些場景的blink

sql天然具備的可優化性以及通用性決定了社群的活躍度。

後面會集中寫一篇介紹sql優化和catalyst

Spark 2 效能監控方式

1 spark web ui spark提供了一些基本的web監控頁面,對於日常監控十分有用。通過http master 4040 預設埠是4040,可以通過spark.ui.port修改 我們可以獲得執行中的程式資訊 1 stages和tasks排程情況 2 rdd大小及記憶體使用 3 系統環境資...

快速安裝Spark2和Livy0 3

1 把spark 2.4.3 bin hadoop2.7.tgz上傳到 opt software目錄,並解壓到 opt module user01 node1 software tar zxvf spark 2.4.3 bin hadoop2.7.tgz c opt module 2 修改名稱 op...

spark以standalone執行時的日誌清理

spark執行任務的日誌一直沒太大關注,原因是硬碟資源充足,除非任務出錯時才去看一下,但沒有清理這些日誌的習慣。直到最近遇到的乙個問題是,硬碟資源嚴重缺乏,不得不需要定時去清理日誌。第一時間去看下spark本身的配置,是否支援定時清理日誌的選項,畢竟spark那麼成熟,相信很多人都面臨過這樣的問題。...