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

Hulu大數(shù)據(jù)架構(gòu)組負責人董西城:Spark2.0新特性與展望

9月1日,由工業(yè)和信息化部指導,中國信息通信研究院、中國通信標準化協(xié)會主辦,數(shù)據(jù)中心聯(lián)盟承辦的“2016可信云大會”在京隆重召開。在9月2日下午的大數(shù)據(jù)分論壇上,Hulu大數(shù)據(jù)架構(gòu)組負責人董西城發(fā)表了題為《Spark2.0新特性與展望》的演講。

目前成都創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站改版維護、企業(yè)網(wǎng)站設(shè)計、鳳山網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

Hulu大數(shù)據(jù)架構(gòu)組負責人 董西城

以下是演講實錄:

大家好,我叫董西城,今天很高興跟大家分享Spark2.0。我我現(xiàn)在是就職于美國的一家公司,做正版的美劇和電影。主要的市場是在北美。我之前寫過Hadoop的技術(shù)內(nèi)幕這本書,主要工作是圍繞Hadoop和Spark方面。

今天主要介紹的是Spark2.0,我會從以下幾個角度給大家剖析Spark2.0。

首先簡單介紹Spark,第二部分是會給大家談?wù)劗斍癝park在互聯(lián)網(wǎng)公司的應(yīng)用,都做什么。第三部分是Spark2.0里面新的一些特性。

第一部分,Spark2.0的簡介。

Spark主要是原自于Mapreduce,是美國的一些大學的博士一些大數(shù)據(jù)的研究,首先是Mapreduce有一些局限性,它受限,你要實現(xiàn)復雜的功能,要做很多的工作。大家從名字上也可以看出來,Mapreduce的優(yōu)點是寫起程序來非常簡單,缺點是太簡單了,以至于寫復雜的程序要做大量的工作。第二個是性能,十年前磁盤是比較廉價的,內(nèi)存是比較昂貴的,那時候很多的觀念都是基于磁盤上設(shè)計一些都是,而Mapreduce是這樣做的,很多的設(shè)計理念是基于磁盤進行的。所以導致他的性能非常低效。而到今天已經(jīng)發(fā)生了變化了,磁盤已經(jīng)成為過去了,所以在這塊做了一些嘗試,想盡可能的在內(nèi)存上做一些工作,優(yōu)化框架。

另外一個背景是多種框架并存。當研究Mapreduce的這些人,在設(shè)計Mapreduce的時候,發(fā)現(xiàn)了當時多種框架是并存的,當時有三種并行計算的場景,第一個是批處理,比如說我要產(chǎn)生一個報表,明天看到就可以了。最典型的是批處理,當時簡單的是Mapreduce/Hive,第二個是交互式處理,最典型的是impala/presto,第三種是實時處理,典型的是storm。像阿里巴巴有個滾動的大屏幕,要實時的統(tǒng)計截至1點的時候交易量是多少,那是實時的統(tǒng)計,實時的匯總交易數(shù)據(jù),做一個匯總展示,這是一個實時數(shù)據(jù),有一筆記錄我就做一個匯總。這是多種框架并存的局面。

如果你們公司每一種應(yīng)用場景都需要的話,你可能至少要有三套系統(tǒng),有三個集群,這樣的話管理起來,運行起來非常的麻煩。是不是能設(shè)計一套系統(tǒng)解決這三個場景,而且他們是一套,這樣的話學習起來都是統(tǒng)一的,接口都是統(tǒng)一的,維護起來也是統(tǒng)一的。而不是說你要搭建三套,每一套都需要單獨學習,因為它由不同的生態(tài)構(gòu)成的。這樣的話,你需要三個系統(tǒng),這三個系統(tǒng)是完全的不同的方式,你的學習成本和運維成本都會非常高。

那么我們做了一個嘗試,Spark的特點,一個是非常的高效,統(tǒng)計上看,比Mapreduce快10到100倍,從數(shù)據(jù)上可以看到,Mapreduce是非常慢的框架??於嗌俦度Q于具體的場景。為什么這么高效呢?第一,它是DAG的引擎,而Mapreduce也可以把它看成DAG的引擎,但是是非常簡單的,它只有兩個,點和邊。如果想做非常復雜的運算,是非常非常大量的作業(yè)。如果你用Mapreduce做的話這個要做四個作業(yè),這個是通過存儲不不同的Mapreduce作業(yè)銜接在一起的。而通用的DAG引擎,所有的數(shù)據(jù)都不需要落在這種文件系統(tǒng)里,直接可以通過流式的,或者是其它的方式銜接起來。這是Spark的一個核心的設(shè)計理念。

第二個,它可以充分的使用內(nèi)存。SparK提供了充分使用內(nèi)容的能力,可以把數(shù)據(jù)處理完之后做落到磁盤上或者是其它地方,是非常靈活的。實際上,如果你不想用內(nèi)存,可以關(guān)掉,這個時候可以做一些簡單的運算。

