成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

SparkStreaming高級(jí)特性在NDCG計(jì)算實(shí)踐

從storm到spark streaming,再到flink,流式計(jì)算得到長(zhǎng)足發(fā)展, 依托于spark平臺(tái)的spark streaming走出了一條自己的路,其借鑒了spark批處理架構(gòu),通過(guò)批處理方式實(shí)現(xiàn)了實(shí)時(shí)處理框架。為進(jìn)一步了解spark streaming的相關(guān)內(nèi)容,飛馬網(wǎng)于3月20日晚邀請(qǐng)到歷任百度大數(shù)據(jù)的高級(jí)工程師—王富平,在線上直播中,王老師針對(duì)spark streaming高級(jí)特性以及ndcg計(jì)算實(shí)踐進(jìn)行了分享。

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司十余年經(jīng)驗(yàn)成就非凡,專業(yè)從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)頁(yè)制作,軟文平臺(tái),一元廣告等。十余年來(lái)已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:13518219792,我們期待您的來(lái)電!

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

以下是本次直播的主要內(nèi)容:

一.Spark Streaming簡(jiǎn)介

 

1.spark是什么?

spark就是一個(gè)批處理框架,它具有高性能、生態(tài)豐富的優(yōu)勢(shì)。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

在沒(méi)有spark之前,我們是怎么做大數(shù)據(jù)分析的呢?其實(shí)在沒(méi)有spark之前,我們用的是基于Hadoop的MapReduce框架來(lái)做數(shù)據(jù)分析。時(shí)至今日,傳統(tǒng)的MapReduce任務(wù)并沒(méi)有完全退出市場(chǎng),在一些數(shù)據(jù)量非常大的場(chǎng)景下,MapReduce表現(xiàn)地還是相當(dāng)穩(wěn)定的。

 

2.spark streaming是什么?

spark streaming是按時(shí)間對(duì)數(shù)據(jù)進(jìn)行分批處理的框架,.spark平臺(tái)帶來(lái)的優(yōu)勢(shì),使得spark streaming開(kāi)發(fā)簡(jiǎn)單、廣泛使用。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

spark streaming的實(shí)現(xiàn)方式是基于spark的批處理理念,因此它可以直接使用spark平臺(tái)提供的工具組件。

 

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

通過(guò)上面這張圖,我們可以把spark streaming的輸入當(dāng)成一個(gè)數(shù)據(jù)流,通過(guò)時(shí)間將數(shù)據(jù)進(jìn)行分批處理,分批時(shí)間根據(jù)我們自己的業(yè)務(wù)情況而定。

 

3.WordCount的例子:

下面舉一個(gè)WordCount的例子,我們可以看到,短短幾行代碼,就實(shí)現(xiàn)了一個(gè)WordCount。由于spark平臺(tái)與Hadoop是直接打通的,我們可以很方便地把數(shù)據(jù)保存到HDFS或數(shù)據(jù)庫(kù)里,只需要運(yùn)維一套spark平臺(tái),我們就可以既做實(shí)時(shí)任務(wù),又做離線分析任務(wù),比較方便。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

二.Spark Streaming的高級(jí)特性

 

1.Window特性:

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

基于上面簡(jiǎn)單的WordCount例子,我們升級(jí)一下,假設(shè)我們需要每十秒鐘統(tǒng)計(jì)一次單詞在前一分鐘內(nèi)出現(xiàn)次數(shù),這個(gè)需求不是簡(jiǎn)單的WordCount能夠?qū)崿F(xiàn)的,這時(shí)候,我們就要使用到spark streaming提供的Window機(jī)制。

 

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐

 

 

關(guān)于spark streaming的Window特性,有三個(gè)參數(shù)需要注意:Batch Internal(分批時(shí)間間隔)、Window width(窗口長(zhǎng)度)、Sliding Internal(窗口滑動(dòng)間隔)。根據(jù)剛才的需求,窗口長(zhǎng)度是60s,窗口滑動(dòng)間隔是10s,分批時(shí)間間隔是1s,這里需要注意,分批時(shí)間間隔必須能被窗口長(zhǎng)度和窗口滑動(dòng)間隔整除。

 

  

