999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Dpark的數據分析方法的性能研究*

2016-08-11 07:04:14馬燕龍
計算機與數字工程 2016年4期

馬燕龍 吳 云

(貴州大學計算機科學與技術學院 貴陽 550025)

?

基于Dpark的數據分析方法的性能研究*

馬燕龍吳云

(貴州大學計算機科學與技術學院貴陽550025)

摘要隨著大數據時代的來臨,以Hadoop和Spark為首的開源分布式計算框架主導著相關行業(yè)的事實標準。然而,無論是使用Java編寫的Hadoop,還是使用Scala編寫的Spark,使用及對其進行二次開發(fā)的難度都比較大,而使用Python編寫的分布式計算框架Dpark,具有繼承自Spark的內存計算和惰性求值機制,結合Python的簡潔語法,同時又配合分布式文件系統(tǒng)MooseFS、分布式數據庫Beansdb和分布式資源調度框架Mesos,可以極大提高數據分析的工作效率。文章主要對比了傳統(tǒng)Python程序和基于Dpark的Python程序在完成數據預處理工作上的運行效率,得出后者的性能和可擴展性至少優(yōu)于前者數十倍的結論。

關鍵詞Dpark框架; 集群部署; 數據預處理

Class NumberTP311.5

1 引言

隨著信息技術的飛速發(fā)展,云計算已經成為當前計算機相關行業(yè)熱議的話題,“互聯(lián)網+”也成為國家從上到下大力研究的課題。

云計算涉及的技術非常廣泛,基本來說,數據的存儲需要用到分布式文件系統(tǒng)和分布式數據庫,資源的管理調度需要用到分布式資源調度系統(tǒng),數據的計算需要用到分布式計算框架,文章重點研究由北京豆網科技有限公司開發(fā)并開源的分布式計算框架——Dpark[1],在Dpark之外,文章部署的云計算平臺采用了分布式文件系統(tǒng)MooseFS[2]、分布式數據庫Beansdb[3]和分布式資源調度系統(tǒng)Mesos[4]。

2 Dpark概述

毋庸置疑,由Apache基金會開發(fā)的分布式計算框架Hadoop[5]已經成為大數據處理事實上的工業(yè)標準,同時它也是最著名的MapReduce[6]開源框架。但相比Dpark來說,Hadoop的用戶友好性不足,基于Hadoop的分布式計算需要采用Java編寫嚴格意義上的Map函數和Reduce函數,設計難度大,開發(fā)的代碼量也比較大,而大量的代碼就意味著大量的維護,商業(yè)系統(tǒng)的開發(fā)和維護需要比較高的人力成本。而Dpark采用Python編寫,提供了Python的原生接口,更是加入函數式編程的思想,極大簡化了分布式計算的編碼難度,降低了工作量,不管對于商業(yè)系統(tǒng),還是科研系統(tǒng)來說,都可以極大提高工作效率。

從另一個角度看,由UC Berkeley AMP Lab開發(fā)并開源的分布式計算框架Spark[7]已經在挑戰(zhàn)Hadoop的霸主地位。和Hadoop相比,Spark將內存計算的方法引入分布式計算領域,同時利用RDD(Resilient Distributed Dataset)[8]的內存抽象技術,實現(xiàn)惰性求值。此舉不僅突破了Hadoop的MapReduce固定框架,同時對于實際應用中非常常見的迭代計算有了更好的支持,由于采用內存計算、惰性求值,Spark的性能遠高于Hadoop。因而Spark正在向下一代分布式計算平臺的事實工業(yè)標準邁進。

但由于Spark本身使用小眾編程語言Scala開發(fā),基于Spark的二次開發(fā)比較困難,而作為仍不成熟的計算框架,完全等著開發(fā)者去改進和完善是不現(xiàn)實的,對此,國內的北京豆網科技有限公司,即豆瓣網的開發(fā)運營商,采用Python語言將Spark進行了重寫并開源,這樣對于國內用戶來說,根據需求進行分布式計算框架的二次開發(fā)十分方便,因此,研究Dpark已存在極大且必要的需求。

3 部署方法

