通過案例對spark streaming透徹理解三板斧之三

? ? 通過案例對spark streaming透徹理解三板斧之三:解密Spark Streaming運行機(jī)制和框架

? ? 首先我們運行以下的程序浑槽,然后通過這個程序的運行過程進(jìn)一步加深理解Spark?Streaming流處理的Job的執(zhí)行的過程占调,代碼如下:

object?OnlineForeachRDD2DB?{

def?main(args:?Array[String]){

/*

*?第1步:創(chuàng)建Spark的配置對象SparkConf,設(shè)置Spark程序的運行時的配置信息啥纸,

*?例如說通過setMaster來設(shè)置程序要鏈接的Spark集群的Master的URL,如果設(shè)置

*?為local,則代表Spark程序在本地運行婴氮,特別適合于機(jī)器配置條件非常差(例如

*?只有1G的內(nèi)存)的初學(xué)者???????*

*/

val?conf?=?new?SparkConf()?//創(chuàng)建SparkConf對象

conf.setAppName("OnlineForeachRDD")?//設(shè)置應(yīng)用程序的名稱斯棒,在程序運行的監(jiān)控界面可以看到名稱

conf.setMaster("spark://Master:7077")?//此時盾致,程序在Spark集群

conf.setMaster("local[6]")

//設(shè)置batchDuration時間間隔來控制Job生成的頻率并且創(chuàng)建Spark?Streaming執(zhí)行的入口

val?ssc?=?new?StreamingContext(conf,?Seconds(5))

val?lines?=?ssc.socketTextStream("Master",?9999)

val?words?=?lines.flatMap(_.split("?"))

val?wordCounts?=?words.map(x?=>?(x,?1)).reduceByKey(_?+?_)

wordCounts.foreachRDD?{?rdd?=>

rdd.foreachPartition?{?partitionOfRecords?=>?{

//?ConnectionPool?is?a?static,?lazily?initialized?pool?of?connections

val?connection?=?ConnectionPool.getConnection()

partitionOfRecords.foreach(record?=>?{

val?sql?=?"insert?into?streaming_itemcount(item,count)?values('"?+?record._1?+?"',"?+?record._2?+?")"

val?stmt?=?connection.createStatement();

stmt.executeUpdate(sql);

})

ConnectionPool.returnConnection(connection)??//?return?to?the?pool?for?future?reuse

}

}

}

/**

* ?在StreamingContext調(diào)用start方法的內(nèi)部其實是會啟動JobScheduler的Start方法,進(jìn)行消息循環(huán)荣暮,

*在JobScheduler的start內(nèi)部會構(gòu)造JobGenerator和ReceiverTacker庭惜,并且調(diào)用JobGenerator和

*ReceiverTacker的start方法:

* ?1,JobGenerator啟動后會不斷的根據(jù)batchDuration生成一個個的Job

* ?2穗酥,ReceiverTracker啟動后首先在Spark?Cluster中啟動Receiver(其實是在Executor中先啟動

*ReceiverSupervisor)护赊,在Receiver收到數(shù)據(jù)后會通過ReceiverSupervisor存儲到Executor并且把

*數(shù)據(jù)的Metadata信息發(fā)送給Driver中的ReceiverTracker,在ReceiverTracker內(nèi)部會通過

*ReceivedBlockTracker來管理接受到的元數(shù)據(jù)信息每個BatchInterval會產(chǎn)生一個具體的Job砾跃,

*其實這里的Job不是Spark?Core中所指的Job骏啰,它只是基于DStreamGraph而生成的RDD的DAG

*而已,從Java角度講蜓席,相當(dāng)于Runnable接口實例器一,此時要想運行Job需要提交給JobScheduler,

*在JobScheduler中通過線程池的方式找到一個單獨的線程來提交Job到集群運行(其實是在線程中

*基于RDD的Action觸發(fā)真正的作業(yè)的運行)厨内,

* ?為什么使用線程池呢祈秕?

* ?1,作業(yè)不斷生成雏胃,所以為了提升效率请毛,我們需要線程池;這和在Executor中通過線程池執(zhí)行Task

*有異曲同工之妙瞭亮;

* ?2方仿,有可能設(shè)置了Job的FAIR公平調(diào)度的方式,這個時候也需要多線程的支持统翩;

*/

ssc.start()

ssc.awaitTermination()

}

}

Spark Streaming容錯機(jī)制

? (1)driver級別容錯

(2)Executor級別容錯

? ? ? ? 1.接收數(shù)據(jù)的安全性

? ? ? ? 2.執(zhí)行的安全性

備注:

資料來源于:DT_大數(shù)據(jù)夢工廠(Spark發(fā)行版本定制)

更多私密內(nèi)容仙蚜,請關(guān)注微信公眾號:DT_Spark

如果您對大數(shù)據(jù)Spark感興趣,可以免費聽由王家林老師每天晚上20:00開設(shè)的Spark永久免費公開課厂汗,地址YY房間號:68917580

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末委粉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子娶桦,更是在濱河造成了極大的恐慌贾节,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衷畦,死亡現(xiàn)場離奇詭異栗涂,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)祈争,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門斤程,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人菩混,你說我怎么就攤上這事暖释∠В” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵球匕,是天一觀的道長纹磺。 經(jīng)常有香客問我,道長亮曹,這世上最難降的妖魔是什么橄杨? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮照卦,結(jié)果婚禮上式矫,老公的妹妹穿的比我還像新娘。我一直安慰自己役耕,他們只是感情好采转,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瞬痘,像睡著了一般故慈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上框全,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天察绷,我揣著相機(jī)與錄音,去河邊找鬼津辩。 笑死拆撼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喘沿。 我是一名探鬼主播闸度,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚜印!你這毒婦竟也來了筋岛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤晒哄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肪获,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體寝凌,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年孝赫,在試婚紗的時候發(fā)現(xiàn)自己被綠了较木。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡青柄,死狀恐怖伐债,靈堂內(nèi)的尸體忽然破棺而出预侯,到底是詐尸還是另有隱情,我是刑警寧澤峰锁,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布萎馅,位于F島的核電站,受9級特大地震影響虹蒋,放射性物質(zhì)發(fā)生泄漏糜芳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一魄衅、第九天 我趴在偏房一處隱蔽的房頂上張望峭竣。 院中可真熱鬧,春花似錦晃虫、人聲如沸皆撩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扛吞。三九已至,卻和暖如春盘榨,著一層夾襖步出監(jiān)牢的瞬間喻粹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工草巡, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留守呜,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓山憨,卻偏偏與公主長得像查乒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子郁竟,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容