通過(guò)講述,或許你感覺(jué)Window特性有些復(fù)雜,但實(shí)際上,創(chuàng)建一個(gè)窗口的流是非常簡(jiǎn)單的,下面的兩張圖,是關(guān)于創(chuàng)建Window數(shù)據(jù)流和Window相關(guān)計(jì)算函數(shù)的,可以簡(jiǎn)單了解下。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

下面這張圖片是計(jì)算30s窗口期內(nèi)的請(qǐng)求失敗率。我們看一下它的參數(shù),窗口時(shí)間設(shè)置為30s,滑動(dòng)間隔是2s。整個(gè)代碼非常簡(jiǎn)單,只需要多加一行代碼,就能實(shí)現(xiàn)窗口流,之后這個(gè)流就能做一些正常計(jì)算。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

我們簡(jiǎn)單讀一下這個(gè)函數(shù),首先創(chuàng)建一個(gè)窗口流,之后在任務(wù)里面計(jì)算失敗的條數(shù),用它來(lái)除以總條數(shù),就得到請(qǐng)求失敗率。

 

2.Sql特性:

spark streaming的第二個(gè)特性就是Sql特性,spark streaming把數(shù)據(jù)封裝成DataFrame之后,天然就可以使用spark sql特性。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

想完整使用寫(xiě)sql的方式,我們首先要注冊(cè)臨時(shí)表。我們注冊(cè)的臨時(shí)表還可以與我們建的多張臨時(shí)表做join關(guān)聯(lián),比較實(shí)用。

 

使用sql,自定義函數(shù)會(huì)給我們帶來(lái)很多擴(kuò)展性,定義UDF有兩種方式:加載jar包UDF和動(dòng)態(tài)定義UDF。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

4.CheckPoint機(jī)制:

Spark通過(guò)使用CheckPoint保存處理狀態(tài)甚至當(dāng)前處理數(shù)據(jù),一旦任務(wù)失敗后,可以利用CheckPoint對(duì)數(shù)據(jù)進(jìn)行恢復(fù)。我們做數(shù)據(jù)處理,數(shù)據(jù)可靠性是很重要的,必須保證數(shù)據(jù)不丟失,Spark的CheckPoint機(jī)制就是幫助我們保障數(shù)據(jù)安全的。

CheckPoint機(jī)制主要有兩種:

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

 

那么怎么去實(shí)現(xiàn)CheckPoint機(jī)制呢?

有以下三個(gè)條件:

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

我們來(lái)對(duì)比一下有WAL和無(wú)WAL的兩張圖。實(shí)際上有WAL,它首先會(huì)把數(shù)據(jù)先存到HDFS,然后對(duì)任務(wù)邏輯進(jìn)行備份,再去執(zhí)行處理,任務(wù)失敗時(shí),它會(huì)根據(jù)CheckPoint的數(shù)據(jù),去讀HDFS保存的數(shù)據(jù),進(jìn)行任務(wù)恢復(fù)。但實(shí)際上,這樣會(huì)有缺點(diǎn),一方面是降低了receivers的性能,另一方面它只能保證At-Least-Once,不能保證exactly-once。

 

針對(duì)WAL的缺點(diǎn),spark streaming對(duì)kafka進(jìn)行優(yōu)化,提供了Kafka direct API,性能大大提升。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

三.NDCG指標(biāo)計(jì)算

 

1.NDCG是什么?

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

下面兩張圖片,是NDCG計(jì)算的具體例子。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

2.NDCG在spark streaming實(shí)現(xiàn):

我們?nèi)绾斡胹park streaming實(shí)現(xiàn)NDCG計(jì)算呢?首先我們做了一個(gè)數(shù)據(jù)調(diào)研。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

開(kāi)始進(jìn)行NDCG計(jì)算。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

3.NDCG性能保障:

我們開(kāi)發(fā)一個(gè)數(shù)據(jù)任務(wù),不是靜態(tài)工作,要保障數(shù)據(jù)的穩(wěn)定性,根據(jù)數(shù)據(jù)的情況,做一個(gè)容量預(yù)估,以保證數(shù)據(jù)的性能。容量預(yù)估是一個(gè)必不可少的步驟。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