另外是易用的,提供了四種編程語言,代碼量也比Mapreduce要小2到5倍。現(xiàn)在有一個趨勢,就是還是編程語言越來越受歡迎,鄙視說Scala,python。

第三個是與Hadoop集成,可以讀寫hdfs/hbase,與YARN集成。

Spark核心理念,一個是RDD,彈性分布式數(shù)據(jù)集,對分布式數(shù)據(jù)抽象,你可以采用其它方式來實現(xiàn),也是沒有問題的。在RDD上,如果把這個數(shù)據(jù)轉(zhuǎn)成RDD后,它提供了豐富的編程接口。比說有map,filter等等,有多少個結(jié)點都可以擴展。

Spark還有個非常強大的方式,就是部署方式非常的靈活,你可以運行在本地,也可以運行在standalone上,也可以部署在mesos/yarn。

Spark是一個生態(tài)系統(tǒng),很多人不會編程,你可以用Spark SQL處理,你只要會寫SQL就OK了。你有圖的數(shù)據(jù),做圖計算,可以使用Graphx,如果你想做距離的分類,推薦等等,有一個Mllib,這樣的話,你直接利用這里提供的就OK了,Spark是一個生態(tài)系統(tǒng),是一個軟件站。不同的軟件會解決不同的問題,比如說是不是我只用SQL就行了,不好意思,有一些機器學習算法不可能只用SQL來表達,大數(shù)據(jù),包括人工智能,這些機器學習,深度學習已經(jīng)越來越流行。這塊是SQL解決不了的,很多必須要用APR來寫,當然更多的是做一些實時統(tǒng)計,這種可以Spark SQL。隨著大數(shù)據(jù)地發(fā)展,很多很多的數(shù)據(jù)處理都逐漸的流式化,所以streaming也越來越受歡迎。

接下來我們看一下Spark在互聯(lián)網(wǎng)上的應(yīng)用。

這是做了一個匯集,首先第一個是騰訊,它用Spark做什么呢?一個產(chǎn)品是廣點通,這里面有一個推薦的功能,這里主要是用Spark實現(xiàn)算法,就是迭代,直到得到這個模型就停止了。在騰訊內(nèi)部得到了廣泛的應(yīng)用。另外是日志分析,現(xiàn)在轉(zhuǎn)移到了SparkSQL,這是實現(xiàn)的一些算法,預測用戶的廣告點擊概率,計算兩個好友間的共同好友數(shù)。

阿里巴巴有哪些應(yīng)用呢?主要是在搜索和廣告業(yè)務(wù)里用到了Spark。之前他們的很多算法都是用Mahoout來實現(xiàn)的,它是非常低效的。阿里巴巴的量非常的大,需要很長的時間。有了Spark后,可以把這個做的非常的高效。另外就是圖算法,阿里巴巴有一些圖像化的數(shù)據(jù),可以用graphx來分析用戶的關(guān)聯(lián)關(guān)系。

第三個是優(yōu)酷土豆,他們也是來解決Mapreduce存在的一些問題,比如說性能問題,迭代計算上的性能比較低效等等。他們最后把它應(yīng)用在極其機器學習圖計算等等。Spark大的優(yōu)勢就是用在機器學習領(lǐng)域,比如說做一個人的關(guān)系的挖掘,比如說SQL肯定解決不了,Mapreduce非常低效,這個時候你必須得自己寫一些算法來實現(xiàn)。

接下來我們看看Spark2.0,它是最近發(fā)布的一個版本,有重大的改進。我們看看到底做了哪些改進。

首先看性能方面,首先是它的SQL計算方面用到了datooFrame中的算子性能優(yōu)化2到10倍。另外是向量化計算,提供Parquet掃描吞吐率,還有提升了ORC讀寫性能。另外產(chǎn)品優(yōu)化器是CATALYST。

在功能方面,在三個關(guān)鍵組建里做了大量優(yōu)化和功能上的改進。一個是執(zhí)行優(yōu)化方面做了工作,這是突出的優(yōu)化項目,優(yōu)化的計劃,支持sprk SQL2003,機器學習方面做了重大的改進。

首先是SparkSQL,是基于SQL的引擎,當然不僅僅支持SQL還支持DSL,。它不是類型安全的,缺乏函數(shù)式編程能力,在1.6和2.0里面增加了新的編程方式,是DATASET它是類型安全的,面向?qū)ο缶幊谭绞剑С址墙Y(jié)構(gòu)化數(shù)據(jù),JAVA與SCALA統(tǒng)一了接口,性能極和了序列化框架。在這里,做了非常重大的改進,比如說編碼,之前你如果用Spark寫程序的話,用JAVA表示的話,可能是幾十個字節(jié),Spark里做了大量的優(yōu)化,比如說編碼之后只占少量,Spark做了非常大的改進。

