• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Spark的大數(shù)據(jù)清洗框架設(shè)計(jì)與實(shí)現(xiàn)

    2021-08-16 11:17:28張菁楠
    科學(xué)技術(shù)創(chuàng)新 2021年22期
    關(guān)鍵詞:流水線(xiàn)數(shù)據(jù)處理集群

    張菁楠

    (天津輕工職業(yè)技術(shù)學(xué)院,天津 300000)

    大數(shù)據(jù)是目前學(xué)術(shù)和企業(yè)重點(diǎn)關(guān)注的問(wèn)題,是指利用收集到的復(fù)雜數(shù)據(jù)信息從而創(chuàng)造出較為顯著的商業(yè)價(jià)值,充分的挖掘信息的潛在價(jià)值。一般來(lái)說(shuō),在大數(shù)據(jù)處理的過(guò)程中主要包含四個(gè)環(huán)節(jié),數(shù)據(jù)采集--數(shù)據(jù)清洗--數(shù)據(jù)儲(chǔ)存--數(shù)據(jù)分析。數(shù)據(jù)清洗在大數(shù)據(jù)處理中起著非常關(guān)鍵的作用,隨著信息時(shí)代的到來(lái),大量信息和海量數(shù)據(jù)引起了人們廣泛的關(guān)注,也由此加強(qiáng)了對(duì)數(shù)據(jù)清洗的深度研究和分析。傳統(tǒng)的數(shù)據(jù)清洗方法已經(jīng)難以適應(yīng)現(xiàn)代數(shù)據(jù)技術(shù)的發(fā)展,由此文章提出基于Spark的大數(shù)據(jù)清洗框架,通過(guò)組合和串聯(lián)的方式來(lái)完成數(shù)據(jù)清洗的過(guò)程,并實(shí)現(xiàn)數(shù)據(jù)清洗的優(yōu)化。

    1 Spark——ETL大數(shù)據(jù)清洗框架

    1.1 框架介紹

    Spark——ETL技術(shù)框架的核心是為了解決大數(shù)據(jù)清洗問(wèn)題。即大數(shù)據(jù)清洗系統(tǒng)內(nèi)包含多個(gè)大數(shù)據(jù)清洗操作單元,在數(shù)據(jù)清洗的過(guò)程中通過(guò)不同清洗單元的組合形成一套完成的清洗流水線(xiàn),從而開(kāi)展清洗工作。在Spark--ETL系統(tǒng)中清洗單元具有一定的獨(dú)立性,通過(guò)RDD的作用促進(jìn)單元之間的聯(lián)系,實(shí)現(xiàn)數(shù)據(jù)信息的共享和傳遞,而單元的主要作用體現(xiàn)在原始數(shù)據(jù)從獲取到清潔直至存入大數(shù)據(jù)庫(kù)的過(guò)程。在大數(shù)據(jù)清洗流水線(xiàn)運(yùn)行的過(guò)程中也包含多個(gè)步驟,如提取、轉(zhuǎn)化等等,在這些步驟當(dāng)中包含以上或以上的大數(shù)據(jù)清晰操作單元。

    Spark-ETL技術(shù)框架具有以下幾個(gè)方面的特征:

    第一,高性能處理。Spark-ETL技術(shù)框架是以RDD為數(shù)據(jù)封裝對(duì)象,利用Spark的分布式計(jì)算能力實(shí)現(xiàn)數(shù)據(jù)清晰的系統(tǒng),其性能較為高效。

    第二,面對(duì)不同數(shù)據(jù)源和數(shù)據(jù)格式能夠做到兼容處理,有效的解決了數(shù)據(jù)的多樣性問(wèn)題。

    第三,具有較高的易用性和可擴(kuò)展性,實(shí)現(xiàn)了不同數(shù)據(jù)單元的數(shù)據(jù)分享和傳遞,便于完成較為復(fù)雜的清洗任務(wù)。

    1.2 框架原理

    Spark-ETL框架的主要思路是利用清洗任務(wù)單元的組合形成較為完整的流水線(xiàn)進(jìn)而完成數(shù)據(jù)的清洗工作。在Spark-ETL系統(tǒng)中具備Driver Program和Executor分離設(shè)計(jì)特性,相對(duì)于傳統(tǒng)的方式來(lái)說(shuō),Spark-ETL在保持原有構(gòu)架的基礎(chǔ)上促進(jìn)了Spark接口的擴(kuò)展,從而更加的適合大數(shù)據(jù)的清晰。此外與原生框架進(jìn)行對(duì)比,Spark-ETL實(shí)現(xiàn)了工作方式的轉(zhuǎn)變,在大數(shù)據(jù)清洗的過(guò)程中改變了傳統(tǒng)的清洗方式,通過(guò)串聯(lián)和組合的方式完成了大數(shù)據(jù)的清洗,在實(shí)際操作的過(guò)程中并不需要較為復(fù)雜的代碼編程,對(duì)相關(guān)技術(shù)人員的Spark編程能力也沒(méi)有較高的要求,就能夠完成大數(shù)據(jù)的清洗工作。除此之外是清洗流水線(xiàn)的設(shè)計(jì),和普通的單線(xiàn)流水線(xiàn)進(jìn)行對(duì)比,增加了多叉樹(shù)數(shù)據(jù)結(jié)構(gòu)定義計(jì)算流,不僅能夠滿(mǎn)足Spark的內(nèi)部計(jì)算模式要求,并且通過(guò)對(duì)計(jì)算過(guò)程中分支節(jié)點(diǎn)數(shù)據(jù)的緩存,還能夠有效的提升計(jì)算效率,為大數(shù)據(jù)清洗的優(yōu)化打下了堅(jiān)實(shí)的基礎(chǔ)。

    2 相關(guān)技術(shù)分析

    2.1 Spark Application提交邏輯分析

    在Spark集群上Spark Application屬于獨(dú)立運(yùn)行,每個(gè)Application都是相對(duì)獨(dú)立的,有屬于自己的Spark Context,彼此之間相互不影響,此外擁有Spark Context對(duì)象的程序也可以被稱(chēng)之為Driver。

    Spark集群有兩個(gè)部分組成,分別是Cluster Manager與Worker。在實(shí)際運(yùn)行的過(guò)程中也有兩種模式,分別是Client與Cluster。Client模式是指在集群外部進(jìn)行運(yùn)行的Driver程序;Cluster模式與Client模式剛好相反,在其運(yùn)行的過(guò)程中是在集群內(nèi)部,由某個(gè)Worker啟動(dòng)的Driver程序,在運(yùn)行的過(guò)程中可以將結(jié)果在Web UI上進(jìn)行顯示,或者是向某個(gè)接受者進(jìn)行發(fā)送。在大數(shù)據(jù)清洗的過(guò)程中,更加側(cè)重于將Driver程序運(yùn)行在集群外部自行管理,即Client模式,實(shí)際整個(gè)集群的模塊架構(gòu)如圖1所示。

    圖1 Spark集群架構(gòu)圖

    2.2 Spark實(shí)現(xiàn)ETL功能分析

    目前,在大數(shù)據(jù)清洗的過(guò)程中多數(shù)的Hadoop-ETL都逐漸轉(zhuǎn)向Spark-ETL,其根本原因在于基于Spark的大數(shù)據(jù)清洗其效率更高,可擴(kuò)展性更強(qiáng),并且在實(shí)際操作的過(guò)程中較為簡(jiǎn)捷。Spark SQL在Spark屬于獨(dú)立的一個(gè)模塊,其作用是處理結(jié)構(gòu)化數(shù)據(jù),為Spark-ETL系統(tǒng)提供了分布式查詢(xún)引擎和較為抽象的數(shù)據(jù)結(jié)構(gòu)。除此之外在Spark SQL模塊中其數(shù)據(jù)接口也較為豐富,針對(duì)不同的數(shù)據(jù)來(lái)源和數(shù)據(jù)格式都能夠做好兼容和有效處理。另外基于Spark的大數(shù)據(jù)清洗還包含Spark Streaming,其為實(shí)時(shí)流數(shù)據(jù)處理接口提供了較高的可靠性設(shè)計(jì)。

    3 清洗框架設(shè)計(jì)

    3.1 框架架構(gòu)設(shè)計(jì)

    在Spark-ETL框架中其核心目標(biāo)是提供大數(shù)據(jù)ETL系統(tǒng)充分的滿(mǎn)足大規(guī)模數(shù)據(jù)處理的需求。因此在Spark-ETL進(jìn)行框架設(shè)計(jì)的時(shí)候其設(shè)計(jì)底層是以Spark為基礎(chǔ),其設(shè)計(jì)思路為用戶(hù)通過(guò)實(shí)際操作的過(guò)程配合平臺(tái)在Spark集群內(nèi)完成數(shù)據(jù)的清洗工作。Spark-ETL后臺(tái)服務(wù)系統(tǒng)是以Jar、Context、Job為核心,將Spark Context與實(shí)際的Job內(nèi)容分離,由Server直接管理Spark Context,將提高Jar包,設(shè)計(jì)成Algorithms的程序,動(dòng)態(tài)擴(kuò)展到整體平臺(tái)的大數(shù)據(jù)處理功能[1]。Spark-ETL框架如圖2所示,共分為五部分,分別是Spark-ETL Web Client、Spark-ETL Job Server、Algorithms、Spark SQL、Spark ETL SDK。其中Spark-ETL Web Client與Spark-ETL Job Server屬于Web Service平臺(tái),Algorithms代表了擴(kuò)展的大數(shù)據(jù)清洗任務(wù)單元庫(kù),通過(guò)Web Service平臺(tái)添加需要的清洗單元,并執(zhí)行算法任務(wù)。Spark SQL則代表了Spark集群,此處用Spark SQL進(jìn)行標(biāo)識(shí)其目的是為了大數(shù)據(jù)在清洗處理的過(guò)程中主要是依賴(lài)于Spark SQL進(jìn)行完成,進(jìn)行Spark SQL的標(biāo)識(shí)能夠更加的明確,但是在實(shí)際過(guò)程中Spark SQL所代表的是整個(gè)后臺(tái)計(jì)算服務(wù)的集群。Spark SQL、Spark-ETL Web Client、Spark-ETL Job Server所代表的是Spark-ETL中最為基礎(chǔ)的部分-清洗平臺(tái)Server系統(tǒng)。Spark ETL SDK模塊在實(shí)際運(yùn)行中需要借助Algorithms模塊通過(guò)SDK接口在Job Server模塊完成提交。最后流水線(xiàn)配置設(shè)計(jì)涵蓋在Algorithms單元內(nèi)[2]。

    圖2 Spark ETL模塊架構(gòu)圖

    3.2 Spark-ETL Server設(shè)計(jì)

    Spark-ETL Server可以將其分為三部分。Web Client為前端界面,一方面根據(jù)后臺(tái)的服務(wù)來(lái)滿(mǎn)足設(shè)計(jì)的需求,另一方面通過(guò)運(yùn)行完善后臺(tái)服務(wù)。在Job Server設(shè)計(jì)的過(guò)程其結(jié)構(gòu)模式參考了Spark-ETL Server的結(jié)構(gòu)設(shè)計(jì)理念,以Jar、Context、Job為核心完成架構(gòu)的設(shè)計(jì)。與此同時(shí)Spark SQL模塊在Context中實(shí)現(xiàn)與Job Server的連接,Spark SQL模塊屬于Spark集群,Spark是由Spark Context將Job分布到各個(gè)計(jì)算節(jié)點(diǎn)完成運(yùn)算處理[3]。

    3.3 Spark-ETL SDK設(shè)計(jì)

    Spark-ETL SDK連 接 了Spark-ETL Job Server與Algorithms兩個(gè)模塊,將Spark Context由Job Server傳入到Algorithm程序內(nèi),使其完成Spark Application。在實(shí)際操作的過(guò)程中無(wú)需對(duì)原有的平臺(tái)架構(gòu)進(jìn)行改變,并在此基礎(chǔ)上提高了便捷性,增強(qiáng)了拓展性[4]。

    在Spark-ETL SDK設(shè)計(jì)的過(guò)程中可以將其分為兩部分組成。一是Spark Job的接口定義,將清洗單元與Job Server有效的連接在一起;二是連通Spark Job,利用RDD實(shí)現(xiàn)了不同清洗單元的連接,促進(jìn)了數(shù)據(jù)的分享[5]。

    3.3.1 Spark-ETL Spark Job接口

    圖3為SDK Spark Job接口設(shè)計(jì)圖,SDK Spark Job運(yùn)行的主要目的是能夠支持不同類(lèi)型的Context,以Spark JobBase特質(zhì)為基類(lèi),其他的特質(zhì)定義繼承Spark JobBase并且定義其中的類(lèi)型C,一般為Spark Context或者是SQL Context。

    圖3 SDK接口關(guān)系圖

    3.3.2 Spark-ETL Share RDD接口

    RDD數(shù)據(jù)共享是指在不同的Spark Job之間可以共享RDD數(shù)據(jù),上一個(gè)運(yùn)行的Job結(jié)果可以作為下一個(gè)Job繼續(xù)使用,使得數(shù)據(jù)處理工具之間能夠協(xié)作完成任務(wù)[6]。在之前的設(shè)計(jì)當(dāng)中,Spark Job繼承了Spark Job的特質(zhì),而在本文中提出了一種個(gè)更為簡(jiǎn)單的共享RDD的設(shè)計(jì)方法-依賴(lài)Context管理的方法,整體的結(jié)構(gòu)設(shè)計(jì)方式如下:

    圖4 RDD數(shù)據(jù)共享設(shè)計(jì)類(lèi)圖

    結(jié)束語(yǔ)

    總的來(lái)說(shuō),在信息技術(shù)快速發(fā)展的背景下,Spark的產(chǎn)品也會(huì)越來(lái)越高,Spark-ETL系統(tǒng)框架的設(shè)計(jì)通過(guò)清洗單元的組合形成大數(shù)據(jù)流水線(xiàn)從而完成數(shù)據(jù)的清洗,促使數(shù)據(jù)清洗工作變得更加高效,在未來(lái)的發(fā)展中將不斷完善Spark-ETL系統(tǒng)框架,為大數(shù)據(jù)技術(shù)的發(fā)展做出了卓越貢獻(xiàn)。

    猜你喜歡
    流水線(xiàn)數(shù)據(jù)處理集群
    Gen Z Migrant Workers Are Leaving the Assembly Line
    認(rèn)知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補(bǔ)與極大似然估計(jì)法*
    ILWT-EEMD數(shù)據(jù)處理的ELM滾動(dòng)軸承故障診斷
    流水線(xiàn)
    海上小型無(wú)人機(jī)集群的反制裝備需求與應(yīng)對(duì)之策研究
    一種無(wú)人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
    電子制作(2018年11期)2018-08-04 03:25:40
    Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
    勤快又呆萌的集群機(jī)器人
    報(bào)廢汽車(chē)拆解半自動(dòng)流水線(xiàn)研究
    基于希爾伯特- 黃變換的去噪法在外測(cè)數(shù)據(jù)處理中的應(yīng)用
    平阳县| 宁都县| 繁峙县| 新平| 鄂尔多斯市| 嘉荫县| 安义县| 开平市| 塔河县| 苏尼特左旗| 高邮市| 兴山县| 绥江县| 游戏| 楚雄市| 久治县| 洛浦县| 伊宁县| 凤城市| 绿春县| 汉川市| 溆浦县| 五家渠市| 灵石县| 东莞市| 花莲市| 新兴县| 铅山县| 江孜县| 军事| 达州市| 平山县| 钟山县| 马公市| 桃园县| 房山区| 曲周县| 澎湖县| 龙岩市| 蕲春县| 新野县|