(深圳博十強志科技有限公司,廣東 深圳 518000)
信息時代背景下,云計算、物聯網技術的快速發(fā)展,各類數據信息急劇增長,怎樣才能夠將海量的數據信息轉變?yōu)橛行У馁Y源,是大數據技術研究的要點。通過大數據技術來挖掘海量數據存在的內在規(guī)律,確定有價值的信息數據并予以利用,可以打開全新的思維與認知角度,這對于社會經濟的發(fā)展意義重大。Spark平臺作為針對大數據集合的低延遲集群分布式計算系統(tǒng),可以為大數據挖掘效率的提升提供更多支持。
數據挖掘技術現在已經得到了廣泛應用,可以利用算法來挖掘出海量數據內存在的有價值的信息以及有趣模式。可以分為3個階段:(1)數據的預處理。轉化采集到的所有原始數據,確保其在經過處理后可以符合項目需求,轉變成有效數。該步驟可以彌補原始數據存在的缺陷,提高數據的完整性與可靠性[1]。數據抽取操作比較簡單,可通過較快的速度從大量的數據信息內獲得有價值的數據。(2)數據的挖掘。首先要確定數據倉庫內各類數據的普遍特征,并根據此確定對應的算法工具,實現對目標數據的進一步處理。該階段為數據挖掘技術的核心,為達到最終目的,關鍵是要保證所選挖掘算法的適用性。(3)知識表示與模式評估。模式主要是完成數據挖掘成果的有效表達,最終構建出有識別能力的完整表達模式。
2.1.1 Spark Runtime
對Spark Runtime分析時,首先要確定其功能性,例如任務調度與內存管理等。在利用RDD結構來進行Spark內部的數據傳輸時,前提是要確定Spark核心邏輯數據信息,在部分條件下其會與對象概念有著一定的相似性。第一步想要對全部數據進行多個子集的劃分,同時要求每個子集全部能夠傳輸到集群內任意的節(jié)點做進一步的處理。第二步是對計算中間結果提供可靠保護,通過此來獲取與計算結果相同,同時在子集節(jié)點進行備份存放的文件內容[2]。第三步則是在任意數據子集計算錯誤的情況下,其余子集全部要做再一次的整理,滿足容錯機制。
2.1.2 Graph X
Graph X為Spark的關鍵子項目,在Spark基礎上進行構建,基于大規(guī)模圖計算,通過Graph X衍生特征支持,可實現Spark生態(tài)系統(tǒng)對于大圖數據處理時的豐富計算。以及在于其他相關組件進行系統(tǒng)融合時,在強大數據處理能力的支持下,便能夠確保所有應用全可通過多項場景來獲取。對Graph X功能性進行分析,可確定其能夠提供豐富的圖數據操作符,例如核心與優(yōu)化操作符等[3]。并且,Graph X還可以滿足多個分布集群的圖運算,以及具備充足的API接口,尤其是在達到一定圖規(guī)模的情況下,可進行精益化算法,推動分布式圖集的大規(guī)模處理。作為Spark的重要部分,Graph X的關鍵就是可進一步提高數據吸收與規(guī)模。
2.1.3 Spark Streaming
SPark系統(tǒng)除了具有良好的擴展Spark數據能力,還可以做到嚴格按照時間方式進行Spark Streaming數據流的分割,最終構成RDD,利用比較小的時間間隔來處理流式數據,會在一定程度上受到處理延時影響,所以可以將其看做是準時處理系統(tǒng)[4]。并且,Spark Streaming具有非常強的容錯性,包括錯誤處理以及恢復等方面均具備較大的優(yōu)勢。以及Spark Streaming還可無縫對接相關Spark生態(tài)模塊,除了共同完成流數據以外,對于部分復雜現象也可以做到有效處理。
2.2.1 硬件系統(tǒng)
為達到優(yōu)良的兼容性與運行性效果,就需要采用Linux操作系統(tǒng)來構建Spark分布式集群。安排1臺主機的3臺虛擬機進行環(huán)境測試,并完成Spark分布式集群的構建,其中分為2個Worker節(jié)點與1個Master節(jié)點,各節(jié)點分別負責不同的功能。例如Master節(jié)點對應功能是見單機編寫,同時調節(jié)Spark分布式應用程序,因此需要較高的配置。一般來講Master節(jié)點對應的是4G內存與四核處理器,而Worker節(jié)點對應的配置則多為2G內存與二核處理器。另外,為保證各個節(jié)點功能的有效體現,全部使用的是以PCIE為基礎的SSD固態(tài)硬盤,在保證讀寫效率達標的情況下,還能夠進一步做到高效率、高質量運行。通過對集群構建的管理,能夠以更少的運行成本,來達到較高的運行速度與工作質量,并且還能夠根據實際需求來靈活的調整節(jié)點數量。
2.2.2 分布式Spark集群
先完成Scala語言的安裝,對每臺虛擬機的slaves文件內容進行修改,修改后要全部為見集群中Worker節(jié)點主機名,然后要進一步完成節(jié)點Spark安裝目錄Spark-env.sh文件的修改。配置系統(tǒng)的jdk環(huán)境變量,對系統(tǒng)Scala安裝路徑進行修改,確定為Scala-Home[5]。另外,要注意集群內各節(jié)點對應的Spark-env.sh文件必須要核對確認其與Slaves文件內容相同,并且在完成所有配置后,可直接運行jps命令查看集群啟動情況。
2.2.3 Spaek的IDE開發(fā)環(huán)境
Scala語言所應用的開發(fā)環(huán)境是IDEA,這樣便可以選擇IDEA為Spark應用程序編程與開發(fā)環(huán)境。其中,需要注意IDEA使用過程中所產生的大量緩存文件,可以通過應用SSD固態(tài)硬盤實現文件存儲,因此來減少對空間的占用量,同時降低I/O資源的消耗量,為系統(tǒng)的穩(wěn)定運行提供有利條件。待IDEA配置完成后,便可對Spark程序做下一步的測試。
Apriori算法是以挖掘關聯規(guī)則為基礎的一種頻繁項集算法,能夠反復掃描交易數據庫信息,然后基于候選頻繁集生成最終的頻繁集。其中定義最小支持度為算法的核心流程,對所有的頻繁項集進行選擇,然后按照置信度實現關聯規(guī)則的生成?;赟park平臺Apriori算法分布式實現,可以分為兩個步驟來實現:第一步,產生頻繁項集,所有事務集全部根據RDD
對計算算法流程進行分析,可確定其具有較高的復雜性,在進行迭代計算時,全部計算均需要放入磁盤中等待任務的啟動與處理,整個過程需要消耗大量CPU?;赟park平臺可在內存內直接完成部分的工作處理,相應的迭代部分計算任務會直接轉存在內存中,以此便可以進一步提高迭代計算的計算效率,并且在部分必要的條件下,還能夠實現磁盤與網絡的運作??偨Y來講,在迭代計算中Spark具有更加明顯的優(yōu)勢,其能夠作為分布式機器學習平臺存在。
協(xié)同過濾算法的應用,先是要選擇確定一個靠譜的想法,隨后便可向用戶提供該想法。算法的步驟可分為以下流程:(1)系統(tǒng)過濾。篩選存在共同興趣的用戶,然后以喜好對物品進行選擇和分類,并將其構成新的集合或序列。在此過程中可定義用戶為鄰居,同時要對相應用戶進行針對性組織與利用,確定最有效的執(zhí)行方法。(2)協(xié)同過濾。依次完成用戶喜好收集、用戶使用物品相似性分析以及基于計算結果推薦各步驟,其中用戶喜好整合是影響最終推薦針對性的核心要素。首先要選擇一種用戶系統(tǒng),然后根據用戶行為來進行分組,對數據行為進行可靠收集,然后做進一步的數據預處理,通過用戶喜好向其推薦可能會喜歡的物品。
基于Spark平臺的分布式Apriori算法有效的彌補了其他算法的缺陷,在大數據關聯分析中應用優(yōu)勢明顯,并且有機結合Spark與MLlib制定分布式協(xié)同過濾推薦在分布式集群中的運行方案,在大量推薦系統(tǒng)的應用中效果顯著,值得進一步的研究分析。