給大家看一個例子,在現(xiàn)在絕大部分人用比較典型的RGD來寫程序,認為非常的簡單,都非常容易。的確是非常方便,但是現(xiàn)在看來不夠更進階,比如說很多人看了這個不知道他做什么。但是跟你后面的程序一眼就可以看出來。Spark2.0里面可以把寫程序變得這么簡單。Dataframes是非常簡捷的,相當于SQL。另外是SparkSQL在執(zhí)行上做了大量的優(yōu)化。提出了未來五年的計劃,主要是在優(yōu)化CPU和memory做了優(yōu)化,怎么樣提高CPU的計算,怎么樣充分的利用CPU的資源,它提出了三方面的優(yōu)化,一個是關(guān)于對象的表示,對心的序列號方面做了優(yōu)化,它是用JAVA寫的,對象內(nèi)存開銷比較大,序列號的開銷也比較大,這有一系列的問題。這個方面的優(yōu)化,想用類C語言的方式來表示JAVA的對象,JAVA允許你用二進制的方式來表達,而且它的內(nèi)存完全是自己管理,實現(xiàn)了一整套管理的序列化機制。

第二個是cache-aware,可以盡可能的合理使用CPU的cache,宣布實現(xiàn)了數(shù)據(jù)結(jié)構(gòu)的算法。

第三個是可去除條件檢查,尖沙虛函數(shù)調(diào)度等。

它的目標是逼近物理性能的極限,渣干機器可以利用的資源加速計算。

第三個優(yōu)化是對SQL的支持,現(xiàn)在已經(jīng)支持準的SQL2003,可跑通所有的TPC-DS查詢。對SQL的支持花了越來越多的力氣,在不久的將來可能對SQL的支持會越來越好。對SQL的支持是很多用戶的需求,也是期望。所以Spark支持了。

第二個是Spark structured,每個小時我們要啟動一個Spark作業(yè),來處理前一個小時的用戶日志或者是用戶行為,這個時候這個作業(yè)要有一個調(diào)度引擎,這時候要加一個調(diào)度器來實現(xiàn)這個功能。如果你處理完前一個小時的數(shù)據(jù),下一個小時處理的時候,有可能跑來前一個小時的日志,比如說發(fā)生的過程中可能有延遲的問題,Spark streaming可以很好的解決這個問題,是結(jié)構(gòu)化的數(shù)據(jù),這個批處理程序,你只要給一下這個源就可以,整體的實現(xiàn)體是一模一樣的,這樣的話實現(xiàn)了批處理流式計算,一個代碼既可以跑流式計算,也可以跑批處理。它提供了很多的設(shè)置,來對接不同的數(shù)據(jù)源,比如說對接各種各樣的程序引擎。

另外,可以跟一個靜態(tài)數(shù)據(jù)做一個連接,另外也可以做交互式查詢,通過接口來查詢流式計算統(tǒng)計的結(jié)果。這是Spark streaming跟其它的流式計算做的對比,在一致性上,在API上,對事物的支持上,對交互式的支持上等等,它自己跟前一帶的Spark streaming,跟Hadoop,跟STORM等做了對比。

第三個模塊,在2.0里做了大量的優(yōu)化,一個是ML pipeline,它實現(xiàn)了所有的模型都可以替換,可以持久化到磁盤?;贒ataframe的API,它可以自動做大量的優(yōu)化,使用傳統(tǒng)的傳統(tǒng)關(guān)系數(shù)據(jù)庫里的一些優(yōu)化機制,自動的優(yōu)化。

另外,它有一個非常重要的功能,一個是實現(xiàn)了廣義線性模型,第二個是支持python和api第三個是模型持久化能第四個是pipieline定制化。它可以很好的把組建結(jié)合在一起,訓練做完之后有哪種評估模型對訓練的做一個評估,然后做一個打分等等,所有的東西都做成了組建,你可以插拔的方式來做。

前面我把Spark2.0做了介紹。這是今天的所有內(nèi)容。Spark2.0已經(jīng)發(fā)布,但是遠不成熟,因為改進的東西太多太多了,按照傳統(tǒng)的經(jīng)驗,至少調(diào)到2.1,2.2,2.3才可以。

文章名稱:Hulu大數(shù)據(jù)架構(gòu)組負責人董西城:Spark2.0新特性與展望
文章路徑:http://jinyejixie.com/article20/sdhsco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站導航、動態(tài)網(wǎng)站、網(wǎng)站維護、App設(shè)計商城網(wǎng)站

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)
竹山县| 时尚| 上饶市| 将乐县| 兴隆县| 蒙阴县| 古浪县| 新安县| 南丹县| 赫章县| 剑河县| 曲水县| 汉沽区| 鸡东县| 汉沽区| 乃东县| 新安县| 黄浦区| 互助| 肃宁县| 甘泉县| 涡阳县| 偏关县| 凤翔县| 达日县| 永新县| 武威市| 乡宁县| 昭平县| 景洪市| 增城市| 定西市| 运城市| 怀远县| 凯里市| 元江| 澜沧| 建昌县| 永安市| 团风县| 禹城市|