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

        ?

        基于Ambari的數(shù)據(jù)處理平臺(tái)

        2019-12-23 09:28:13任女爾魏金津蔡建軍
        電腦知識(shí)與技術(shù) 2019年31期

        任女爾 魏金津 蔡建軍

        摘要:汽車行業(yè)會(huì)產(chǎn)生大量數(shù)據(jù),需要對(duì)這些數(shù)據(jù)進(jìn)行存儲(chǔ)與分析?;贏pacheAmbari搭建大數(shù)據(jù)基礎(chǔ)設(shè)施,通過Nifi可以將各種型式的數(shù)據(jù)進(jìn)行處理、整合并導(dǎo)入大數(shù)據(jù)存儲(chǔ)。通過Kylin可以對(duì)存儲(chǔ)的大數(shù)據(jù)進(jìn)行降維,提高查詢速度?;趕pringCloud與開發(fā)計(jì)算模塊并,對(duì)外提供Rest接口,實(shí)現(xiàn)大數(shù)據(jù)查詢功能。

        關(guān)鍵詞:Amabri;Nifi;Kylin;SpringCloud

        中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A

        文章編號(hào):1009-3044(2019)31-0001-05

        1概述

        汽車行業(yè)的軟件項(xiàng)目中,經(jīng)常有這樣的業(yè)務(wù)場(chǎng)景。比如新能源汽車數(shù)據(jù)采集,一輛車一天的運(yùn)行數(shù)據(jù)量為0.375G,這樣一年的運(yùn)行數(shù)據(jù)量可達(dá)136.875G,車的數(shù)量越多數(shù)據(jù)量就越多,能達(dá)到T級(jí)甚至更大。這些數(shù)據(jù)經(jīng)常是以txt、CSV等形式提供的,有結(jié)構(gòu)化的也有非結(jié)構(gòu)化的,我們需要對(duì)這些數(shù)據(jù)進(jìn)行存儲(chǔ)和分析。

        為了突破數(shù)據(jù)存儲(chǔ)的瓶頸上限,為數(shù)據(jù)資源中心未來的數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建做一定的技術(shù)儲(chǔ)備,所以我們基于Ambari建設(shè)了一個(gè)數(shù)據(jù)處理平臺(tái),實(shí)現(xiàn)了:

        1)使用Nifi,數(shù)據(jù)可配置導(dǎo)入,無須開發(fā)即可接入txt、CSV或是其他數(shù)據(jù)源,將CSV文件導(dǎo)入Hive存儲(chǔ);

        2)海量數(shù)據(jù)的存儲(chǔ);

        3)通過Kvlin將數(shù)據(jù)降維存儲(chǔ)到Hbase,計(jì)算模塊再調(diào)用Kvlin查詢數(shù)據(jù),效率高;

        4)代碼開發(fā)計(jì)算模塊實(shí)現(xiàn)SQL的管理,能夠在uI上寫新的查詢語(yǔ)句,直接暴露Rest接口,供外部程序調(diào)用。

        計(jì)算模塊基于SpringClould開發(fā),使用JHipster生成微服務(wù)基礎(chǔ)代碼,可連接Kvlin、Groovy執(zhí)行計(jì)算。支持通過docker容器運(yùn)行,方便橫向擴(kuò)展。

        目前經(jīng)測(cè)已成功導(dǎo)入一份3500萬行的文件(6.4GB)。

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

        2.1系統(tǒng)結(jié)構(gòu)

        該項(xiàng)目基于Hortonworks的HDP搭建了大數(shù)據(jù)的基礎(chǔ)設(shè)施?;贖DF實(shí)現(xiàn)基本的數(shù)據(jù)ETL,用于系統(tǒng)問的數(shù)據(jù)集成。通過Kvlin抽取、聚合Hive中的數(shù)據(jù),構(gòu)建低維Cube表存儲(chǔ)與Hbase,形成降維索引層,用于支持MOLAP場(chǎng)景。最后,通過基于SpringClould開發(fā)的計(jì)算模塊,管理計(jì)算,該模塊可連接Postgres、Kvlin、Sqlite、Oracle、Groovy執(zhí)行計(jì)算邏輯,可實(shí)現(xiàn)鏈?zhǔn)接?jì)算,從而滿足復(fù)雜計(jì)算場(chǎng)景,為大數(shù)據(jù)可視化、機(jī)器學(xué)習(xí)、人工智能等提供支持。

        2.2功能劃分與流程處理

        2.3大數(shù)據(jù)基礎(chǔ)設(shè)施管理

        大數(shù)據(jù)基礎(chǔ)設(shè)施的搭建是極為麻煩的,Hadoop的安裝、調(diào)試往往需要苦苦耗費(fèi)好幾天,更別提Hbase、Nifi、Kylin等Ha-doop組件,所以我們通過Apache Ambari去搭建。

        Ambari是開源的,作用是創(chuàng)建、管理、監(jiān)控Hadoop整個(gè)生態(tài)圈(例如Hive、Hbase、Zookeeper等)的集群,讓Hadoop以及相關(guān)的大數(shù)據(jù)軟件更容易使用的一個(gè)工具。Ambari現(xiàn)在所支持的平臺(tái)組件也越來越多,例如流行的Spark、Storm等計(jì)算框架,以及資源調(diào)度平臺(tái)ARN等,我們都能輕松地通過Ambari來進(jìn)行部署。通常場(chǎng)景,會(huì)登錄Ambari進(jìn)行故障排查、服務(wù)重啟、配置查找/修改等工作。

        Ambari使大數(shù)據(jù)基礎(chǔ)設(shè)施安裝,官方說法是從數(shù)人天降低到一人天,運(yùn)維人數(shù)從數(shù)十人降低到幾人。如圖3所示。

        3Nifi

        因?yàn)槠髽I(yè)數(shù)據(jù)來源是多元化的,需要經(jīng)過整合后接入ha-doop生態(tài)圈以及各種存儲(chǔ)分析組件,我們希望這個(gè)過程是平滑、可視的。

        Nifi是一個(gè)開源的數(shù)據(jù)處理與分發(fā)系統(tǒng),可以通過簡(jiǎn)單的Processor對(duì)數(shù)據(jù)流進(jìn)行處理,他提供可視化的uI界面,各個(gè)模塊組件之間可配置,各個(gè)數(shù)據(jù)處理模塊之間的數(shù)據(jù)流轉(zhuǎn)情況??梢詫⒏鞣N數(shù)據(jù)源的數(shù)據(jù)導(dǎo)入Hive、Hbase存儲(chǔ)。

        4KyLin

        Kylin簡(jiǎn)單說就是做大數(shù)據(jù)查詢的,可以對(duì)大數(shù)據(jù)進(jìn)行降維,可以幫助我們對(duì)大數(shù)據(jù)進(jìn)行多維度的分析,提高查詢效率。

        對(duì)于海量數(shù)據(jù),每增加一個(gè)維度,數(shù)據(jù)量就是笛卡兒積,減少維度能夠大量減少數(shù)據(jù)量,大多數(shù)計(jì)算不需要用到所有維度的。

        以近SQL語(yǔ)句,查詢T級(jí)別大數(shù)據(jù)秒級(jí)可完成。

        5數(shù)據(jù)集成

        5.1創(chuàng)建Hive表

        登錄Ambari集群任一服務(wù)器,執(zhí)行hive命令進(jìn)去Hive命令行模式,即可運(yùn)行SQL語(yǔ)句創(chuàng)建/查詢數(shù)據(jù)表。如圖4所示。

        5.2創(chuàng)建Nifi數(shù)據(jù)流

        Nifi是一個(gè)開放的數(shù)據(jù)集成開發(fā)平臺(tái),數(shù)據(jù)處理平臺(tái)通過Apache Nifi實(shí)現(xiàn)數(shù)據(jù)ETL,通過Ambari的QuickLinks進(jìn)入Nifi-uI界面,通過對(duì)圖形化數(shù)據(jù)處理流程的設(shè)計(jì)及配置,實(shí)現(xiàn)數(shù)據(jù)的ETL流程。

        下圖樣例流程實(shí)現(xiàn)了:1)CSV數(shù)據(jù)文件的到達(dá)監(jiān)聽;2)CSV數(shù)據(jù)文件的解析;3)Hive的流導(dǎo)入;41KylinCube的增量構(gòu)建。

        如圖5所示。

        5.3kylin多維交互查詢

        通過Apache Kylin抽取、聚合Hive中的數(shù)據(jù),構(gòu)建低維Cube表存儲(chǔ)與Hbase,形成降維索引層,用于支持MOLAP場(chǎng)景,如圖6所示。

        KvlinCube(低維表)的創(chuàng)建過程大致過程為:創(chuàng)建project、同步Hive表、創(chuàng)建Model、創(chuàng)建Cube。

        6計(jì)算模塊

        6.1系統(tǒng)介紹

        計(jì)算模塊可連接Postgres、Kylin、Sqlite、Oracle、Groovy等執(zhí)行計(jì)算邏輯,可實(shí)現(xiàn)鏈?zhǔn)接?jì)算,從而能夠滿足大多數(shù)場(chǎng)景的BI計(jì)算需要。

        Kvlin是基于hive構(gòu)建低維表,低維表就是抽取部分列,聚合度量值,形成一個(gè)小的內(nèi)存表,數(shù)據(jù)處理平臺(tái)就可以連Kylin執(zhí)行查詢了,在低維表上運(yùn)行sql,返回結(jié)果,查詢速度快。

        計(jì)算模塊通過Rest接口,被外部系統(tǒng)調(diào)用。為了滿足系統(tǒng)對(duì)吞吐量,性能,穩(wěn)定性的需求,而在技術(shù)上選擇基于Spring-Cloud的微服務(wù)架構(gòu)與Docker容器。這個(gè)架構(gòu)的好處是,服務(wù)可以開任意多實(shí)例進(jìn)行橫向擴(kuò)展,還可以保持服務(wù)的獨(dú)立性,屏蔽底層物理平臺(tái)的差異。為了加快開發(fā)速度,我們選用了JHipster,一個(gè)開源的SpringCloud代碼生成腳手架,可以自動(dòng)化生成前后臺(tái)一套完整的微服務(wù)體系代碼,包括監(jiān)控、日志、權(quán)限等,正常情況下可以減少一半以上工作量。

        計(jì)算模塊還提供了一個(gè)可輸入Kylin、Groovy等大數(shù)據(jù)操縱腳本的uI界面,將腳本傳遞到Java后臺(tái)執(zhí)行,并返回結(jié)果。

        6.2進(jìn)入計(jì)算模塊的數(shù)據(jù)處理界面

        進(jìn)人計(jì)算模塊前臺(tái)數(shù)據(jù)處理界面,點(diǎn)擊“添加”按鈕。

        如圖7所示。

        填寫基本信息:

        命名控件:用于將計(jì)算分組,方便排序/搜索。

        名稱:中文名稱,方便閱讀。

        標(biāo)識(shí)符:需全局唯一,用于外部系統(tǒng)調(diào)用該計(jì)算。

        6.3計(jì)算開發(fā)

        數(shù)據(jù)處理(計(jì)算)是通過順序執(zhí)行“子處理”實(shí)現(xiàn)的。

        uI元素介紹:

        1)基本信息:數(shù)據(jù)處理的基本信息;Rest接口決定該數(shù)據(jù)處理是否支持外部系統(tǒng)的Rest調(diào)用;“停用”/“啟用”按鈕可停用/啟用該數(shù)據(jù)處理。

        2)測(cè)試參數(shù):方便子處理的開發(fā),可隨時(shí)測(cè)試運(yùn)行。

        3)子處理列表:用于添加/排序刪除子處理。

        4)子處理信息:

        名稱:子處理名稱,在該數(shù)據(jù)處理范圍內(nèi)唯一,計(jì)算結(jié)果中將用該名稱作為結(jié)果鍵值

        類型:目前支持以下類型

        [Sql-服務(wù)DB]代碼類型為PostgresSQL,用于查詢計(jì)算服務(wù)本身的數(shù)據(jù)庫(kù)。

        [Sql-Kylin]代碼為KvlinSQL,用于查詢Kylin中的Cube表。

        [Sql-Oracle]代碼為Oracle SQL,用于查詢配置中指定Ora-cle實(shí)例的數(shù)據(jù)表。

        [Sql-中間結(jié)果]查詢內(nèi)存Sqlite數(shù)據(jù)庫(kù),前置子處理需開啟“輸出表”,表名為子處理名稱。

        [腳本Groovy]前置子處理需開啟“輸出對(duì)象”。

        輸出表:若子處理開啟該項(xiàng),結(jié)果將存儲(chǔ)與內(nèi)存sQLite數(shù)據(jù)庫(kù),表明即為該子處理名稱,后續(xù)的“Sql-中間結(jié)果”子處理可編寫sql訪問該數(shù)據(jù)。

        輸出對(duì)象:若子處理開啟該項(xiàng),數(shù)據(jù)結(jié)果將存儲(chǔ)與內(nèi)部數(shù)據(jù)結(jié)果(HashMap),鍵值為該子處理名稱,后續(xù)“腳本-Groovy”子處理可編寫Groovy腳本訪問該數(shù)據(jù)集。

        輸出結(jié)果:若子處理開啟該項(xiàng),結(jié)果將最終返回給調(diào)用者。

        代碼:子處理的具體代碼,根據(jù)子處理“類型”,填寫SQL或Groovy腳本。

        如圖8所示。

        5)測(cè)試子處理:

        測(cè)試子處理將順序執(zhí)行子處理至“當(dāng)前”子處理,傳人參數(shù)為“測(cè)試參數(shù)”,結(jié)果JSON字段說明:

        success:是否成功。

        error:若失敗,返回具體錯(cuò)誤信息。

        results:結(jié)果集,鍵值為子處理名稱,包含開啟了輸出結(jié)果的前置子處理結(jié)果和當(dāng)前子處理結(jié)果。

        如圖9所示。

        6)外部系統(tǒng)調(diào)用

        identNer:數(shù)據(jù)處理的標(biāo)識(shí)符

        paramMap:輸人參數(shù),類型為JSON,例:

        {“paraml”:“valuel”,“param2”:100}

        7總結(jié)

        基于Ambari搭建大數(shù)據(jù)基礎(chǔ)設(shè)施,將汽車行業(yè)的大量結(jié)構(gòu)化、非結(jié)構(gòu)化的數(shù)據(jù)經(jīng)處理后導(dǎo)入Hive或Hbase存儲(chǔ)。基于SpringCloud腳手架JHipster開發(fā)計(jì)算模塊,開發(fā)效率可以高出50%,可以發(fā)布為Docker容器根據(jù)訪問量自由做橫向擴(kuò)展。使用Kvlin對(duì)數(shù)據(jù)進(jìn)行降維處理,計(jì)算模塊的大數(shù)據(jù)檢索效率更高。該項(xiàng)目可以被外部系統(tǒng)用來做數(shù)據(jù)分析,大數(shù)據(jù)可視化,機(jī)器學(xué)習(xí),人工智能等。

        欧美性猛交99久久久久99按摩| 国产女主播免费在线观看| 日本97色视频日本熟妇视频| 一本色道久久婷婷日韩| 99久久精品国产一区二区三区| 国产免费资源高清小视频在线观看| 国产一区二区在线观看我不卡| 日本高清视频在线观看一区二区 | 免费av网站大全亚洲一区| 亚洲精品无码国产| 国产免费资源| 中文字幕人妻乱码在线| 色翁荡熄又大又硬又粗又动态图| 国产97色在线 | 日韩| 久久水蜜桃亚洲av无码精品麻豆| 亚洲综合中文一区二区| 大肉大捧一进一出好爽视频动漫 | 久久国产精品国产精品日韩区| 伊人久久婷婷综合五月97色 | 欧美精品国产综合久久| 激情亚洲一区国产精品| 国产一区二区三区杨幂| 一区二区在线视频免费蜜桃| 国产午夜福利不卡在线观看| 午夜高清福利| 日本伦理视频一区二区| 国产精品视频永久免费播放| 国产色a在线观看| 久久国产精品超级碰碰热| 中文字幕亚洲精品在线| 亚洲av不卡一区二区三区| 精品乱子伦一区二区三区 | 狼人伊人影院在线观看国产| 日韩毛片无码永久免费看| 免费看奶头视频的网站| 久久午夜一区二区三区| 男女猛烈无遮挡免费视频| 亚洲AV成人无码久久精品老人| 国产精品久久久精品三级18| 国产情侣一区二区三区| 亚洲欧美日韩国产精品专区|