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

        ?

        基于Hadoop平臺的Spark快數(shù)據(jù)推薦算法分析與應(yīng)用

        2016-04-12 00:00:00陳虹君吳雪琴
        現(xiàn)代電子技術(shù) 2016年10期

        摘 要: Hadoop大數(shù)據(jù)平臺上可以搭建Yarn,Mahout,Storm,GraphLab等框架,其提供了大數(shù)據(jù)的各種處理能力。但它們各自按自己的機制工作,整合度極低。雖然在Mahout框架中,對機器學(xué)習(xí)的算法支持較為完善,但是數(shù)據(jù)必需是離線的。在大數(shù)據(jù)時代,要求不僅具有處理能力,還強調(diào)了數(shù)據(jù)的時效性,以前的框架都顯得有點力不從心。Spark是Hadoop平臺上的新型利器,它的各個部分幾乎能替代以前的分散的框架,且采用統(tǒng)一的處理機制,整合度很好,速度比傳統(tǒng)處理方式快幾十倍甚至幾百倍。基于Hadoop平臺的Spark快數(shù)據(jù)推薦算法分析與應(yīng)用是在Hadoop平臺上用Yarn作資源管理,Spark作快數(shù)據(jù)的處理,這極大地提高了大數(shù)據(jù)的處理效率。該文以專業(yè)推薦系統(tǒng)為應(yīng)用基礎(chǔ),采用Yarn作資源管理,及Spark ALS算法做推薦,Spark PageRank算法做專業(yè)排名,實驗結(jié)果表明,Spark框架對大數(shù)據(jù)的處理機制能夠滿足日益增值的大數(shù)據(jù)應(yīng)用對速度的要求。

        關(guān)鍵詞: Hadoop; Spark; 快數(shù)據(jù); ALS算法; PageRank算法

        中圖分類號: TN911?34 文獻標(biāo)識碼: A 文章編號: 1004?373X(2016)10?0018?03

        Analysis and application of Spark fast data recommendation algorithm based

        on Hadoop platform

        CHEN Hongjun1, WU Xueqin2

        (1. Chengdu College, University of Electronic Science and Technology of China, Chengdu 610074, China;

        2. Sichuan TOP IT Vacational Institute, Chengdu 611743, China)

        Abstract: Analysis and application of Spark fast data recommendation algorithm based on Hadoop platform is to use Yarn as resource management on Hadoop platform, and Spark as fast data processing, which greatly improves the processing efficiency of large data. In this paper, the specialty recommendation system is taken as application foundation, Yarn as resource management, Spark ALS algorithm as the basis of professional recommendation system, and Spark PageRank algorithm as specialist ranking. The experimental results show that, as for the big data processing mechanism , the Spark framework can meet the speed requirement of increasingly value?added big data application.

        Keywords: Hadoop; Spark; fast data; ALS algorithm; PageRank algorithm

        Hadoop平臺是開源組織Apache基金會開發(fā)的分布式架構(gòu),是大數(shù)據(jù)的基礎(chǔ)平臺。Hadoop平臺上目前可以搭建Yarn,Mahout,Storm,GraphLab和Spark等。Yarn用于資源管理,自動或者手動地為大數(shù)據(jù)挖掘提供容器資源。在Mahout框架中對機器學(xué)習(xí)的算法支持較為完善,缺點是數(shù)據(jù)必須是離線的,不能做到實時性,同時由于其采用MapReduce計算模型,隨著數(shù)據(jù)量的增大,其挖掘時效已經(jīng)達不到要求。Storm用于實時在線數(shù)據(jù)的處理。GraphLab主要用于圖計算。Spark框架稱為快數(shù)據(jù),是基于內(nèi)存的編程模型,它可以把中間的迭代過程不放在磁盤中,直接數(shù)據(jù)一個不落地在內(nèi)存中執(zhí)行,極大地提高了它的執(zhí)行速度。Spark是大數(shù)據(jù)挖掘的新型利器。Spark的優(yōu)點不僅僅體現(xiàn)在快,也體現(xiàn)在功能強大的整合能力,其整合能力體現(xiàn)在它的大數(shù)據(jù)能力的強大。 Spark的框架分為4大模塊:Spark SQL?RDD(數(shù)據(jù)執(zhí)行的基本單元),MLlib(機器學(xué)習(xí)),Graphx(圖計算)和Spark Streaming(實時處理)[1];這四個部分的數(shù)據(jù)處理單元都是RDD,所以整個框架形成了大數(shù)據(jù)處理各種應(yīng)用場景編程的一致性。Spark框架集機器學(xué)習(xí)、圖計算和在線學(xué)習(xí)于一身,是一個簡潔、強大、高效的框架。

        1 專業(yè)推薦的理論基礎(chǔ)

        專業(yè)推薦旨在基于Hadoop平臺的Spark框架,采用Spark SQL的RDD數(shù)據(jù)處理機制對數(shù)據(jù)做結(jié)構(gòu)的包裝,采用Spark 機器學(xué)習(xí)Mllib中的ALS算法作推薦,以及利用Spark 圖計算的PageRank算法做專業(yè)排名,通過以上機制能夠達到對報考志愿的學(xué)生按相似性格作專業(yè)推薦,并對專業(yè)做評分[2]。流程圖如圖1所示。

        1.1 RDD的數(shù)據(jù)表示機制

        RDD(Resilient Distributed Datasets),稱為彈性分布式數(shù)據(jù)集[3],本質(zhì)上是Spark分布式內(nèi)存模型中的數(shù)據(jù)結(jié)構(gòu),可以讓用戶顯式地將數(shù)據(jù)存儲到磁盤和內(nèi)存中,并能控制數(shù)據(jù)的分區(qū)。 對開發(fā)者而言,RDD可以看作是Spark的一個對象,它本身運行于內(nèi)存中,如讀文件是一個RDD,對文件計算是一個RDD,結(jié)果集也是一個RDD ,不同的分片、 數(shù)據(jù)之間的依賴、key?value類型的map數(shù)據(jù)都可以看做RDD。Spark SQL允許在SQL和HiveQL中的相關(guān)查詢表達式在Spark中的執(zhí)行。

        RDD是高度受限的共享內(nèi)存模型,即RDD是只讀的記錄分區(qū)的集合,只能通過在其他RDD執(zhí)行確定的轉(zhuǎn)換操作(如map,filter,join,partionBy和groupByKey等)而創(chuàng)建,但是這種創(chuàng)建過程的開銷很低。

        在專業(yè)推薦對存在Hadoop文件系統(tǒng)HDFS中待處理數(shù)據(jù)data進行RDD的轉(zhuǎn)換,程序片段如:

        val ratings = data.map(_.split(′,′) match {

        case Array(user, major, rate) => Rating(user.toInt, major.toInt, rate.toDouble)

        })

        把對經(jīng)過ALS算法和PageRank算法的結(jié)果進行RDD轉(zhuǎn)換。

        val prData = ranks.join(majors).map {

        case (id, (rank, major)) => (rank, (major, id))

        }.sortByKey(1).zipWithIndex().map {

        case ((rank,(major, id)),index) => (id.toInt,(major,rank,index))

        }

        1.2 ALS算法

        ALS是交替最小二乘(Alternating Least Squares)的簡稱。在機器學(xué)習(xí)的上下文中,ALS 特指使用交替最小二乘求解的一個協(xié)同推薦算法。它通過觀察到的所有用戶給產(chǎn)品的打分,來推斷每個用戶的喜好并向用戶推薦適合的產(chǎn)品。

        專業(yè)推薦的打分矩陣U×M,其算法模型如下:[f(U,M)=(i,j)∈I(rij-uTimj)2+λ(inuiui2+jnmjmj2)] 式中:U表示學(xué)生,U=ui,其中i=1,2,…,nu,nu表示了學(xué)生的數(shù)量;M代表專業(yè),M=mj,其中j=1,2,…,mj,mj表示了學(xué)生的數(shù)量;rij表示i學(xué)生對j專業(yè)的評分,這個分?jǐn)?shù)可以是一個真實的數(shù)字或是無值的;T表示矩陣的轉(zhuǎn)置,λ表示矩陣的特征向量。

        在專業(yè)推薦中,采用Spark的ALS算法模型做數(shù)據(jù)集的訓(xùn)練及作預(yù)測函數(shù),每次收到新的數(shù)據(jù)后,將其更新到訓(xùn)練數(shù)據(jù)集中,然后更新ALS訓(xùn)練得到的模型[4]。該初始數(shù)據(jù)為100萬條數(shù)據(jù),ALS訓(xùn)練模型中設(shè)置迭代次數(shù)為20,收斂值為0.01。如下語句所示,訓(xùn)練后的數(shù)據(jù)集在model中。

        val rank = 10

        val numIterations = 20

        val model = ALS.train(ratings, rank, numIterations, 0.01)

        1.3 PageRank算法

        PageRank算法主要應(yīng)用于搜索引擎的搜索結(jié)果的排名。搜索的每個頁面的重要性可以由其“得票數(shù)”確定?!暗闷睌?shù)”由所有鏈向它的頁面的重要性來決定。到1個頁面的超鏈接相當(dāng)于對該頁投1票。1個超鏈接指向了s個頁面,那么它對每個頁面的貢獻值是[1s]。一個頁面的重要性排名PageRank是由所有鏈向它的頁面的重要性經(jīng)過遞歸算法得到的[5]。

        數(shù)學(xué)模型如下:

        [PageRank(pi)=1-qN+qpjPageRank(pj)L(pj)]

        式中:p1,p2,…,pn是被研究的專業(yè);M(pi)是pi關(guān)注該專業(yè)的數(shù)量;L(pj)是pj關(guān)注該專業(yè)的人關(guān)注其他專業(yè)的數(shù)量,而N是所有專業(yè)的數(shù)量。在專業(yè)推薦中,采用了Spark Graphx中的PageRank算法做專業(yè)排名。代碼片段如下:

        val graph = GraphLoader.edgeListFile(sc, \"hdfs://hadoop135:8020/spark/combine/Major_PR.data\").cache()

        val ranks = graph.pageRank(0.001).vertices

        2 實驗環(huán)境與測試結(jié)果

        本實驗環(huán)境,采用Spark對比傳統(tǒng)MapReduce的方式對該專業(yè)模型中的ALS推薦部分做了測試。采用Hadoop 2.2大數(shù)據(jù)平臺,并采用Yarn管理有2個主機的集群。每個主機的配置:每臺機器4塊內(nèi)存條,每塊4 GB,共32 GB內(nèi)存,數(shù)據(jù)量為2 GB,共100萬條數(shù)據(jù)。為了更好的測試運行的效率,實驗對比了ALS算法,如表1所示。

        表1 Spark對比傳統(tǒng)MapReduce的執(zhí)行效率

        實驗得出,Spark處理推薦性能明顯優(yōu)于傳統(tǒng)的MapReduce方式。

        3 結(jié) 語

        Spark是Hadoop大數(shù)據(jù)平臺的一個利器,速度快,整合能力強。在大數(shù)據(jù)的分析與應(yīng)用發(fā)展極為迅速的今天,Spark是非常值得研究的。本文中的專業(yè)推薦模型還可以從實時數(shù)據(jù)的收據(jù)、處理、呈現(xiàn)等方面繼續(xù)改進。

        參考文獻

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

        [2] SPIEWAK D, ZHAO Tian. ScalaQL: Language?integrated database queries for scala [C]// Proceedings of Second International Conference on Software Language Engineering. [S.l.:s.n.], 2009: 154?163.

        [3] Anon. Resilient distributed datasets: a fault?tolerant abstraction for in?memory cluster computing, UCB/EECS?2011?82 [R]. Berkeley: EECS Department, University of California , 2011.

        [4] BU Yingyi, HOWE B, BALAZINSKA M, et al. Ernst. HaLoop: efficient iterative data processing on large clusters [J]. Proceedings of VLDB endowment, 2010, 3(1): 285?296.

        [5] 陳虹君.Spark框架的Graphx算法研究[J].電腦知識與技術(shù),2015(1):75?77.

        [6] 徐劍,陳群,王卓,等.一種基于Hadoop的多表鏈接策略[J].現(xiàn)代電子技術(shù),2014,37(6):90?94.

        区无码字幕中文色| 国产二级一片内射视频插放| 国产成人av一区二区三区在线| 日本女优中文字幕看片| 亚洲精品一品二品av| 日韩精品一区二区三区人妻在线| 免费a级毛片高清在钱| 婷婷五月六月综合缴情| 青春草国产视频| 国产高清亚洲精品视频| 久久这里都是精品99| 国产一区二区三区乱码| 欧美日韩亚洲国内综合网| 国产亚洲欧美日韩国产片| 国产精品丝袜美腿诱惑| 亚洲国产精品成人av网| 无人视频在线观看免费播放影院 | 国产专区一线二线三线码| 在线观看av永久免费| 中文人妻av大区中文不卡| 中文字幕影片免费人妻少妇| 精品人妻av区乱码| а中文在线天堂| 久久激情人妻中文字幕| 亚洲一区二区刺激的视频| 国产乱妇无码大片在线观看 | 女局长白白嫩嫩大屁股| 丰满五十六十老熟女hd| 日韩AV无码乱伦丝袜一区| 亚洲男人综合久久综合天堂| 人妻少妇精品无码专区动漫| 国产一区视频在线免费观看| 在线免费观看亚洲天堂av| 亚洲国产精品高清一区| 女人被弄到高潮的免费视频| 国产亚洲精品自在久久蜜tv | 少妇人妻字幕一区二区| 久久不见久久见免费视频6| 久久久久国产精品免费免费搜索| 亚洲狼人社区av在线观看| 亚洲天堂av路线一免费观看|