第二個(gè)是Spark structured,每個(gè)小時(shí)我們要啟動(dòng)一個(gè)Spark作業(yè),來(lái)處理前一個(gè)小時(shí)的用戶日志或者是用戶行為,這個(gè)時(shí)候這個(gè)作業(yè)要有一個(gè)調(diào)度引擎,這時(shí)候要加一個(gè)調(diào)度器來(lái)實(shí)現(xiàn)這個(gè)功能。如果你處理完前一個(gè)小時(shí)的數(shù)據(jù),下一個(gè)小時(shí)處理的時(shí)候,有可能跑來(lái)前一個(gè)小時(shí)的日志,比如說(shuō)發(fā)生的過(guò)程中可能有延遲的問(wèn)題,Spark streaming可以很好的解決這個(gè)問(wèn)題,是結(jié)構(gòu)化的數(shù)據(jù),這個(gè)批處理程序,你只要給一下這個(gè)源就可以,整體的實(shí)現(xiàn)體是一模一樣的,這樣的話實(shí)現(xiàn)了批處理流式計(jì)算,一個(gè)代碼既可以跑流式計(jì)算,也可以跑批處理。它提供了很多的設(shè)置,來(lái)對(duì)接不同的數(shù)據(jù)源,比如說(shuō)對(duì)接各種各樣的程序引擎。
另外,可以跟一個(gè)靜態(tài)數(shù)據(jù)做一個(gè)連接,另外也可以做交互式查詢,通過(guò)接口來(lái)查詢流式計(jì)算統(tǒng)計(jì)的結(jié)果。這是Spark streaming跟其它的流式計(jì)算做的對(duì)比,在一致性上,在API上,對(duì)事物的支持上,對(duì)交互式的支持上等等,它自己跟前一帶的Spark streaming,跟Hadoop,跟STORM等做了對(duì)比。
第三個(gè)模塊,在2.0里做了大量的優(yōu)化,一個(gè)是ML pipeline,它實(shí)現(xiàn)了所有的模型都可以替換,可以持久化到磁盤?;贒ataframe的API,它可以自動(dòng)做大量的優(yōu)化,使用傳統(tǒng)的傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)里的一些優(yōu)化機(jī)制,自動(dòng)的優(yōu)化。
另外,它有一個(gè)非常重要的功能,一個(gè)是實(shí)現(xiàn)了廣義線性模型,第二個(gè)是支持python和api第三個(gè)是模型持久化能第四個(gè)是pipieline定制化。它可以很好的把組建結(jié)合在一起,訓(xùn)練做完之后有哪種評(píng)估模型對(duì)訓(xùn)練的做一個(gè)評(píng)估,然后做一個(gè)打分等等,所有的東西都做成了組建,你可以插拔的方式來(lái)做。
前面我把Spark2.0做了介紹。這是今天的所有內(nèi)容。Spark2.0已經(jīng)發(fā)布,但是遠(yuǎn)不成熟,因?yàn)楦倪M(jìn)的東西太多太多了,按照傳統(tǒng)的經(jīng)驗(yàn),至少調(diào)到2.1,2.2,2.3才可以。