常規(guī)的Dpark部署分為四個部分,即分布式文件系統(tǒng)MooseFS、分布式數據庫Beansdb、分布式資源調度系統(tǒng)Mesos、分布式計算框架Dpark。其中MooseFS主要存儲數據源文件,常見的是日志文件、逗號分隔符文件等文本文件,也可以是圖片文件;Beansdb是一種分布式Key-Value數據庫,主要用于存儲中間計算結果,可以看成集群上各個節(jié)點共同使用的大字典;Mesos是一種資源調度系統(tǒng),主要用于集群的任務分配,通過Web界面可以瀏覽任務完成情況。換句話說,MooseFS、Beansdb和Mesos將集群抽象成了一個機器,使得在集群上運用Dpark就如同在本地編寫普通的Python程序,極大簡化了程序編寫的復雜度,降低了數據分析的工作量,提高了數據分析的效率。

部署了4臺物理機器,含虛擬機在內共14個計算節(jié)點,1個內存節(jié)點,3個存儲節(jié)點。相關硬件配置如表1所示。

表1 集群相關硬件配置

4 實驗與結果分析

通過經典的基于物品的協(xié)同過濾算法[9]中的數據預處理工作對比了傳統(tǒng)Python程序和基于Dpark的Python程序的性能差異。實驗中采用了MovieLens開放數據集[10]。

4.1源數據格式

論文使用了源數據中ratings.dat文件,數據格式和數據行數如圖1所示,其中,數據行包含如下內容:用戶編號、電影編號、評分值、時間戳(采用unix計時方式)。

圖1 數據集部分數據和數據行數

4.2數據預處理的性能對比

首先對比兩種方法進行數據預處理的性能。由于將全部數據預處理結果打印到屏幕是不現(xiàn)實的,打印部分結果進行展示,同時分別統(tǒng)計程序運行時間。本例從源數據獲取“用戶-電影映射”和“電影-用戶映射”這兩個字典。

分別用傳統(tǒng)算法和基于Dpark的算法進行了處理。

1) 傳統(tǒng)算法采用的流程如下:

(1)打開并讀取文件;

(2)用strip()函數去除行首和行尾空格;

(3)使用split()函數,依照“::”劃分每行記錄,放到一個嵌套列表中;

(4)使用嵌套列表推導計算映射結果。

2) 基于Dpark的算法采用的是如下流程:

(1)使用Dpark加載分布式文件系統(tǒng)中的目標文件;

(2)利用map()函數,結合strip()函數和split()函數,將數據集轉換成嵌套列表;

(3)利用map()函數,結合groupByKey()函數,進行分組合并,得出映射結果。

兩種方法的主體思路是一樣的,但計算結果差距很大。

圖2 兩種方法的輸出結果對比

圖2是兩種方法的運行結果對比,差距讓人驚訝,提取同樣結構的數據處理結果,傳統(tǒng)方法花費了852.557s,而基于Dpark的方法只用了0.159s,相差5362倍,這主要得益于Dpark的惰性求值機制。實質上,Dpark并未真正求出結果數據集。但是傳統(tǒng)方法不具有惰性求值的機制,故而計算的是提取了全部統(tǒng)計結果的時間耗費。對此,論文進行了進一步實驗。但這里需要注意的是,即便基于Dpark的方法沒有獲取全部數據集,但可以在后續(xù)計算中,高效讀取需要的數據。

圖3 程序性能對比圖

在進一步的實驗中,修改了兩個程序,普通方法用print()函數輸出兩組映射的元素個數,基于Dpark的方法用count()函數計算結果集的規(guī)模,再進一步對比兩個程序的性能。限于篇幅,由于基于Dpark的方法程序輸出時會有很多運算過程信息,所以無法截圖,只好直接展示性能對比圖,如圖4所示。

圖4 進一步實驗的程序性能對比圖

兩種方法統(tǒng)計的結果中,“用戶-電影映射”共有6040個元素,“電影-用戶映射”共有3706個元素。傳統(tǒng)方法運行了878.618s,而基于Dpark的方法只用10.548s。注意傳統(tǒng)方法在第一次實驗中已經得到了整個集合,集合長度并不大,所以求元素個數沒有耗費很多時間,和之前的代碼運行結果相差不大,完全不是倍數關系。但基于Dpark的方法由于需要真實計算結果集合,并且還需要計算元素個數,因而和之前相差66倍之多。但即便如此,基于Dpark的方法完成相同需求所用時間,也是傳統(tǒng)方法的1.2%左右。

4.3結果分析

