原创 第11課:Spark Streaming源碼解讀之Driver中的ReceiverTracker架構設計以及具體實現徹底研究

本篇博文的目標是: Driver的ReceiverTracker接收到數據之後,下一步對數據是如何進行管理一:ReceiverTracker的架構設計 1. Driver在Executor啓動Receiver方式,每個Receiver都封裝

原创 第13課:Spark Streaming源碼解讀之Driver容錯安全性

本篇博文的目標如下: 1. ReceiverBlockTracker容錯安全性 2. DStream和JobGenerator容錯安全性文章的組織思路如下: 考慮Driver容錯安全性,我們要思考什麼? 再詳細分析ReceiverBlock

原创 第8課:Spark Streaming源碼解讀之RDD生成全生命週期徹底研究和思考

本篇博客將詳細探討DStream模板下的RDD是如何被創建,然後被執行的。在開始敘述之前,先來思考幾個問題,本篇文章也就是基於此問題構建的。 1. RDD是誰產生的? 2. 如何產生RDD? 帶着這兩個問題開啓我們的探索之旅。 一:實戰Wo

原创 第6課:Spark Streaming源碼解讀之Job動態生成和深度思考

一:Spark Streaming Job生成深度思考 1. 做大數據例如Hadoop,Spark等,如果不是流處理的話,一般會有定時任務。例如10分鐘觸發一次,1個小時觸發一次,這就是做流處理的感覺,一切不是流處理,或者與流處理無關的數據

原创 第14課:Spark Streaming源碼解讀之State管理之updateStateByKey和mapWithState解密

背景: 整個Spark Streaming是按照Batch Duractions劃分Job的。但是很多時候我們需要算過去的一天甚至一週的數據,這個時候不可避免的要進行狀態管理,而Spark Streaming每個Batch Duractio

原创 第7課:Spark Streaming源碼解讀之JobScheduler內幕實現和深度思考

一:JobSheduler的源碼解析 1. JobScheduler是Spark Streaming整個調度的核心,相當於Spark Core上的DAGScheduler. 2. Spark Streaming爲啥要設置兩條線程? setM

原创 第15課:Spark Streaming源碼解讀之No Receivers徹底思考

背景: 目前No Receivers在企業中使用的越來越多。No Receivers具有更強的控制度,語義一致性。No Receivers是我們操作數據來源自然方式,操作數據來源使用一個封裝器,且是RDD類型的。所以Spark Stream

原创 第9課:Spark Streaming源碼解讀之Receiver在Driver的精妙實現全生命週期徹底研究和思考

一:Receiver啓動的方式設想 1. Spark Streaming通過Receiver持續不斷的從外部數據源接收數據,並把數據彙報給Driver端,由此每個Batch Durations就可以根據彙報的數據生成不同的Job。 2. R

原创 第5課:基於案例一節課貫通Spark Streaming流計算框架的運行源碼

package com.dt.spark.streaming_scalaimport org.apache.spark.SparkConfimport org.apache.spark.sql.Rowimport org.apache.sp

原创 第12課:Spark Streaming源碼解讀之Executor容錯安全性

本篇博文的目標是 1. Executor的WAL機制詳解 2. 消息重放Kafka數據安全性的考慮:Spark Streaming不斷的接收數據,並且不斷的產生Job,不斷的提交Job給集羣運行。所以這就涉及到一個非常重要的問題數據安全性。

原创 第10課:Spark Streaming源碼解讀之流數據不斷接收全生命週期徹底研究和思考

特別說明: 在上一遍文章中有詳細的敘述Receiver啓動的過程,如果不清楚的朋友,請您查看上一篇博客,這裏我們就基於上篇的結論,繼續往下說。博文的目標是: Spark Streaming在接收數據的全生命週期貫通組織思路如下: a) 接收

原创 第6課:Spark Streaming源碼解讀之Job動態生成和深度思考

一:Spark Streaming Job生成深度思考 1. 做大數據例如Hadoop,Spark等,如果不是流處理的話,一般會有定時任務。例如10分鐘觸發一次,1個小時觸發一次,這就是做流處理的感覺,一切不是流處理,或者與流處理無關的數據

原创 第16課:Spark Streaming源碼解讀之數據清理內幕徹底解密

本篇博客的主要目的是: 1. 理清楚Spark Streaming中數據清理的流程組織思路如下: a) 背景 b) 如何研究Spark Streaming數據清理? c) 源碼解析一:背景 Spark Streaming數據清理的工作無論是

原创 第2課:通過案例對SparkStreaming 透徹理解三板斧之二:解密SparkStreaming運行機制和架構

Spark Streaming是Spark的一個子框架,但是它更像是運行在Spark Core上的一個應用程序。Spark Streaming在啓動時運行了很多的job,並且job之間相互配合。Job圍繞了兩個方面:1. 對輸入數據流進行計

原创 第3課:通過案例對SparkStreaming 透徹理解三板斧之三:解密SparkStreaming運行機制和架構進階之Job和容錯

理解Spark Streaming的Job的整個架構和運行機制對於精通Spark Streaming是至關重要的。一 首先我們運行以下的程序,然後通過這個程序的運行過程進一步加深理解Spark Streaming流處理的Job的執行的過程,