我們最常見(jiàn)的容量調(diào)節(jié)。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

在NDCG指標(biāo)計(jì)算過(guò)程中,我們還會(huì)遇到一些問(wèn)題,就是NDCG支持四個(gè)維度的組合計(jì)算,維度組合較多、較復(fù)雜。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

這時(shí)候,多維分析就要借助于我們的OLAP引擎,目前我們使用的是Druid。

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

以上三大部分,就是這次線上直播分享的主要內(nèi)容,在最后,王老師還針對(duì)大家提出的問(wèn)題進(jìn)行了一一解答,都有些什么問(wèn)題呢?我們一起來(lái)看一下。

 

 

1.每間隔5s讀一批數(shù)據(jù),需要遍歷每天數(shù)據(jù)進(jìn)行各種計(jì)算分析,計(jì)算的結(jié)果還需要緩存作為下一次計(jì)算的參考,怎么實(shí)現(xiàn)?

王老師:這是一個(gè)實(shí)時(shí)任務(wù),需要存儲(chǔ)狀態(tài)數(shù)據(jù)的話,有幾種實(shí)現(xiàn)方式,第一個(gè)是spark streaming有保存狀態(tài)數(shù)據(jù)的機(jī)制,第二種方式是,你可以把狀態(tài)數(shù)據(jù)保存在一些KV數(shù)據(jù)庫(kù)里,比如說(shuō)spark等,也可以通過(guò)這種方式自己實(shí)現(xiàn),不管哪條路,關(guān)鍵在于怎么實(shí)現(xiàn)。

 

2.學(xué)spark有推薦的上船方式么?

王老師:大家不要把spark看得那么神奇,java8里面提供的stream處理方式相關(guān)知識(shí),和寫(xiě)spark沒(méi)有多大區(qū)別,原理都是一樣的,你理解了java8怎么寫(xiě)、stream處理的各種方法和計(jì)算邏輯,那么你就能理解spark streaming里的各種計(jì)算邏輯,spark streaming唯一高大上的就是它做的分布式。

 

3. spark streaming 將來(lái)最有可能被什么技術(shù)取代?

王老師:每個(gè)平臺(tái)都有各自的優(yōu)缺點(diǎn),目前來(lái)看,雖然Flink比較火,但是Storm依然存在,Spark也有自己所適合的場(chǎng)景,F(xiàn)link也有它本身先進(jìn)的機(jī)制,所以說(shuō),各有優(yōu)勢(shì)。

 

 

最后,王老師向大家推薦了關(guān)于scala最經(jīng)典的一本書(shū)—《programming in scala》,本次針對(duì) spark streaming的直播內(nèi)容簡(jiǎn)明且有針對(duì)性,相信你一定收獲頗多。想了解更多更詳細(xì)內(nèi)容的小伙伴們,可以關(guān)注服務(wù)號(hào):FMI飛馬網(wǎng),點(diǎn)擊菜單欄飛馬直播,即可進(jìn)行學(xué)習(xí)。

 

Spark Streaming高級(jí)特性在NDCG計(jì)算實(shí)踐 

當(dāng)前文章:SparkStreaming高級(jí)特性在NDCG計(jì)算實(shí)踐
網(wǎng)站路徑:http://jinyejixie.com/article40/psgoho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)外貿(mào)網(wǎng)站建設(shè)、面包屑導(dǎo)航全網(wǎng)營(yíng)銷(xiāo)推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
信阳市| 天台县| 瑞安市| 读书| 延吉市| 滦南县| 西吉县| 桓台县| 永仁县| 江都市| 修武县| 湘阴县| 昌宁县| 普安县| 新竹市| 湘西| 九台市| 嵊泗县| 岳西县| 诸暨市| 芜湖市| 兴化市| 河间市| 镇安县| 英德市| 永康市| 喀喇| 华阴市| 饶平县| 保德县| 安宁市| 松原市| 龙州县| 安徽省| 宜城市| 静海县| 乌兰浩特市| 深水埗区| 芜湖县| 珠海市| 巴中市|