九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Spark實(shí)踐的階段性總結(jié)

寫這篇小總結(jié)是因?yàn)榍岸螘r(shí)間是自己業(yè)余時(shí)間對(duì)Spark相關(guān)進(jìn)行了些探索,接下來(lái)可能有別的同事一起加入,且會(huì)去借用一些別的服務(wù)器資源,希望可以借此理下思路。


實(shí)踐Spark的原因

在之前Spark簡(jiǎn)介及安裝的文章前面,介紹了Spark在大數(shù)據(jù)處理領(lǐng)域的一個(gè)定位,以及AMP實(shí)驗(yàn)室構(gòu)建的生態(tài)圈,總之我定義Spark為一個(gè)值得研究的東西,包括他的實(shí)現(xiàn)語(yǔ)言Scala,底層的資源管理Mesos/YARN。對(duì)于Spark的實(shí)踐,我理了下思路,大致有以下幾個(gè)階段:

1.看paper,官網(wǎng)等網(wǎng)上的資源介紹,了解熟悉Spark,熟悉scala之后看看源碼

2.搭建Spark,以standalone的方式run example,在spark-shell下體驗(yàn)一下Scala的API,在pyspark下體驗(yàn)Python API

3.搭建Mesos,讓Spark依賴Mesos跑起來(lái)

4.更大規(guī)模搭建Spark集群,測(cè)試一個(gè)場(chǎng)景,對(duì)性能進(jìn)行評(píng)估,出一個(gè)具有說(shuō)服力的報(bào)告

5.優(yōu)化Spark集群配置,編寫更多算法去體驗(yàn)

6.最后,基于Spark這個(gè)核心,打算建立一個(gè)平臺(tái),現(xiàn)在的構(gòu)想還比較初步

現(xiàn)在處于從3進(jìn)入4的階段,而關(guān)于Spark的構(gòu)想,也還有一些東西需要去實(shí)踐,新的技術(shù)需要去調(diào)研和了解。大致是有了Spark集群之后,對(duì)Mesos和YARN有一個(gè)選擇問題,從Spark讀取另一個(gè)Hadoop的HDFS上文件,這件事的網(wǎng)絡(luò)延遲影響究竟有多大,畢竟現(xiàn)在的情況是hadoop和spark肯定是部署兩套機(jī)器上,存儲(chǔ)節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)分離,特別是基于Mesos的話,肯定是這種狀態(tài)。像豆瓣的Dpark可能是和MFS上的數(shù)據(jù)打交道的,可能會(huì)比較好地解決本地化的問題,可能能檢測(cè)到目標(biāo)數(shù)據(jù)存在某個(gè)節(jié)點(diǎn)上,而把這次任務(wù)調(diào)度到那臺(tái)機(jī)器上,類似這樣的感知我們肯定做不了。其次,現(xiàn)在搭建的Spark,目標(biāo)是為了一些ML,DM的算法服務(wù),如果是SQL能完成的簡(jiǎn)單查詢?nèi)蝿?wù),ad-hoc的東西讓Shark來(lái)做應(yīng)該就滿足了,所以相關(guān)python的算法包支持,甚至能否支持結(jié)合R在Spark上,也是有待考察的一件事。關(guān)于這點(diǎn),AMP實(shí)驗(yàn)室正在開發(fā)的MLbase是支持了不同抽象程度的算法api,今年夏天應(yīng)該是要release一部分,冬天還會(huì)release一部分,MLBase能在Spark上提供給我們什么樣程度的支持也有待考察。更遠(yuǎn)的,Scala其實(shí)還蠻適合編寫DSL的,最后我們希望能在Spark這層之上,基于python等算法包,在最上面再封裝一層DSL,類似Hadoop上的pig,而不是hive,來(lái)把數(shù)據(jù)處理的整個(gè)過程可視化出來(lái),每個(gè)過程都可以清楚地剝離,甚至可以可視化。


Spark及周邊

