原创 第96課: 通過Spark Streaming的foreachRDD把處理後的數據寫入外部存儲系統中

本期內容技術實現解析實現實戰SparkStreaming的DStream提供了一個dstream.foreachRDD方法,該方法是一個功能強大的原始的API,它允許將數據發送到外部系統。然而,重要的是要了解如何正確有效地使用這種原始方法。

原创 第95課:通過Spark Streaming的window操作實戰模擬新浪微博、百度、京東等熱點搜索詞案例實戰

背景描述:在社交網絡(例如微博)、電子商務(例如京東)、搜索引擎(例如百度)等人們核心關注的內容之一就是我所關注的內容中大家正在最關注什麼或者說當前的熱點是什麼,這在實際企業級應用中是非常有價值的。例如我們關係過去30分鐘大家正在熱搜索什麼

原创 第17課:Spark Streaming資源動態申請和動態控制消費速率原理剖析

本期內容:Spark Streaming資源動態分配Spark Streaming動態控制消費速率爲什麼需要動態?Spark默認情況下粗粒度的,先分配好資源再計算。而Spark Streaming有高峯值和低峯值,但是他們需要的資源是不一樣

原创 我的友情鏈接

天涯客的blog

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

上一節我們從總體上講解了Spark Streaming job的運行機制。本節我們針對job如何生成進行詳細的闡述,請看下圖:在Spark Streaming裏,總體負責動態作業調度的具體類是JobScheduler:/**  * This

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

本期內容:Direct AccessKafka前面有幾期我們講了帶Receiver的Spark Streaming 應用的相關源碼解讀。但是現在開發Spark Streaming的應用越來越多的採用No Receivers(Direct A

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

上一課我們講解了Receiver啓動的流程。Receiver是通過ReceiverSupervisor的start方法啓動的:/** Start the supervisor */ def start() {   onStart()   s

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

在Spark Streaming中對於ReceiverInputDStream來說,都是現實一個Receiver,用來接收數據。而Receiver可以有很多個,並且運行在不同的worker節點上。這些Receiver都是由ReceiverT

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

本期內容:ReceivedBlockTracker容錯安全性DStream和JobGenerator容錯安全性Driver的容錯有兩個層面:1. Receiver接收數據的元數據 2. Driver管理的各組件信息(調度和驅動層面)元數據採

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

本期內容:Spark Streaming數據清理原因和現象Spark Streaming數據清理代碼解析對Spark Streaming解析了這麼多課之後,我們越來越能感知,Spark Streaming只是基於Spark Core的一個應

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

  什麼是state(狀態)管理?我們以wordcount爲例。每個batchInterval會計算當前batch的單詞計數,那如果需要單詞計數一直的累加下去,該如何實現呢?SparkStreaming提供了兩種方法:updateState

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

  DStream是RDD的模板,每隔一個batchInterval會根據DStream模板生成一個對應的RDD。然後將RDD存儲到DStream中的generatedRDDs數據結構中:// RDDs generated, marked 

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

接着上一節,JobGenerator每隔batchInterval時間會動態的生成JobSet提交給JobScheduler。JobScheduler接收到JobSet後,如何處理呢?def submitJobSet(jobSet: Job

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

Spark Streaming的Job到底是如何運行的,我們下面以一個例子來解析一下:package com.dt.spark.streaming import com.dt.spark.common.ConnectPool import

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

上節課將到了Receiver是如何不斷的接收數據的,並且接收到的數據的元數據會彙報給ReceiverTracker,下面我們看看ReceiverTracker具體的功能及實現。一、 ReceiverTracker主要的功能:在Executo