• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Spark 2.0平臺在大數(shù)據(jù)處理中的應用研究

      2017-05-31 06:31:57周顯春肖衡
      軟件導刊 2017年5期
      關(guān)鍵詞:決策樹內(nèi)存集群

      周顯春 肖衡

      摘要摘要:Spark分布式框架具有利用數(shù)據(jù)集內(nèi)存緩存、啟動任務的低遲延、迭代類運算、實時計算的支持和強大的函數(shù)式編程接口等特征。描述Spark 集群環(huán)境的搭建過程,將Spark 應用到預測森林植被中,對基于RDD和基于Data Frame接口的Spark隨機森林算法的性能差異進行比較。實驗結(jié)果表明,基于Dataset結(jié)構(gòu)的隨機森林法預測效果好、執(zhí)行時間短,可以廣泛使用。

      關(guān)鍵詞關(guān)鍵詞:Spark 2.0;隨機森林算法;Dataset;集群環(huán)境

      DOIDOI:10.11907/rjdk.171184

      中圖分類號:TP391

      文獻標識碼:A文章編號文章編號:16727800(2017)005014903

      0引言

      數(shù)據(jù)爆炸式增長和隱藏在這些數(shù)據(jù)之后的商業(yè)價值催生了一代又一代的大數(shù)據(jù)處理技術(shù)。2004年Hadoop橫空出世,由Google公司提出的開源的MapReduces的大數(shù)據(jù)處理框架拉開了其在企業(yè)應用的序幕,它被視為解決高性能處理大數(shù)據(jù)的有效方案。但是MapReduces框架不僅存在單點故障,而且對實時數(shù)據(jù)和流式數(shù)據(jù)訪問能力弱,導致基于MapReduces框架的Hadoop平臺應用推廣受到較大影響。

      Apache Spark是另一種分布式、開源計算框架,目的是簡化基于計算機集群的并行程序的編寫。Spark不僅可以發(fā)揮MapReduces對大數(shù)據(jù)的處理能力[1],還可以充分利用數(shù)據(jù)集內(nèi)存緩存、啟動任務的低遲延、迭代類運算、實時計算的支持和強大的函數(shù)式編程接口[2]。Spark是Apache的頂級開源項目,功能不斷完善?,F(xiàn)在最新版本為Spark 2.10,它集成了基于RDD和DataFrame(Dataset)兩種編程接口。為了簡化編程,方便更多人使用,同時進一步提高數(shù)據(jù)處理速度,Spark 3.0版本會摒棄直接面對用戶的基于RDD編程接口。目前,Spark分布式框架在基于機器學習和迭代處理的大數(shù)據(jù)分析上有廣泛應用。

      1Spark2.0 基本原理

      Spark繼承了MapReduces的線性擴張性和容錯性,同時對它作了一些重量級擴展,主要包括核心數(shù)據(jù)結(jié)構(gòu):RDD(Spark 3.0以后使用Data Frame、Dataset)。

      RDD是Spark的核心數(shù)據(jù)結(jié)構(gòu),是一種基于內(nèi)存彈性分布式數(shù)據(jù)集[3]。利用RDD可以把一部分數(shù)據(jù),包括中間結(jié)果緩存在內(nèi)存中,為后續(xù)計算所重復利用,不需要像其它計算結(jié)構(gòu)需要反復訪問磁盤,節(jié)省了大量時間。與Hadoop MapReduce相比,其實驗的性能要快100倍,訪問磁盤的性能快10倍[4]?;贒ataFrames/Dataset的高層API,利用PipeLine可以方便用戶構(gòu)建和調(diào)試機器學習流水線,完成高效的數(shù)據(jù)處理。RDD(DataFrames、Dataset)數(shù)據(jù)結(jié)構(gòu)解決了MapReduces存在的很多問題。

      (1)解決了MapReduces啟動遲緩問題[5]。利用Spark采用的有向無環(huán)圖的任務調(diào)度機制,可以對多個Stage的Task進行串聯(lián)或并聯(lián)Excutor,無需將每個Stage的中間結(jié)果保存到HDFS,不需要訪問磁盤,因此可以節(jié)省時間。尤其在計算機集群的環(huán)境下,可以避免運算時過量的網(wǎng)絡和磁盤IO開銷。

      (2)支持迭代計算。迭代計算需要訪問相同的數(shù)據(jù)集,采用基于內(nèi)存的RDD/DataFrame/Dataset結(jié)構(gòu)可以避免重新計算和從磁盤加載。

      (3)支持實時計算。基于Spark構(gòu)建Spark Straming 是在Spark基礎上的二次開發(fā),主要是將其實時、流水任務離散化成一系列的DStream的數(shù)據(jù)窗口[6],最小窗口選擇只需要0.5~2s,滿足大多數(shù)的準實時計算場景。

      (4)性能優(yōu)化。Dataset API建立在Spark SQL引擎之上,它可以利用Catalyst來優(yōu)化邏輯計劃和物理查詢計劃。而且采用特殊的Encoder,不僅可以有效序列化JVM object,還可以直接被Spark的許多操作,如Filter、Sort、Hash等使用,從而提高執(zhí)行速度。

      2Spark2.0在預測森林植被中的應用

      目前,Spark支持4種運行模式。本地單機模式、集群模式、基于Mesos、基于YARN、基于EC。本文的Spark分布式集群基于YARN,即Hadoop2。

      2.1Spark分布式集群環(huán)境搭建

      實驗環(huán)境所需的軟硬件設備如下:

      軟件:操作系統(tǒng)采用Ubuntu Server 16.10 版本,Hadoop 2.7 版本,JDK 1.8 版本,虛擬軟件VMware Station Pro 12;硬件:1 臺聯(lián)想臺式機,CPU 是主頻3.4GHz的Intel的酷睿i7,超頻4.2 GHz,硬盤容量1T,內(nèi)存16GB。

      Spark集群環(huán)境的搭建過程如下:

      (1) 安裝3臺虛擬機,OS版本ubuntu server 16.10 版本,并通過Hostname、Interfaces、Hosts文件分別設置主機名(Master、Slave1、Slave2)、IP地址,以及DNS映射關(guān)系,執(zhí)行sudo ufw disable、Ping分別關(guān)閉防火墻以及檢驗3臺虛擬機互通無阻。

      (2)在每臺虛擬機上安裝JDK、Scala、Hadoop、Spark并配置相關(guān)的Java環(huán)境變量。

      (3)在每臺機器上執(zhí)行安裝openssh-server服務,執(zhí)行ssh-keygen生成SSH 密鑰文件,保證相互直接建立不需要密碼的SSH可信通道。

      (4)修改Spark目錄下conf/core-site.xml、mapred -site.xml、 yarn-site.xml、hdfs-site.xml、hdfs-env.sh、masters、slaves文件,確保能夠正常啟動Spark。

      2.2隨機森林算法預測森林植被實現(xiàn)

      在Spark機器學習中,用于分類的算法有很多,其中效果較好的有SVM和隨機森林算法。隨機森林(Random Forest,RF)是由 Leo Breiman 將 Bagging 集成學習理論[7]與隨機子空間方法[8]相結(jié)合,于2001年提出的一種機器學習算法[9]。RF利用Bootstrap重抽樣方法從原始樣本中多次隨機抽取不同特征的子集數(shù)據(jù)組成訓練樣本,構(gòu)建多棵、合理、獨立的子樹,然后融合多棵決策樹的預測結(jié)果。在大數(shù)據(jù)背景下,RF不僅能夠與Spark和Map Reduce的并行處理特征完美結(jié)合,預測效果好,而且基于Dataset 的執(zhí)行時間要比基于RDD的少。

      為了更加深入地了解RF性能,尤其是測試效果,需要在實踐中進行檢驗。本實驗數(shù)據(jù)采用Kaggle大賽的數(shù)據(jù)Forestcover-Type-Prediction,記錄了美國科羅拉多州不同地塊森林植被特征:海拔、坡度、與水源的距離、遮陽情況和土壤類型,并給出了地塊的已知森林植被類型,共54特征,有581012個樣本[10]。本實驗主要比較基于RDD和基于Data Frame[Row]/Dataset API接口的Spark隨機森林算法的性能差異。關(guān)鍵代碼及參數(shù)如下:

      2.3性能分析

      通過對決策樹、隨機森林模型的impurity、maxDepth、maxBins、minInfoGain、numTrees(只有隨機森林才有此參數(shù))、maxMemoryInMB等參數(shù)進行調(diào)試,對比其性能,找到最優(yōu)參數(shù)及模型。下面分別從訓練時間、最佳參數(shù)、預測效果的Accuracy 3個方面進行比較。

      2.3.1尋找最佳參數(shù)訓練時間比較

      由表1可以發(fā)現(xiàn),隨機森林算法的訓練時間,無論是基于RDD數(shù)據(jù)結(jié)構(gòu)還是基于Datase結(jié)構(gòu),都要比決策樹算法的訓練時間長。實驗過程中的數(shù)據(jù)也顯示,隨著隨機森林算法的樹深度的加大和樹數(shù)量的增加,訓練時間明顯延長。

      2.3.2尋找最佳模型參數(shù)

      從表2中可以發(fā)現(xiàn),與決策樹的最佳參數(shù)相比較,隨機森林算法的最佳參數(shù)深度相近,桶數(shù)數(shù)量相差很大,該數(shù)據(jù)為調(diào)試最佳參數(shù)有一定的參考意義。

      2.3.3預測效果Accuracy比較

      由表3可知,與決策樹的Accuracy相比,隨機森林算法的Accuracy明顯要高(無論是訓練數(shù)據(jù)、交叉數(shù)據(jù),還是測試數(shù)據(jù))。這說明多棵樹的評價效果比單棵樹的預測效果好。

      3結(jié)語

      Spark實現(xiàn)了分布式計算框架,它是采用分布式處理大規(guī)模數(shù)據(jù)的最有效途徑。在搭建好的實驗環(huán)境下,對基于RDD和基于Data Frame[Row]/Dataset API接口的Spark隨機森林算法的性能差異進行了比較,相對而言,基于RDD接口的隨機森林算法的執(zhí)行效率較差。并且將隨機森林算法與決策樹算法比較,更好地體現(xiàn)了隨機森林算法良好的預測效果,但是訓練的時間進一步延長了。如何在集群環(huán)境中針對數(shù)據(jù)的特性,利用Spark平臺快速找到相應的模型并通過調(diào)整模型參數(shù)使預測效果達到最佳,將是下一步研究的重點。

      參考文獻參考文獻:

      [1]唐振坤.基于Spark的機器學習平臺設計與實現(xiàn)[D].廈門:廈門大學,2014.

      [2]NICK PENTREATH.Spark機器學習[M].蔡立宇,黃章帥,周濟民,譯.北京:人民郵電出版社,2016:13.

      [3]ZAHARIA M,CHOWDHURY M,F(xiàn)RANKLIN M J,et al.Spark:cluster computing with working sets[C].Proceedings of the 2nd USENIX conference on Hot topics in cloud computing,2010.

      [4]XIN R S,ROSEN J,ZAHARIA M,et al.Shark:SQL and rich analytics at scale[C].Proceedings of the 2013 international conference on Management of data,2013:1324.

      [5]劉軍,林文輝,方澄著.Spark大數(shù)據(jù)處理原理、算法與實例[M].北京:清華大學出版社,2016:2023.

      [6]ZAHARIA M,DAS T,LI H,et al.Discretized streams:an efficient and faulttolerant model for stream processing on large clusters[C].Proceedings of the 4th USENIX conference on Hot Topics in Cloud Computing,2012.

      [7]BREIMAN L.Bagging predictors[J].Machine Learning,1996,24(2):123140.

      [8]HO T.The random subspace method for constructing decision forests[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1998,20(8):832844.

      [9]BREIMAN L.Random forests[J].Machine Learning,2001,45(1):532.

      [10]SANDY RYZA,URIL LASERSON,SEAN OWEN,et al.Spark高級數(shù)據(jù)分析[M].龔少成,譯.北京:人民郵電出版社,2016.

      責任編輯(責任編輯:孫娟)

      猜你喜歡
      決策樹內(nèi)存集群
      集群式AUV可控分群控制算法
      一種針對不均衡數(shù)據(jù)集的SVM決策樹算法
      “春夏秋冬”的內(nèi)存
      當代陜西(2019年13期)2019-08-20 03:54:22
      決策樹和隨機森林方法在管理決策中的應用
      電子制作(2018年16期)2018-09-26 03:27:06
      一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設計
      電子制作(2018年11期)2018-08-04 03:25:40
      Python與Spark集群在收費數(shù)據(jù)分析中的應用
      勤快又呆萌的集群機器人
      基于決策樹的出租車乘客出行目的識別
      基于肺癌CT的決策樹模型在肺癌診斷中的應用
      基于內(nèi)存的地理信息訪問技術(shù)
      施秉县| 射阳县| 临沂市| 博爱县| 邛崃市| 乐昌市| 渝北区| 福安市| 平安县| 新沂市| 台东市| 工布江达县| 万宁市| 团风县| 鲁山县| 泾源县| 罗田县| 莱阳市| 固阳县| 龙游县| 墨江| 元阳县| 津市市| 聊城市| 广西| 策勒县| 郧西县| 玛曲县| 鹤峰县| 磐安县| 武平县| 永康市| 沅江市| 闻喜县| 东海县| 东乌珠穆沁旗| 邵武市| 正蓝旗| 延长县| 丰城市| 平塘县|