綜上,如果只需要提取結果集,并不明確獲取結果集的全部元素,那么運用Dpark可以讓程序運行效率提高幾千倍;即便明確獲取結果集的全部元素,運用Dpark也可以讓程序運行效率提高60倍左右。這主要得益于Dpark繼承自Spark的惰性求值機制,大大減少迭代計算時的工作量,簡化了計算過程,提高了運行效率。

這里需要注意的是,基于Dpark的方法只是啟用了三個計算節(jié)點參與了本次運算,也就是說,一百萬行的計算量尚不足以發(fā)揮整個集群的運算能力。我們會在后續(xù)工作中使用更大的數據集進行測試。

5 結語

Dpark的運用對于提高數據分析效率具有重大意義,這對于擁有大量數據,同時有強烈數據分析需求的用戶來說,無疑具備了強有力的武器。文章進行了數據預處理相關工作,基于Dpark的方法相對傳統(tǒng)方法性能提高至少在數十倍左右,也就意味著數十天的工作量,使用Dpark可以在1天左右

完成。實際應用中可以根據任務量的大小分配虛擬機的數量,減少不必要的網絡開銷。同時,如果數據量非常龐大,也可以加入更多的虛擬機參與計算,隨著計算節(jié)點的增加,集群的計算能力可以不斷增大,而傳統(tǒng)方法不具備這樣的可擴展性。在合理的虛擬機數量下,計算效率還有很大的提升空間,而如何計算合理的虛擬機數量,是下一步的研究重點。

Dpark充分發(fā)揮了Python的簡潔語法特性,大量工作都可以用簡短的代碼完成,工作效率得到大大提升。從文章可以看到提取某一個統(tǒng)計結果數據集僅需要一行簡短的Python代碼。這對于提高數據分析系統(tǒng)的開發(fā)效率、降低系統(tǒng)維護難度具有現(xiàn)實意義。

Dpark是分布式計算框架,計算能力可以隨著集群的擴展而不斷增強,具備良好的可擴展性。在處理大規(guī)模的數據時,單臺主機已經無法在有效的時間范圍內處理數據,這時只能依靠集群的并行計算能力處理數據,Dpark大有用武之地。

參 考 文 獻

[1] 張杰.PyGel:基于DPark的分布式圖計算引擎的研究與實現(xiàn)[D].廣州:華南理工大學計算機科學與工程學院,2013:5-25.

ZHANG Jie. PyGel: A Distributed Graph Computing Engine Based On Dpark[D]. Guangzhou: School of Computer Science & Engineering, South China University of Technology,2013:5-25.

[2] Chen Lixian, Xiao Tong. Research on Achieving Cloud Storage Based on Moose FS[C]//Proceedings of the 2012 Second International Conference on Electric Information and Control Engineering,2012(2):1266-1269.

[3] Deka Ganesh Chandra. BASE analysis of NoSQL database[J]. Future Generation Computer Systems. May.,2015(3):13-21.

[4] Benjamin Hindman, Andy Konwinski, et al. Mesos: a platform for fine-grained resource sharing in the data center[C]//Proceedings of the 8th USENIX conference on Networked systems design and implementation,2011:295-308.

[5] Mohd Rehan Ghazi, Durgaprasad Gangodkar. Hadoop, MapReduce and HDFS: A Developers Perspective[J]. Procedia Computer Science,2015(48):45-50.

[6] Jeffrey Dean, Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters[J]. Communications of the ACM. Jan.,2008(51):107-113.

[7] Matei Zaharia, Mosharaf Chowdhury, et al. Spark: Cluster Computing with Working Sets[D]. Berkeley: Tech. Rep. UCB/EECS-2010-53, EECS Department, University of California,2010:1-6.

[8] Matei Zaharia, Mosharaf Chowdhury, et al. Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing[D]. Berkeley: Tech. Rep. UCB/EECS-2011-82, EECS Department, University of California,2011:1-14.

[9] Greg Linden, Brent Smith, et al. Amazon.Com Recommendations: Item-to-Item Collaborative Filtering[J]. IEEE Internet Computing,2003,7(1):76-80.

[10] Herlocker, J., Konstan, J., et al. An Algorithmic Framework for Performing Collaborative Filtering[C]//Proceedings of the 1999 Conference on Research and Development in Information Retrieval. Aug,1999:230-237.

