于晶
【摘 要】文章主要介紹了以Spark為基礎(chǔ)的大數(shù)據(jù)挖掘,首先分析了以Spark為基礎(chǔ)的大數(shù)據(jù)生態(tài)系統(tǒng),其次介紹了分布式集群與開(kāi)發(fā)環(huán)境構(gòu)建,再次介紹了Apriori算法實(shí)現(xiàn),最后分析了以Spark為基礎(chǔ)的分布協(xié)同過(guò)濾推薦。
【關(guān)鍵詞】Spark;大數(shù)據(jù);挖掘技術(shù)
因?yàn)榇髷?shù)據(jù)具有多樣性、數(shù)據(jù)量大等特點(diǎn),所以在大數(shù)據(jù)分析過(guò)程中,對(duì)于數(shù)據(jù)處理效率、速度以及實(shí)時(shí)性擁有較高要求。數(shù)據(jù)挖掘主要是以海量信息為目標(biāo),通過(guò)建模算法,找到隱藏的有用信息,充分發(fā)揮大數(shù)據(jù)價(jià)值。Spark體系主屬于一種低延遲分布系統(tǒng),以大范圍數(shù)據(jù)集合為對(duì)象進(jìn)行計(jì)算分析等操作。
一、以Spark為基礎(chǔ)的大數(shù)據(jù)系統(tǒng)
(一)Spark Runtime
Spark Core中的相關(guān)功能包括內(nèi)存管理和任務(wù)調(diào)度等內(nèi)容,內(nèi)含故障修復(fù)和存儲(chǔ)交互相關(guān)子元素。通過(guò)RDD結(jié)構(gòu)在Spark中傳送數(shù)據(jù)包的過(guò)程中,應(yīng)該率先掌握Spark處理關(guān)鍵數(shù)據(jù)的操作流程,相關(guān)數(shù)據(jù)信息和對(duì)象概念之間較為相似。首先全部的數(shù)據(jù)集都被分成數(shù)個(gè)子集,而每個(gè)子集還能夠被傳輸至集群相關(guān)節(jié)點(diǎn)當(dāng)中進(jìn)行有效處理分析。其次,能夠妥善保存計(jì)算得到的中間結(jié)果,基于可靠性對(duì)問(wèn)題進(jìn)行詳細(xì)思考,能夠收獲相同的計(jì)算結(jié)果,并在子集節(jié)點(diǎn)相關(guān)文件內(nèi)進(jìn)行備份儲(chǔ)存。最后進(jìn)行計(jì)算解析時(shí),如在處理數(shù)據(jù)子集過(guò)程中產(chǎn)生錯(cuò)誤,則需要對(duì)子集進(jìn)行重新整理,促進(jìn)容錯(cuò)機(jī)制的有效落實(shí)[1]。
(二)Graph X
在Spark中,Graph X是重要的子項(xiàng)目,為此應(yīng)該以Spark為基礎(chǔ)進(jìn)行創(chuàng)建,對(duì)大規(guī)模圖進(jìn)行準(zhǔn)確計(jì)算的基礎(chǔ)上,融入Graph X,同時(shí)添加其他組件,實(shí)施系統(tǒng)融合,能夠提升整體數(shù)據(jù)處理能力,其中Graph X的主要功能為幫助采集運(yùn)輸計(jì)算過(guò)程中所需要的數(shù)據(jù)圖形運(yùn)行符號(hào),由于類(lèi)庫(kù)存在諸多定義,通過(guò)隱性SCALE語(yǔ)言對(duì)特征進(jìn)行合理轉(zhuǎn)換的過(guò)程中,能夠控制調(diào)節(jié)Graph OPS操作符。而Graph X內(nèi),需要對(duì)相關(guān)算法進(jìn)行深入優(yōu)化,從而為后期針對(duì)圖集實(shí)施綜合處理提供便利條件。Graph X主要優(yōu)勢(shì)便是能夠進(jìn)一步擴(kuò)大數(shù)據(jù)規(guī)模,強(qiáng)化數(shù)據(jù)吸收力度。
(三)Spark Streaming
Spark即分布式的Spark Streaming數(shù)據(jù)處理的結(jié)構(gòu)系統(tǒng),對(duì)Spark原有數(shù)據(jù)處理能力進(jìn)行優(yōu)化拓展的基礎(chǔ)上,使Spark Streaming能夠結(jié)合相應(yīng)的操作階段對(duì)單位進(jìn)行準(zhǔn)確分割,從而構(gòu)成一種RDD,通過(guò)短小的時(shí)間間隔對(duì)流式數(shù)據(jù)進(jìn)行有效處理,因?yàn)槭艿教幚硌訒r(shí)問(wèn)題的影響,從某一程度而言,還能夠?qū)⑵淇醋魇菍?shí)施處理結(jié)構(gòu)。Spark Streaming屬于一種容錯(cuò)結(jié)構(gòu)形式,其錯(cuò)誤恢復(fù)和錯(cuò)誤處理水平極高,為此在錯(cuò)誤處理方面擁有較為突出的應(yīng)用優(yōu)勢(shì)。此外,Spark Streaming還能和Spark的生態(tài)模式實(shí)施有效對(duì)接,為此在協(xié)同處理完數(shù)據(jù)流之后,還可以對(duì)各種復(fù)雜現(xiàn)象進(jìn)行有效處理。
二、以Spark為基礎(chǔ)的分布式集群和開(kāi)發(fā)環(huán)境構(gòu)建
(一)硬件系統(tǒng)條件
入想進(jìn)一步提高系統(tǒng)的運(yùn)行效果和兼容性,在創(chuàng)建Spark集群的過(guò)程中,所應(yīng)用的物理主機(jī)應(yīng)該選擇LINUX系統(tǒng)。通過(guò)三臺(tái)虛擬設(shè)備和一個(gè)主機(jī)設(shè)備實(shí)施環(huán)境測(cè)試,以此為基礎(chǔ)構(gòu)建分布式集群,具體包括MASTER節(jié)點(diǎn)和WORKER節(jié)點(diǎn)兩個(gè)。而MASTER的核心工作任務(wù)便是對(duì)分布式Spark應(yīng)用程序進(jìn)行單機(jī)編制,并進(jìn)行合理調(diào)節(jié),其配置要求較高。MASTER節(jié)點(diǎn)區(qū)域裝置設(shè)備應(yīng)該配置四核處理器以及4G的內(nèi)存,而WORKER節(jié)點(diǎn)可以配置2G的內(nèi)存。每個(gè)節(jié)點(diǎn)的相關(guān)硬件都是在PCIE的條件下創(chuàng)建固態(tài)硬盤(pán),擁有較高的讀寫(xiě)效率,能夠進(jìn)一步提升工作質(zhì)量和運(yùn)行速度。集群的操作形式不但可以進(jìn)一步縮減運(yùn)行成本,同時(shí)還可以結(jié)合現(xiàn)實(shí)需求適當(dāng)調(diào)整節(jié)點(diǎn)數(shù)量,進(jìn)行適當(dāng)?shù)臏p少或增加。
(二)構(gòu)建Spark分布式集群
設(shè)置SCALA語(yǔ)言,同時(shí)把各個(gè)虛擬機(jī)裝置中的SLAVES文件中的相關(guān)內(nèi)容修改為集群內(nèi)WORKER節(jié)點(diǎn)主機(jī)名,此外還應(yīng)該針對(duì)各個(gè)節(jié)點(diǎn)中的Spark安裝目錄,即Spark-ENV.SH文件進(jìn)行修改。其中,環(huán)境變量JDK對(duì)系統(tǒng)進(jìn)行配置,SCALA-HOME這一安裝路徑會(huì)修改系統(tǒng)。MASTER內(nèi)部相關(guān)各種節(jié)點(diǎn)主機(jī)名稱(chēng)和IP選擇Spark_Master_IP相關(guān)屬性值,剩余內(nèi)容則設(shè)置為默認(rèn)值,此外還需要確保集群內(nèi)的各個(gè)節(jié)點(diǎn)文件Spark-env.sh能夠始終和文件SLAVES的內(nèi)容維持良好的一致性,在結(jié)束相關(guān)配置工作后,利用JPS命令對(duì)集群的啟動(dòng)狀態(tài)進(jìn)行詳細(xì)查看[2]。
(三)配置IDE開(kāi)發(fā)環(huán)境
SCALA語(yǔ)言在進(jìn)行設(shè)計(jì)研發(fā)過(guò)程中,需要以IDEA為核心條件,同時(shí)也是重要的基礎(chǔ)條件,因此可以將其作為對(duì)Spark結(jié)構(gòu)程序進(jìn)行設(shè)計(jì)、編程的基礎(chǔ)環(huán)境。如果想要IDEA實(shí)際應(yīng)用中縮減緩存數(shù)量,擴(kuò)大I/O資源應(yīng)用,占據(jù)有效空間,應(yīng)該利用SSD硬盤(pán)對(duì)相關(guān)有用信息進(jìn)行合理存儲(chǔ),提高系統(tǒng)整體應(yīng)用性能。結(jié)束IDEA的配置工作后,繼續(xù)檢測(cè)Spark程序,提高程序的實(shí)效性。
三、以Spark為基礎(chǔ)的Apriori算法實(shí)現(xiàn)
(一)概述
Apriori算法的中心思想是結(jié)合Apriori特性,針對(duì)頻繁項(xiàng)集實(shí)施深入挖掘,具體包括下面兩種環(huán)節(jié):第一是對(duì)最小支持度進(jìn)行定義,并將全部的頻繁項(xiàng)集全部篩選出來(lái),第二是結(jié)合置信度生成關(guān)聯(lián)規(guī)則[3]。
頻繁項(xiàng)主要是在一塊物品中頻繁出現(xiàn)的集合,至于關(guān)聯(lián)規(guī)則主要指兩種物品之間存在較為明顯的關(guān)系。而Apriori算法的核心任務(wù)便是查詢(xún)頻繁項(xiàng)集。
(二)Apriori算法實(shí)現(xiàn)
Apriori算法以Spark平臺(tái)為基礎(chǔ)的分布式集群,其算法主要思路如下:第一是生成頻繁項(xiàng)集,把事務(wù)集利用RDD
Apriori算法的實(shí)現(xiàn)環(huán)境主要是以Spark on YARN集群為主。單機(jī)Apriori算法選擇集群內(nèi)的MASTER節(jié)點(diǎn)作為測(cè)試環(huán)境。在算法操作中,還需要按順序?qū)?shù)據(jù)集路徑以及文件夾輸出路徑輸入進(jìn)去。Apriori在解析數(shù)據(jù)集時(shí),Spark集群內(nèi)的全部節(jié)點(diǎn)全部呈現(xiàn)出一種打開(kāi)狀態(tài),其消耗時(shí)間也遠(yuǎn)遠(yuǎn)比單機(jī)模式要低,或僅有MASTER或WORKER單一節(jié)點(diǎn)打開(kāi)過(guò)程所消耗的時(shí)間,具體原因是隨著集群內(nèi)工作節(jié)點(diǎn)的不斷增加,集群整體配置水平的提升,其處理速度也將進(jìn)一步加快。Spark自身所帶有的支持伸縮計(jì)算功能,也進(jìn)一步提升了大數(shù)據(jù)集整體效率。通過(guò)實(shí)踐發(fā)現(xiàn),使用不同編程語(yǔ)言,會(huì)對(duì)最終的算法結(jié)果產(chǎn)生不同程度的影響,導(dǎo)致運(yùn)行結(jié)果之間產(chǎn)生巨大差異,具體原因是Spark結(jié)構(gòu)形式可以準(zhǔn)確計(jì)算系統(tǒng)呢內(nèi)存狀況,將相關(guān)算法融入到內(nèi)存計(jì)算當(dāng)中,使Apriori相關(guān)計(jì)算效率能夠得到有效提升,這是Spark結(jié)構(gòu)優(yōu)勢(shì)之一。但以Spark為基礎(chǔ)促進(jìn)分布式算法和Apriori算法的協(xié)同運(yùn)行,最終的運(yùn)行效率小于單機(jī)運(yùn)行效率。主要原因是Spark體系結(jié)構(gòu)對(duì)數(shù)據(jù)集進(jìn)行處理過(guò)程中,會(huì)和HFDS實(shí)施交互作用,從而針對(duì)數(shù)據(jù)實(shí)施封裝和FDD分塊處理,同時(shí)還包含DAG恢復(fù)相關(guān)任務(wù)。由此能夠看出Spark集群模式較為適合對(duì)各種大型數(shù)據(jù)集實(shí)施處理操作。
四、以Spark為基礎(chǔ)的分布協(xié)同過(guò)濾推薦
(一)MLIiB算法庫(kù)
由于機(jī)器算法整個(gè)操作流程較為復(fù)雜,為此在實(shí)施迭代計(jì)算的過(guò)程中,需要把計(jì)算全部融入到磁盤(pán)內(nèi),等待啟動(dòng)任務(wù),但如此一來(lái)便會(huì)出現(xiàn)大量的CPU消耗。針對(duì)該種狀況,可以在應(yīng)用Spark的過(guò)程中,可以直接于內(nèi)存中運(yùn)行處理部分任務(wù)工作,將迭代計(jì)算內(nèi)容之間轉(zhuǎn)移到內(nèi)存當(dāng)中進(jìn)行處理,進(jìn)一步提升迭代計(jì)算綜合實(shí)力和運(yùn)算效率,同時(shí)在需要的條件下,還可以實(shí)施網(wǎng)絡(luò)運(yùn)行和磁盤(pán)操作。Spark應(yīng)用到迭代計(jì)算方面擁有極高優(yōu)勢(shì),同時(shí)還可以不斷擴(kuò)展,變?yōu)榉植际綄W(xué)習(xí)平臺(tái)。從通信角度出發(fā)進(jìn)行深入思考,能夠發(fā)現(xiàn)Spark十分高效,且十分出色,擁有極高的通訊效率。分布式算法學(xué)習(xí)過(guò)程中,相關(guān)資源主要在集群節(jié)點(diǎn)當(dāng)中聚集[4]。
(二)協(xié)同過(guò)濾算法
協(xié)同算法即人們應(yīng)用過(guò)程中,選擇比較合理的想法,并將真實(shí)想法傳遞給用戶(hù)。第一是系統(tǒng)過(guò)濾。通過(guò)面向全部用戶(hù)選擇擁有相同興趣愛(ài)好的用戶(hù),充分結(jié)合用戶(hù)的真實(shí)喜好,合理選擇所需要的物品,將其組織起來(lái),構(gòu)建全新的序列與集合。用戶(hù)還可以簡(jiǎn)單定義為鄰居,但在操作過(guò)程中,需要解決的核心問(wèn)題是針對(duì)存在聘問(wèn)的用戶(hù)以及滿(mǎn)足具體條件標(biāo)準(zhǔn)的用戶(hù)實(shí)施針對(duì)性組織和有效利用。
第二是協(xié)同過(guò)濾的中心思想。想要促進(jìn)協(xié)同過(guò)濾中心思想的有效落實(shí),應(yīng)該進(jìn)通過(guò)三種環(huán)節(jié)實(shí)施,采集用戶(hù)喜好,認(rèn)真分析用戶(hù)應(yīng)用物品過(guò)程中的相似性,結(jié)合最終的計(jì)算結(jié)果進(jìn)行推薦。對(duì)用戶(hù)愛(ài)好興趣的處理分析質(zhì)量能夠影響系統(tǒng)推薦效果,由于不同用戶(hù)各自的喜好方式之間也存在巨大的差異,同時(shí)還會(huì)被不同場(chǎng)景所影響。在一般的場(chǎng)景環(huán)境下,需要挑選出一種用戶(hù)系統(tǒng),隨后充分結(jié)合用戶(hù)需求,劃分成不同的小組,具體包括兩種分組方式:第一是結(jié)合用戶(hù)的行為差異,將用戶(hù)的行為特點(diǎn)作為基礎(chǔ)參考依據(jù)實(shí)施分組操作。第二是針對(duì)不同行為,針對(duì)用戶(hù)愛(ài)好興趣實(shí)施分組,并實(shí)施加權(quán)處理,對(duì)數(shù)據(jù)行為進(jìn)行有效采集之后,針對(duì)數(shù)據(jù)實(shí)施預(yù)處理操作。以此為基礎(chǔ),充分聯(lián)系用戶(hù)的愛(ài)好興趣,為用戶(hù)推薦其所需要的物品。選擇恰當(dāng)?shù)耐扑]方式,將協(xié)同過(guò)濾分成以物品為基礎(chǔ)的兩種類(lèi)型,分別是基礎(chǔ)用戶(hù)和協(xié)同用戶(hù)。實(shí)施推薦操作中,選擇恰當(dāng)?shù)泥従?,?dāng)下比較常用的形式是對(duì)鄰居相似程度進(jìn)行規(guī)定和明確鄰居數(shù)量。
五、結(jié)語(yǔ)
綜上所述,在分布式集群中結(jié)合MLIib和Spark構(gòu)建協(xié)同過(guò)濾推薦的運(yùn)行方案,同時(shí)利用大數(shù)據(jù)集進(jìn)行驗(yàn)證,能夠?qū)⑵湓谕扑]系統(tǒng)中廣泛推廣開(kāi)來(lái)。同時(shí)以Spark為基礎(chǔ)的Apriori分布式算法,能夠進(jìn)一步彌補(bǔ)MLIib關(guān)聯(lián)分析算法中的故障缺陷,并輔助大數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析。
【參考文獻(xiàn)】
[1]梁凡,趙麗.基于中智模糊關(guān)聯(lián)規(guī)則生成的大數(shù)據(jù)挖掘分析算法[J].計(jì)算機(jī)應(yīng)用與軟件,2019(10):285-292+298.
[2]陳春謀.大數(shù)據(jù)環(huán)境下的檔案管理系統(tǒng)信息檢索及挖掘技術(shù)分析[J].電子測(cè)試,2019(14):92-94.
[3]李明東,陳小明.基于軌跡大數(shù)據(jù)技術(shù)的行為模式挖掘技術(shù)分析[J].宜春學(xué)院學(xué)報(bào),2019,41(06):34-36+101.
[4]梁彥.基于分布式平臺(tái)Spark和YARN的數(shù)據(jù)挖掘算法的并行化研究[D].中山大學(xué),2014.