国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多區(qū)域大規(guī)模迭代計算框架應(yīng)用研究

2018-11-16 06:34:34王曉斌盧福軍馬忠義
信息通信技術(shù) 2018年5期
關(guān)鍵詞:分片數(shù)據(jù)量集群

王曉斌 盧福軍 殷 穎 閆 萌 馬忠義

1 中國聯(lián)合網(wǎng)絡(luò)通信有限公司山西省分公司 太原 030006

2 山西建筑工程(集團(tuán))總公司 太原 030012

3 東北大學(xué)軟件學(xué)院 沈陽 110169

前言

在數(shù)學(xué)中,迭代函數(shù)是可重復(fù)與自身復(fù)合的函數(shù),反復(fù)地運(yùn)用同一函數(shù)計算,前一次計算得到的結(jié)果被用做下一次計算的輸入,這個過程叫做迭代。在計算機(jī)科學(xué)中,迭代是程序中對一組指令(或一定步驟)的重復(fù),它通常描述一種特定形式的具有可變狀態(tài)的重復(fù)。迭代算法是用計算機(jī)解決問題的一種基本方法。它利用計算機(jī)運(yùn)算速度快、適合做重復(fù)性操作的特點(diǎn),讓計算機(jī)對一組指令(或一定步驟)進(jìn)行重復(fù)執(zhí)行,在每次執(zhí)行這組指令(或這些步驟)時,都從變量的原值推出它的一個新值。即使是看上去很簡單的算法,在經(jīng)過迭代之后也可能產(chǎn)生復(fù)雜的行為,衍生出困難問題的求解方法[1]。

隨著數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等相關(guān)領(lǐng)域的發(fā)展,越來越多的迭代計算應(yīng)用到諸如社會網(wǎng)絡(luò)分析、高性能計算、推薦系統(tǒng)、搜索引擎、模式識別等領(lǐng)域中[2]。例如:網(wǎng)頁排名算法PageRank算法根據(jù)網(wǎng)頁之間的鏈接關(guān)系進(jìn)行迭代并收斂至最終結(jié)果,其迭代本質(zhì)即從任意迭代初始點(diǎn)開始,根據(jù)迭代函數(shù)進(jìn)行反復(fù)迭代更新;K-means算法反復(fù)迭代更新數(shù)據(jù)聚類中心點(diǎn),根據(jù)最終收斂的不動點(diǎn)結(jié)果來判定數(shù)據(jù)單元的聚類所屬關(guān)系;協(xié)同過濾(Collaborative Filtering)算法,通常作用在用戶與購買商品關(guān)系的二維圖上,通過交叉運(yùn)行以用戶為核心的和以商品為核心的兩個迭代計算過程,最終收斂的兩個向量表示購買習(xí)慣相似的用戶群和功能相似的商品群,利用相似用戶群中其他用戶的商品喜好信息來進(jìn)行個性化推薦。

“海量”是大數(shù)據(jù)的一個主要特點(diǎn)。大數(shù)據(jù)是數(shù)據(jù)量龐大且分布廣泛的數(shù)據(jù),當(dāng)我們談及大數(shù)據(jù)時,很難假設(shè)數(shù)據(jù)是集中存儲的,也很難認(rèn)為數(shù)據(jù)是靜態(tài)存儲的。眾所周知,大數(shù)據(jù)分析算法期望作用在全集數(shù)據(jù)而非局部數(shù)據(jù)之上,而“全集”又是相對的。因此迭代分析算法既會在各局部數(shù)據(jù)上執(zhí)行,得到相對局部的分析結(jié)果;又會在匯總的全集數(shù)據(jù)上運(yùn)行,產(chǎn)生相對整體的分析結(jié)果。我們對這種迭代稱為多區(qū)域大規(guī)模多級迭代計算,簡稱多區(qū)域迭代。多區(qū)域迭代計算原理如圖1所示,這是本文的研究重點(diǎn)。我們從文獻(xiàn)[2]中得到了大量的啟發(fā),類似的工作包括Pramod等人提出了Incoop[3]框架,以及文獻(xiàn)[4]中,提出的針對PageRank算法的增量式迭代分析計算。

1 系統(tǒng)架構(gòu)