收稿日期:2015年10月14日,修回日期:2015年11月28日

基金項目:個性化推薦技術的研究與應用(編號:聯(lián)科(合)20141101);貴州省科學技術基金項目(編號:黔科合J字[2010]2100號);貴州大學博士基金(編號:貴大人基合字(2009)029號)資助。

作者簡介:馬燕龍,男,碩士研究生,研究方向:分布式計算與推薦系統(tǒng)。吳云,男,博士,副教授,研究方向:云計算。

中圖分類號TP311.5

DOI:10.3969/j.issn.1672-9722.2016.04.029

Performance of Data Analysis Method Based on Dpark

MA YanlongWU Yun

(College of Computer Science and Technology, Guizhou University, Guiyang550025)

AbstractDistributed computing has got extensive application with the coming of the big data era. Open source distributed computing frameworks headed by Hadoop and Spark lead the relevant industry standards. However, there are difficulties in using and second-round developing Hadoop and Spark, while the former is programmed with Java and the latter is programmed with Scala. But Dpark, a distributed computing framework programmed with Python, extremely improves work efficiency of data analysis, because it not only inherits the mechanism of memory calculation and lazy evaluation from Spark, but also combines with the concise syntax of Python. What’s more, it is able to cooperate with MooseFS, which is a distributed file system, Beansdb, which is a distributed database, and Mesos, which is a distributed resources scheduling framework, naturally. The work efficiency of traditional Python program and the Dpark-based program in data preprocessing are compared, while the performance and scalability of the latter is better than the former.

Key WordsDpark, cluster deployment, data preprocessing

主站蜘蛛池模板: 不卡网亚洲无码| 亚洲国产清纯| 亚洲欧美天堂网| 99在线观看精品视频| 婷婷伊人五月| 亚洲不卡影院| 日本高清免费一本在线观看| 最新国产在线| 凹凸国产分类在线观看| 久草视频精品| 中文字幕亚洲无线码一区女同| 97国产精品视频人人做人人爱| 国产69精品久久久久妇女| 9999在线视频| 色欲国产一区二区日韩欧美| 大香网伊人久久综合网2020| 久综合日韩| 欧美啪啪精品| 亚洲精品无码日韩国产不卡| 亚洲成人高清在线观看| 欧美一区二区福利视频| 伊人久久大香线蕉综合影视| 国产成人h在线观看网站站| 嫩草影院在线观看精品视频| 亚洲成a人片| 综合色婷婷| 91精品亚洲| 亚洲国产日韩视频观看| 伊人91在线| 狠狠做深爱婷婷久久一区| 国产JIZzJIzz视频全部免费| 国产正在播放| 日本亚洲国产一区二区三区| 国产毛片片精品天天看视频| 日韩在线成年视频人网站观看| 亚洲欧洲日韩久久狠狠爱| 成人免费黄色小视频| 亚洲欧洲日韩久久狠狠爱| 亚洲国产成人无码AV在线影院L| 国产成人高清精品免费5388| 日本91在线| 国产噜噜在线视频观看| 免费av一区二区三区在线| 精久久久久无码区中文字幕| 免费A∨中文乱码专区| 欧美.成人.综合在线| 欧美日韩中文国产va另类| 精品欧美日韩国产日漫一区不卡| 久久精品无码一区二区日韩免费| 91啪在线| 在线精品自拍| 国产高清在线观看| 亚洲精品另类| 亚洲美女AV免费一区| 99在线视频免费观看| 国产国拍精品视频免费看| 亚洲三级成人| 国产精品毛片一区视频播| WWW丫丫国产成人精品| 乱色熟女综合一区二区| 日韩在线视频网站| 男人天堂伊人网| 亚洲aaa视频| 91国内视频在线观看| 午夜人性色福利无码视频在线观看| 中国国产一级毛片| 精品国产成人a在线观看| 亚洲男人天堂2020| 婷婷丁香在线观看| 国产国模一区二区三区四区| 国产精品夜夜嗨视频免费视频| 欧美亚洲日韩不卡在线在线观看| 亚洲精品亚洲人成在线| 亚洲欧洲一区二区三区| 欧美视频在线第一页| 亚洲无码37.| 青草国产在线视频| 特级毛片免费视频| 免费看一级毛片波多结衣| 毛片在线看网站| 伊在人亞洲香蕉精品區| 国产h视频免费观看|