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

本期內容:解密Spark Streaming Job架構和運行機制解密Spark Streaming容錯架構和運行機制理解SparkStreaming的Job的整個架構和運行機制對於精通SparkStreaming是至關重要的。我們知道對於

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

Receiver接收到的數據交由ReceiverSupervisorImpl來管理。ReceiverSupervisorImpl接收到數據後,會數據存儲並且將數據的元數據報告給ReceiverTracker 。Executor的數據容錯可以

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

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

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

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

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

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

原创 我的友情鏈接

天涯客的blog

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

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

原创 第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

原创 博客彙總

Spark IMF課程:第56課:Spark SQL和DataFrame的本質http://lqding.blog.51cto.com/9123978/1751056第57課:Spark SQL on Hive配置及實戰http://lqd

原创 第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

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

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

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

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

原创 JVM中的G1垃圾收集器

G1 垃圾收集器是Jdk7的新特性之一、Jdk7+版本都可以自主配置G1作爲JVM GC選項;作爲JVM GC算法的一次重大升級、JDK7u後G1已相對穩定、且未來計劃替代CMS、所以有必要深入瞭解下:不同於其他的分代回收算法、G1將堆空間