在大數(shù)據(jù)環(huán)境背景下,基于Hadoop MapReduce[5]的HaLoop框架[6]是現(xiàn)階段相對成熟的分布式迭代計算框架,它采用MapReduce的編程模型使得其可以充分利用廉價的分布式服務(wù)器集群得到強(qiáng)大的迭代分析能力,并對Hadoop框架進(jìn)行適應(yīng)迭代分析算法的改進(jìn),從而支持大數(shù)據(jù)下大部分迭代分析算法的運(yùn)行。近些年,由于計算機(jī)硬件的快速發(fā)展,UC Berkeley AMP Lab提出了Spark框架[7]。Spark框架與HaLoop框架不同,它完全作用于內(nèi)存計算,而無需從HDFS上讀寫迭代數(shù)據(jù),迭代的分析速度更快、更便捷,因此Spark框架能更好地適用于機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘等計算機(jī)科學(xué)領(lǐng)域中的迭代分析算法。綜上所述,多區(qū)域大規(guī)模迭代計算將選擇Spark計算框架作為計算平臺,通過對Spark框架的擴(kuò)展實(shí)現(xiàn)大數(shù)據(jù)環(huán)境下的多區(qū)域迭代計算。

將迭代計算模型運(yùn)用于山西聯(lián)通大數(shù)據(jù)業(yè)務(wù)分析領(lǐng)域,其系統(tǒng)架構(gòu)如圖2所示。例如山西聯(lián)通組織機(jī)構(gòu)可以根據(jù)地理位置劃分為太原分公司、大同分公司、呂梁分公司、臨汾分公司等11個地市分公司,每個行政地市都有對應(yīng)的通信業(yè)務(wù)分析機(jī)構(gòu),對區(qū)內(nèi)自身的通信數(shù)據(jù)進(jìn)行分析操作,獲得區(qū)域內(nèi)可靠的通信結(jié)果;而對于山西聯(lián)通省公司而言,也對應(yīng)存在一個省級分析機(jī)構(gòu),用于全省數(shù)據(jù)的分析,即將各個地市的移動通信進(jìn)行匯總,并在匯總后的全集數(shù)據(jù)上進(jìn)行數(shù)據(jù)分析得到某市整體的分析結(jié)果。

在圖2中,藍(lán)色虛框標(biāo)記的是區(qū)域(地市)分析機(jī)構(gòu)的集群架構(gòu),包括各個地市自身的Spark&Yarn分析計算集群和存儲數(shù)據(jù)的分布式文件系統(tǒng),紅色虛框標(biāo)記的是省級分析機(jī)構(gòu)的集群架構(gòu),主要由計算集群Spark&Yarn框架組成。各個地市基于內(nèi)部的Spark&Yarn分析計算集群,在區(qū)內(nèi)自身的數(shù)據(jù)上進(jìn)行分析得到對應(yīng)的區(qū)內(nèi)分析結(jié)果,服務(wù)于區(qū)內(nèi)個性化的政策和未來科學(xué)合理地決策,而當(dāng)省級機(jī)構(gòu)需要對全市數(shù)據(jù)進(jìn)行分析時,各個地市的機(jī)構(gòu)可以將自身區(qū)內(nèi)的數(shù)據(jù)以及區(qū)內(nèi)分析結(jié)果反饋給省級機(jī)構(gòu),省級機(jī)構(gòu)可以基于省級的Spark&Yarn分析計算集群,直接在區(qū)內(nèi)分析結(jié)果的基礎(chǔ)上進(jìn)行迭代計算,快速地得到全省的分析結(jié)果。其中,各個區(qū)內(nèi)(地市)的分析計算集群Spark&Yarn的架構(gòu)如圖3所示。

圖1 多區(qū)域迭代計算原理

圖2 多區(qū)域大規(guī)模迭代計算系統(tǒng)架構(gòu)圖

多區(qū)域大規(guī)模迭代計算框架的運(yùn)行主要步驟為:Client提交迭代計算的應(yīng)用,主節(jié)點(diǎn)構(gòu)建迭代的運(yùn)行環(huán)境并啟動Driver,Driver向主節(jié)點(diǎn)或者資源管理器申請迭代計算所需的資源,并通過SparkContext將迭代計算應(yīng)用轉(zhuǎn)化為RDD Graph,再通過DAGScheduler將RDD Graph分解為Stage的有向無環(huán)圖,將TaskSet發(fā)送給TaskScheduler,最終由TaskScheduler發(fā)送Task給對應(yīng)的Executor執(zhí)行迭代任務(wù)。在迭代計算任務(wù)執(zhí)行的過程中,Yarn中的Resource Manager負(fù)責(zé)迭代計算資源的分配和調(diào)度,其中Container是迭代計算資源分配和調(diào)度的基本單位,封裝了內(nèi)存、CPU、網(wǎng)絡(luò)、磁盤等計算節(jié)點(diǎn)中重要的機(jī)器資源。