我可以使用的開發(fā)機(jī)無(wú)法連接外網(wǎng),所以搭建Spark時(shí)使用的是編譯過的Spark版本。Spark的編譯依賴scala的sbt(simple build tool),相當(dāng)于Java的maven,但會(huì)更強(qiáng)大。sbt方面,本來(lái)Spark可以支持sbt構(gòu)建的scala項(xiàng)目,但是sbt compile test package這些步驟在開發(fā)機(jī)上無(wú)法完成,根據(jù)項(xiàng)目里的build.sbt,構(gòu)建是需要聯(lián)網(wǎng)的。無(wú)奈的做法是使用spark的pyspark跑一些.py的程序,而spark支持的python API有些功能還沒有完全完善,而且python是動(dòng)態(tài)語(yǔ)言,在進(jìn)行RDD相關(guān)操作時(shí)候,api使用起來(lái)總有些區(qū)別,不像java和scala的api會(huì)大同小異。

Mesos的搭建也是費(fèi)了一番力,Mesos的優(yōu)勢(shì)在于利用Linux Container,完成了資源的分離和調(diào)度工作,不過也比較迷茫Mesos是否真的可靠,是不是YARN會(huì)更靠譜,比較Mesos是C++寫成的,與Spark的交互會(huì)依賴JNI。淘寶的Spark是搭建在阿里的YARN集群上,所以我也還要進(jìn)一步確定對(duì)于Mesos和YARN兩套資源管理系統(tǒng)的異同。

以上兩點(diǎn)是關(guān)于sbt和Mesos的,還有最近有意學(xué)習(xí)了下Scala這門語(yǔ)言的情況,有一些總結(jié)?!秔rogramming in scala》和《scala程序設(shè)計(jì)》都看了一遍,后者更適合java程序員讀,從實(shí)踐和特性介紹角度,都更好。整體上,scala的創(chuàng)新也許就是綜合了其他語(yǔ)言的優(yōu)點(diǎn),本身是純OO且面向函數(shù)的,這兩者之間你可以使用任何一種你習(xí)慣的編程方式。與java的兼容不需要任何特殊寫法和膠水代碼,繼承、調(diào)用、訪問域、實(shí)現(xiàn)接口都沒有問題,trait擁有類似接口的實(shí)現(xiàn),介于單一和多繼承之間,可以做到類似AOP那樣切面的效果。函數(shù)式編程方面把immutable貫徹在每一處,從變量聲明val到不可變的容器。函數(shù)式編程的思想主要就體現(xiàn)在兩點(diǎn)上:函數(shù)是一級(jí)公民;方法引用透明。前者讓函數(shù)可以像值一樣互相傳遞,函數(shù)內(nèi)可以內(nèi)嵌函數(shù);后者保證任何方法的調(diào)用都可以用他的結(jié)果來(lái)代替,而不影響程序語(yǔ)義,即函數(shù)不會(huì)有任何副作用。并行編程方面借鑒erlang的actor模型,每個(gè)傳遞對(duì)象本身就是不可變的,自然不用擔(dān)心多線程時(shí)候?qū)δ硞€(gè)變量的修改操作會(huì)帶來(lái)的任何影響。其實(shí)Spark里很多對(duì)RDD的transform操作,都大量依賴了scala本身帶的filter(), map(), reduce(), foldLeft(), foreach()等操作,而scala的不可變也完全符合RDD。


階段總結(jié)及展望

現(xiàn)在正在嘗試一個(gè)可測(cè)試的場(chǎng)景,稍微編寫一些代碼,從HDFS上取數(shù)據(jù),做一些處理。然后將這個(gè)程序放到更大的集群上去對(duì)比,性能怎么樣?關(guān)于Mesos和YARN,也需要更多的調(diào)研和嘗試,而sbt如果在現(xiàn)有的開發(fā)機(jī)上不可行的話,是否先編寫python版本的程序運(yùn)行?嘗試部署一個(gè)Shark,看看Shark是否能夠投入到一些場(chǎng)景中使用?python、R,怎樣/是否可以融入Spark?MLbase?Spark本身源碼層面的了解,以及scala語(yǔ)言本身更深入的認(rèn)識(shí)。

在探索Spark的過程中,還需要更多的實(shí)踐,更深的了解,更廣的涉獵。


(全文完)


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Dpark源碼剖析
Spark快速入門指南
當(dāng)今世界最廣泛最流行的大數(shù)據(jù)分析處理平臺(tái)是Spark
大數(shù)據(jù)開發(fā)之Spark入門
spark的安裝和使用
Spark在Yarn上運(yùn)行Wordcount程序 – 過往記憶
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服