999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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ǔ)與分析。基于ApacheAmbari搭建大數(shù)據(jù)基礎(chǔ)設(shè)施,通過(guò)Nifi可以將各種型式的數(shù)據(jù)進(jìn)行處理、整合并導(dǎo)入大數(shù)據(jù)存儲(chǔ)。通過(guò)Kylin可以對(duì)存儲(chǔ)的大數(shù)據(jù)進(jìn)行降維,提高查詢速度。基于springCloud與開發(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ù)資源中心未來(lái)的數(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)入,無(wú)須開發(fā)即可接入txt、CSV或是其他數(shù)據(jù)源,將CSV文件導(dǎo)入Hive存儲(chǔ);

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

3)通過(guò)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ì)算。支持通過(guò)docker容器運(yùn)行,方便橫向擴(kuò)展。

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

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

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

該項(xiàng)目基于Hortonworks的HDP搭建了大數(shù)據(jù)的基礎(chǔ)設(shè)施。基于HDF實(shí)現(xiàn)基本的數(shù)據(jù)ETL,用于系統(tǒng)問(wèn)的數(shù)據(jù)集成。通過(guò)Kvlin抽取、聚合Hive中的數(shù)據(jù),構(gòu)建低維Cube表存儲(chǔ)與Hbase,形成降維索引層,用于支持MOLAP場(chǎng)景。最后,通過(guò)基于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組件,所以我們通過(guò)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)組件也越來(lái)越多,例如流行的Spark、Storm等計(jì)算框架,以及資源調(diào)度平臺(tái)ARN等,我們都能輕松地通過(guò)Ambari來(lái)進(jìn)行部署。通常場(chǎng)景,會(huì)登錄Ambari進(jìn)行故障排查、服務(wù)重啟、配置查找/修改等工作。

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

3Nifi

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

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

4KyLin

Kylin簡(jiǎn)單說(shuō)就是做大數(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)通過(guò)Apache Nifi實(shí)現(xiàn)數(shù)據(jù)ETL,通過(guò)Ambari的QuickLinks進(jìn)入Nifi-uI界面,通過(guò)對(duì)圖形化數(shù)據(jù)處理流程的設(shè)計(jì)及配置,實(shí)現(xiàn)數(shù)據(jù)的ETL流程。

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

如圖5所示。

5.3kylin多維交互查詢

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

KvlinCube(低維表)的創(chuàng)建過(guò)程大致過(guò)程為:創(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ì)算模塊通過(guò)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ì)算)是通過(guò)順序執(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訪問(wèn)該數(shù)據(jù)。

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

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

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

如圖8所示。

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

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

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ù)訪問(wèn)量自由做橫向擴(kuò)展。使用Kvlin對(duì)數(shù)據(jù)進(jìn)行降維處理,計(jì)算模塊的大數(shù)據(jù)檢索效率更高。該項(xiàng)目可以被外部系統(tǒng)用來(lái)做數(shù)據(jù)分析,大數(shù)據(jù)可視化,機(jī)器學(xué)習(xí),人工智能等。

主站蜘蛛池模板: 亚洲日韩国产精品无码专区| 好吊妞欧美视频免费| 亚洲中文无码h在线观看| 国产精品亚洲一区二区三区在线观看| 2022国产91精品久久久久久| 曰韩人妻一区二区三区| 高h视频在线| 久久国产精品嫖妓| 国产成人高清在线精品| 孕妇高潮太爽了在线观看免费| 99久久精品免费视频| 一级毛片免费不卡在线| 无码精油按摩潮喷在线播放| 国产成人精品午夜视频'| 青青草一区| 精品无码人妻一区二区| 日韩成人在线视频| 在线观看欧美精品二区| 男人的天堂久久精品激情| 这里只有精品在线播放| 99视频在线观看免费| 在线视频亚洲色图| 婷婷激情五月网| 成人免费黄色小视频| 欧美第一页在线| 国产在线视频欧美亚综合| 无码日韩人妻精品久久蜜桃| 91久久国产热精品免费| 欧美特黄一级大黄录像| 99成人在线观看| 国产成人精品免费av| 国产精品手机在线播放| 亚洲一区二区三区香蕉| 亚洲欧美日韩精品专区| 國產尤物AV尤物在線觀看| 精品欧美日韩国产日漫一区不卡| 国产成人高清精品免费软件| 狠狠色成人综合首页| 精品国产香蕉伊思人在线| 92精品国产自产在线观看 | 国产免费观看av大片的网站| 国产黑丝一区| 国产美女自慰在线观看| 久久成人18免费| 欧美日韩国产在线人成app| 精品久久久久久久久久久| 国产剧情无码视频在线观看| 欧美成人看片一区二区三区| 青青久在线视频免费观看| 毛片在线区| 国产国语一级毛片在线视频| 日韩毛片基地| 成人蜜桃网| 国产成年女人特黄特色毛片免| 91丝袜美腿高跟国产极品老师| 久久国产高清视频| 午夜电影在线观看国产1区| 久久亚洲中文字幕精品一区| 亚洲伊人久久精品影院| 成人精品区| 久久6免费视频| AV老司机AV天堂| 91人人妻人人做人人爽男同| 精品国产免费第一区二区三区日韩| 国产拍在线| 伊人久久综在合线亚洲2019| 日本一本正道综合久久dvd| 波多野结衣第一页| 婷婷亚洲综合五月天在线| 欧美激情,国产精品| 国产尤物在线播放| 国产91色在线| 精品亚洲国产成人AV| 美女扒开下面流白浆在线试听| 亚洲成肉网| 久久黄色影院| 久久这里只有精品66| 狠狠干综合| 久久黄色一级视频| 超碰91免费人妻| 夜夜操狠狠操| 欧美国产成人在线|