2 迭代算子

基于上節(jié)對多區(qū)域大規(guī)模迭代計算系統(tǒng)架構(gòu)的介紹,我們可將框架主要分為以下幾個模塊:RDD(Resilient Distributed Datasets)算子模塊、迭代調(diào)度模塊、迭代計算模塊。其中最重要的為RDD算子模塊,是實(shí)現(xiàn)區(qū)域迭代的核心。

圖3 多區(qū)域大規(guī)模迭代計算框架Yarn模式的架構(gòu)圖

RDD彈性分布式數(shù)據(jù)集,是迭代計算系統(tǒng)中的數(shù)據(jù)抽象,提供了一種高度受限的共享內(nèi)存模型,即RDD是只讀的,分區(qū)記錄的集合。每個RDD數(shù)據(jù)集合都有以下屬性。①RDD之間的依賴關(guān)系:RDD在進(jìn)行變換過程中,會由一個舊RDD變換為一個新RDD,兩個新舊RDD數(shù)據(jù)集之間存在類似流水線一樣的前后依賴關(guān)系,通過RDD之間前后的依賴關(guān)系,我們可以在某些分區(qū)數(shù)據(jù)丟失時進(jìn)行恢復(fù)性計算,得到正確的迭代結(jié)果;②分片Partition:分片是RDD數(shù)據(jù)集的基本組成單元,針對每個RDD數(shù)據(jù)集而言,每個分片都會被指定一個迭代計算任務(wù)進(jìn)行處理,并決定了迭代計算的并行粒度。于此同時,RDD還具有一個分片函數(shù),用于對RDD數(shù)據(jù)集進(jìn)行分片,包括基于哈希的分片函數(shù)HashPartitioner和基于范圍的分片函數(shù)RangePartitioner;③列表:用于存儲RDD數(shù)據(jù)集中每個分片的有限位置,在HDFS文件系統(tǒng)中,該列表存儲的是RDD數(shù)據(jù)集中每個分片所在塊的位置。通過該表對RDD數(shù)據(jù)集中各個分片位置的存儲,我們可以實(shí)現(xiàn)“移動數(shù)據(jù)不如移動計算”的思想,在迭代計算任務(wù)調(diào)度過程中,盡可能地將計算任務(wù)分配給將進(jìn)行迭代計算所需資源所在的位置。

同時,RDD只能基于穩(wěn)定物理存儲,并通過在其中的數(shù)據(jù)集合對其它已有的RDD執(zhí)行確定性變換操作來創(chuàng)建。當(dāng)RDD數(shù)據(jù)集創(chuàng)建完畢后,可以在RDD數(shù)據(jù)集上進(jìn)行兩種數(shù)據(jù)操作,分別是①轉(zhuǎn)換Transformation:在現(xiàn)有RDD數(shù)據(jù)集的基礎(chǔ)上創(chuàng)建一個新的RDD數(shù)據(jù)集;②動作Action:在RDD數(shù)據(jù)集執(zhí)行完迭代計算后,將迭代結(jié)果返回給Driver組件。

表1和表2分別列舉了迭代計算系統(tǒng)RDD算子模塊中重要的轉(zhuǎn)換操作和動作操作,其中partition(Dataset)、merge(otherDataset)、loss(lossDataset)為多區(qū)域大規(guī)模迭代計算系統(tǒng)新增的3個RDD算子轉(zhuǎn)換操作,分別用于多區(qū)域迭代計算過程中的數(shù)據(jù)分區(qū)、合并區(qū)內(nèi)迭代計算結(jié)果、區(qū)內(nèi)迭代計算結(jié)果的誤差。其中,多區(qū)域迭代計算的編程模型如下所示。

表1 RDD數(shù)據(jù)集的轉(zhuǎn)換操作表

表2 RDD數(shù)據(jù)集的動作操作表

3 實(shí)驗(yàn)驗(yàn)證

