日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > 許鵬:從零開始學(xué)習(xí),Apache Spark源碼走讀(一)

許鵬:從零開始學(xué)習(xí),Apache Spark源碼走讀(一)

來源:程序員人生   發(fā)布時間:2014-10-12 11:45:39 閱讀次數(shù):2076次

Spark是發(fā)源于美國加州大學(xué)伯克利分校AMPLab的集群計(jì)算平臺,它立足于內(nèi)存計(jì)算,性能超過Hadoop百倍,即使使用磁盤,迭代類型的計(jì)算也會有10倍速度的提升。Spark從多迭代批量處理出發(fā),兼收并蓄數(shù)據(jù)倉庫、流處理和圖計(jì)算等多種計(jì)算范式,是罕見的全能選手。Spark當(dāng)下已成為Apache基金會的頂級開源項(xiàng)目,擁有著龐大的社區(qū)支持――活躍開發(fā)者人數(shù)已超過Hadoop MapReduce)。這里,我們?yōu)榇蠹曳窒碓S鵬的“Apache Spark源碼走讀”系列博文,從源碼方面對這個流行大數(shù)據(jù)計(jì)算框架進(jìn)行深度了解。


關(guān)于博主:許鵬,花名@徽滬一郎,2000年畢業(yè)于南京郵電學(xué)院,現(xiàn)就業(yè)于愛立信上海,在UDM部門從事相關(guān)產(chǎn)品研發(fā),個人關(guān)注于Linux 內(nèi)核及實(shí)時計(jì)算框架如Storm、Spark等。


以下為博文

楔子

源碼閱讀是一件非常容易的事,也是一件非常難的事。容易的是代碼就在那里,一打開就可以看到。難的是要通過代碼明白作者當(dāng)初為什么要這樣設(shè)計(jì),設(shè)計(jì)之初要解決的主要問題是什么。

在對Spark的源碼進(jìn)行具體的走讀之前,如果想要快速對Spark的有一個整體性的認(rèn)識,閱讀Matei Zaharia做的Spark論文是一個非常不錯的選擇。

在閱讀該論文的基礎(chǔ)之上,再結(jié)合Spark作者在2012 Developer Meetup上做的演講Introduction to Spark Internals,那么對于Spark的內(nèi)部實(shí)現(xiàn)會有一個比較大概的了解。

有了上述的兩篇文章奠定基礎(chǔ)之后,再來進(jìn)行源碼閱讀,那么就會知道分析的重點(diǎn)及難點(diǎn)。

基本概念(Basic Concepts)

1. RDD――Resillient Distributed Dataset 彈性分布式數(shù)據(jù)集。

2. Operation――作用于RDD的各種操作分為transformation和action。

3. Job――作業(yè),一個JOB包含多個RDD及作用于相應(yīng)RDD上的各種operation。

4. Stage――一個作業(yè)分為多個階段。

5. Partition――數(shù)據(jù)分區(qū), 一個RDD中的數(shù)據(jù)可以分成多個不同的區(qū)。

6. DAG――Directed Acycle graph,有向無環(huán)圖,反應(yīng)RDD之間的依賴關(guān)系。

7. Narrow dependency――窄依賴,子RDD依賴于父RDD中固定的data partition。

8. Wide Dependency――寬依賴,子RDD對父RDD中的所有data partition都有依賴。

9. Caching Managenment――緩存管理,對RDD的中間計(jì)算結(jié)果進(jìn)行緩存管理以加快整體的處理速度。

編程模型(Programming Model)

RDD是只讀的數(shù)據(jù)分區(qū)集合,注意是數(shù)據(jù)集

作用于RDD上的Operation分為transformantion和action。 經(jīng)Transformation處理之后,數(shù)據(jù)集中的內(nèi)容會發(fā)生更改,由數(shù)據(jù)集A轉(zhuǎn)換成為數(shù)據(jù)集B;而經(jīng)Action處理之后,數(shù)據(jù)集中的內(nèi)容會被歸約為一個具體的數(shù)值。

只有當(dāng)RDD上有action時,該RDD及其父RDD上的所有operation才會被提交到cluster中真正的被執(zhí)行。

從代碼到動態(tài)運(yùn)行,涉及到的組件如下圖所示。

 

演示代碼

val sc = new SparkContext("Spark://...", "MyJob", home, jars)
val file = sc.textFile("hdfs://...")
val errors = file.filter(_.contains("ERROR"))
errors.cache()
errors.count()

運(yùn)行態(tài)(Runtime view)

不管什么樣的靜態(tài)模型,其在動態(tài)運(yùn)行的時候無外乎由進(jìn)程,線程組成。

用Spark的術(shù)語來說,static view稱為dataset view,而dynamic view稱為parition view。關(guān)系如圖所示

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生

------分隔線----------------------------
分享到:
------分隔線----------------------------
為碼而活
積分:4237
15粉絲
7關(guān)注
欄目熱點(diǎn)
關(guān)閉
程序員人生
主站蜘蛛池模板: 成人黄色免费网址 | 免费视频一区二区 | 久久国产精品无码网站 | 99久久精品免费看国产免费软件 | 激情一区二区 | 美女黄视频网站 | 亚洲精品国产第一综合99久久 | 天天久久久 | 欧美成人黄色 | 精品午夜久久 | 麻豆黄网 | 欧美在线一区二区三区四区 | 国产精品爽爽久久 | 四色永久访问网站 | 国产精品午夜在线 | jizz中国女人高潮 | 欧美成人久久 | 九九精品视频在线 | 精品一区二区三区成人精品 | 不卡三区 | 久久免费影院 | 久久久蜜桃视频 | 国产精品免费网站 | 中文字幕一区二区三区在线观看 | 四虎4545www国产精品 | 99精品在线 | 久久久国产成人一区二区三区 | 中文字幕在线观看第一页 | 久久国产精品99精国产 | 国产视频91在线 | 久久亚洲视频 | 国产精品国产馆在线真实露脸 | 国产一区二区三区在线免费看 | 欧美在线色图 | 亚洲一区二区视频在线 | 午夜美女网站 | 超碰在线网站 | 久久久久久久av | 丰满少妇久久久久久久 | 日本在线一区二区三区 | 午夜视频免费在线观看 |