亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于簡化分布式模型與數(shù)據(jù)結構理論的SPARK教學方法研究

        2018-06-27 07:52:58胡建華
        計算機教育 2018年6期
        關鍵詞:數(shù)據(jù)結構編程分布式

        胡建華

        (浙江農林大學暨陽學院 工程技術系, 浙江 諸暨 311800)

        1 研究背景

        云計算或大數(shù)據(jù)課程中,SPARK編程章節(jié)是學生反映較難掌握的內容之一。SPARK是scala語言編寫的,而scala語言同時支持面向對象與函數(shù)式編程的特性[1],特別是函數(shù)式編程特性,使得scala程序代碼非常精煉,編程效率非常高,然而,這恰恰成為困擾學生的問題。大多數(shù)學生的先修課程是Java或者C++語言,這些語言都是面向對象的,因此學生對函數(shù)式編程很不適應,覺得代碼不好理解。筆者閱讀過很多SPARK編程教材,發(fā)現(xiàn)很少有教材從理論的高度對SPARK函數(shù)式編程進行清晰的闡述,絕大部分教材是直接介紹scala的基礎語法,然后馬上學習SPARK的rdd編程,沒有解釋清楚函數(shù)式編程與面向對象編程究竟有何不同、SPARK的rdd與Java集合是否有類比性等。由于缺乏與先期知識的類比性,學生覺得一下進入了一個完全陌生的世界,造成學習上的困難與迷惑。在教學實踐中,筆者發(fā)現(xiàn)從數(shù)據(jù)結構理論的角度介紹SPARK函數(shù)式編程特點,以簡化分布式模型描述SPARK框架組成,能幫助學生輕松掌握SPARK編程,取得較好的教學效果。

        2 從數(shù)據(jù)結構理論理解SPARK函數(shù)式編程

        SPARK是scala語言編寫的,而scala語言函數(shù)式編程的特性讓初學者感到很迷惑,學生經(jīng)常會有諸如以下問題:函數(shù)既然是代碼,為何可以作為另一個函數(shù)的參數(shù)或者返回值;SPARK的rdd與Java集合有何不同;map與filter函數(shù)有何不同等。那么怎樣讓學生理解map、filter等高階函數(shù),以及它們是如何作用于rdd的?可以從數(shù)據(jù)結構理論的角度闡述。第一步,回顧數(shù)據(jù)結構課程的內容。數(shù)據(jù)結構是一門研究非數(shù)值計算問題中,數(shù)據(jù)的組織、存儲及操作的學科。非數(shù)值計算問題是指不是一個公式就能解決的問題,如排序問題等。然后,講解數(shù)據(jù)的組織、存儲及操作的意思,見表1。

        表1 數(shù)據(jù)結構課程內容

        接著,最重要的是要讓學生理解:程序可以看做數(shù)據(jù)狀態(tài)轉換器,也可以理解為一個廣義函數(shù)。例如,要實現(xiàn)對全班成績按從高分到低分排序的任務,可先輸入全班成績,得到一個集合A,通過排序程序,就得到排好序的集合B,如圖1所示。

        圖1 數(shù)據(jù)狀態(tài)轉換器示意圖

        如果用數(shù)學形式表示,則可表示為B=f(A),排序程序其實就是實現(xiàn)函數(shù)關系f?,F(xiàn)在可以理解SPARK的相關概念:rdd就是一個集合,不過它是分布式的,分布在集群的不同機器上。map函數(shù)只是一個顯式的映射關系名,表示要把一個集合中的元素映射到另一個集合,而映射規(guī)則是編寫函數(shù)實現(xiàn)的,因此SPARK程序的業(yè)務邏輯就是編寫函數(shù)并將其作為map等高階函數(shù)的參數(shù)來運行的。

        在函數(shù)式語言中,由于引入匿名函數(shù)及Lamda表達式,因此可以寫出非常精煉的代碼。例如,要把集合A中所有元素加3,放到集合B中,一行代碼就可實現(xiàn):

        map函數(shù)相當于數(shù)學上的f,一個形式上的映射名,表示集合A要進行一個映射,具體怎么映射,是由作為map函數(shù)的參數(shù)(也是一個函數(shù))實現(xiàn)的。從這個意義上理解,SPARK所謂的高階函數(shù),都是一個形式上的映射名而已。

        既然都是形式上的映射名,那么map函數(shù)與filter函數(shù)有何不同呢?filter函數(shù)表示過濾映射,它的參數(shù)函數(shù)返回值必須是boolean型。例如,要把集合A中所有小于0的元素放到集合B中,可以這樣寫:

        從數(shù)據(jù)結構理論的角度,spark的rdd與Java集合是一個概念,都是一批數(shù)據(jù)構成的集合。

        3 從簡化分布式模型理解rdd及SPARK工作原理

        rdd(彈性分布式數(shù)據(jù)集)是SPARK編程的核心概念[2],在數(shù)據(jù)結構理論上就是一個數(shù)據(jù)集合,不過是分布在多臺計算機上,每臺計算機可以并行操作本機上的數(shù)據(jù)集,這是一個典型的分布式系統(tǒng)。SPARK是怎樣管理分布在不同計算機上的數(shù)據(jù),以及怎樣通過程序處理這些數(shù)據(jù)呢?一個簡化分布式模型框圖[3]如圖2所示。

        圖2 spark工作原理

        每個SPARK應用程序都由一個任務控制節(jié)點(Driver Program)來控制,每個程序都要生成一個程序環(huán)境(SparkContext)。集群資源管理器(Cluster Manager)管理整個集群的資源,當執(zhí)行程序前,Driver Program會向Cluster Manager要求分配計算機資源,稱為Worker Node,即運行作業(yè)任務的工作節(jié)點。每個SPARK應用程序稱為一個作業(yè)(Job),每個作業(yè)被分為一個個的任務(Task)。Driver Program得到工作節(jié)點后,就可以把任務分配給工作節(jié)點。每個工作節(jié)點上都有一個執(zhí)行器(Executor),負責執(zhí)行任務(即程序),執(zhí)行完成后,會報告給Driver Program。這樣所有的工作節(jié)點都可以并行執(zhí)行,并且由Driver Program統(tǒng)一管理。

        rdd由SparkContext創(chuàng)建,分布在每個工作節(jié)點上。一般來說,rdd都是由hdfs文件產(chǎn)生,而hdfs文件是分布在工作節(jié)點上的[4],因此rdd基本上從本機數(shù)據(jù)文件生成,這樣可以避免大量數(shù)據(jù)在網(wǎng)絡上傳播,極大節(jié)約時間及網(wǎng)絡帶寬。對分布式編程中經(jīng)典的例程--統(tǒng)計文件中每個單詞出現(xiàn)的次數(shù),進行分析。

        4 結 語

        通過數(shù)據(jù)結構理論理解函數(shù)式編程思想,用簡化內存模型分析SPARK系統(tǒng)框架,然后通過程序實例解析SPARK代碼,這樣能幫助學生輕松掌握SPARK編程,顯著提高教學效果。我系2014級學生按此方法教學,該門課程平均成績達到80分,而前一屆學生未采用這種講課方法,同樣試卷考試,該門課程平均成績只有65分。由此可見,人們對知識的理解是有類比性的,通過已有的知識類比理解新的知識,接受新知識就很快。本文的教學方法,其實就是通過學生已掌握的數(shù)據(jù)結構知識、數(shù)學函數(shù)知識以及分布式模型知識,類比SPARK函數(shù)式編程,從而讓學生輕松理解新知識并記憶深刻。

        [1]黎文陽. 大數(shù)據(jù)處理模型Apache Spark研究[J]. 現(xiàn)代計算機(專業(yè)版), 2015(8): 55-60.

        [2]胡俊, 胡賢德, 程家興. 基于Spark的大數(shù)據(jù)混合計算模型[J].計算機系統(tǒng)應用, 2015(4): 214-218.

        [3]陳虹君. 基于Hadoop平臺的Spark框架研究[J]. 電腦知識與技術, 2014(35): 8407-8408.

        [4]夏靖波, 韋澤鯤, 付凱, 等. 云計算中Hadoop技術研究與應用綜述[J]. 計算機科學, 2016(11): 6-10.

        猜你喜歡
        數(shù)據(jù)結構編程分布式
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        分布式光伏熱錢洶涌
        能源(2017年10期)2017-12-20 05:54:07
        分布式光伏:爆發(fā)還是徘徊
        能源(2017年5期)2017-07-06 09:25:54
        “翻轉課堂”教學模式的探討——以《數(shù)據(jù)結構》課程教學為例
        高職高專數(shù)據(jù)結構教學改革探討
        中國市場(2016年45期)2016-05-17 05:15:48
        基于DDS的分布式三維協(xié)同仿真研究
        雷達與對抗(2015年3期)2015-12-09 02:38:50
        西門子 分布式I/O Simatic ET 200AL
        成人免费a级毛片| 久久久精品久久久国产| 按摩师玩弄少妇到高潮av| 日本大肚子孕妇交xxx| 国产精品视频二区不卡| 99精品国产闺蜜国产在线闺蜜| 中文字幕人妻被公喝醉在线| 亚洲无码在线播放| 女人扒开下面无遮挡| 男性一插就想射是因为啥| 街拍丝袜美腿美女一区| 在线播放五十路熟妇| 久久久久亚洲精品天堂| 老熟女一区二区免费| 各类熟女熟妇激情自拍| 性色欲情网站| 国内少妇自拍区免费视频| 人妻少妇精品系列一区二区| 日本一区二区视频在线| 亚洲av不卡一区二区三区| 五月天婷婷综合网| 国产精品一区二区黄色片| 久青草影院在线观看国产| 国产内射999视频一区| 国产精品日本天堂| 国产一级一区二区三区在线播放| 摸进她的内裤里疯狂揉她动图视频| 中文字幕喷水一区二区| 亚洲美女主播一区二区| 人人人妻人人人妻人人人| 无套内射蜜桃小视频| 国产亚洲精品不卡在线| 国产一区二区三区最新地址 | 国产乡下妇女做爰| 国产小受呻吟gv视频在线观看| 久久91精品国产91久久麻豆| 青青草国产手机观看视频| 国产精品丝袜久久久久久不卡| 国产一区二区三区精品久久呦| 国产一区二区黑丝美胸| 久久久久久无码av成人影院|