為了保證實(shí)驗(yàn)結(jié)果的正確性和真實(shí)性,我們使用真實(shí)的物理計算機(jī)作為分布式集群進(jìn)行實(shí)驗(yàn),其中包括1臺Master控制節(jié)點(diǎn)和12臺Slave計算節(jié)點(diǎn)。K-Means算法的測試數(shù)據(jù)集我們采用山西聯(lián)通真實(shí)的數(shù)據(jù)集。設(shè)多區(qū)域迭代計算模型中的迭代數(shù)據(jù)量為D,其中包含全集數(shù)據(jù)量以及區(qū)內(nèi)數(shù)據(jù)量,同時區(qū)內(nèi)數(shù)據(jù)量隨著全集數(shù)據(jù)量的增長而增長;區(qū)內(nèi)迭代數(shù)據(jù)的分區(qū)記為P。K-means測試數(shù)據(jù)的相關(guān)信息如表3所示。

表3 K-Means測試數(shù)據(jù)集

全部實(shí)驗(yàn)結(jié)果如表4所示,其中分別測量了多區(qū)域迭代與Spark迭代的迭代時長,并通過計算優(yōu)化比例得出了多區(qū)域迭代的優(yōu)化效果,優(yōu)化比例的計算公式如下。

表4 實(shí)驗(yàn)結(jié)果

圖4分別從不同數(shù)據(jù)量和不同分區(qū)數(shù)的角度展示了部分實(shí)驗(yàn)結(jié)果。由于K-Means算法的迭代計算輪數(shù)對初始點(diǎn)的選擇非常敏感,為保證實(shí)驗(yàn)結(jié)果的正確性,我們對每一組測試用例都運(yùn)行了5次K-Means算法從而求取平均值進(jìn)行分析比較。由圖4可知以下結(jié)論:①在各種條件下,多區(qū)域迭代計算框架的性能較傳統(tǒng)的Spark都有明顯的優(yōu)化。優(yōu)化比例最低也在15%至20%之間。②對于多區(qū)域迭代框架和Spark,數(shù)據(jù)量對于性能的影響大于分區(qū)數(shù)目的影響,其中數(shù)據(jù)量越大,或者分區(qū)數(shù)目越多,迭代性能越差。③我們設(shè)計的多區(qū)域迭代計算框架在給定用例下較Spark有性能優(yōu)勢。

圖4 多區(qū)域迭代計算框架與Spark的性能對比

4 結(jié)論與展望

多區(qū)域大規(guī)模多級迭代計算的研究來源于中國聯(lián)通山西省分公司的具體數(shù)據(jù)匯集方式和分析需求,該研究成功提高了多地市數(shù)據(jù)分析和省級數(shù)據(jù)分析的效率,減少了省級數(shù)據(jù)分析的時間,減少了數(shù)據(jù)傳輸時延,有著確切的實(shí)際應(yīng)用效果。然而,本研究仍處于初級階段,還有許多問題需要解決。首先,多區(qū)域迭代計算模型并非適用于所有的迭代算法,而且模型角度也不具有足夠的抽象性。其次,多區(qū)域迭代較全集迭代是有精度損失的,從實(shí)驗(yàn)和實(shí)際證明該損失對于部分適用的迭代算法可以忽略不計,同時對損失的量化評估,還需要進(jìn)一步研究。

猜你喜歡
分片數(shù)據(jù)量集群
上下分片與詞的時空佈局
詞學(xué)(2022年1期)2022-10-27 08:06:12
基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
計算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
分片光滑邊值問題的再生核方法
CDN存量MP4視頻播放優(yōu)化方法
高刷新率不容易顯示器需求與接口標(biāo)準(zhǔn)帶寬
寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計與研究
電子制作(2019年13期)2020-01-14 03:15:18
海上小型無人機(jī)集群的反制裝備需求與應(yīng)對之策研究
基于模糊二分查找的幀分片算法設(shè)計與實(shí)現(xiàn)
一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
電子制作(2018年11期)2018-08-04 03:25:40
突泉县| 桑植县| 庆城县| 保定市| 浠水县| 威宁| 平远县| 阿巴嘎旗| 涪陵区| 新竹县| 宿州市| 鄢陵县| 广昌县| 阳谷县| 浦北县| 南部县| 福泉市| 昌都县| 龙山县| 慈利县| 建德市| 临猗县| 平利县| 永川市| 罗山县| 杨浦区| 甘泉县| 新余市| 贵州省| 大丰市| 宁南县| 清苑县| 上犹县| 习水县| 称多县| 鱼台县| 旬阳县| 高平市| 吉木萨尔县| 普陀区| 天台县|