以斗魚為例,揭秘企業(yè)大數(shù)據(jù)上云的挑戰(zhàn)與變化
今天的文章來(lái)自斗魚大數(shù)據(jù)高級(jí)專家張龍,本文講述了從 Apache Hadoop 階段到 Cloudera CDH 階段斗魚大數(shù)據(jù)架構(gòu)的發(fā)展歷程。提出了上云過(guò)程中斗魚遇到的問(wèn)題和挑戰(zhàn),包括數(shù)據(jù)安全、數(shù)據(jù)同步以及任務(wù)遷移。概括了混合云模式給斗魚帶來(lái)資源效率更高和資源成本更低的變化。
斗魚大數(shù)據(jù)架構(gòu)發(fā)展歷程
?? 
在2014年中期,斗魚就開(kāi)始使用大數(shù)據(jù),最開(kāi)始使用的是簡(jiǎn)單的HBase和Hadoop。在2015年,開(kāi)始使用CDH運(yùn)維大數(shù)據(jù)集群,主要針對(duì)可視化運(yùn)維。在2017年的下半年,斗魚開(kāi)始接觸阿里云大數(shù)據(jù)的一些產(chǎn)品,并且與其他產(chǎn)品做了對(duì)比。最終選擇了阿里云的MaxCompute。
Apache Hadoop階段
由于業(yè)務(wù)場(chǎng)景比較簡(jiǎn)單,組件較少,并且使用的人也少,但可以靈活的操作,同時(shí)集群規(guī)模較小,運(yùn)維要求低,可以自由的利用開(kāi)源,培養(yǎng)了許多人才。但在發(fā)展過(guò)程中也遇到了一些阻礙,例如:組件增多,運(yùn)維成本高,業(yè)務(wù)增長(zhǎng)快,集群擴(kuò)容操作繁瑣,人員增加,數(shù)據(jù)安全要求高,物理機(jī)操作,環(huán)境安全難保障。
Cloudera CDH階段
斗魚為何選擇Cloudera CDH?原因主要有:首先,它能滿足業(yè)務(wù)發(fā)展需要,多組件運(yùn)維成本低,集群擴(kuò)容操作簡(jiǎn)單,數(shù)據(jù)安全及環(huán)境安全有保障。其次,CDH在國(guó)內(nèi)被廣泛使用。最主要的一點(diǎn)是斗魚的團(tuán)隊(duì)內(nèi)部有CDH人才。
Cloudera CDH給斗魚帶來(lái)了許多便利,包括支持豐富的組件,不用考慮兼容性,可以通過(guò)CM統(tǒng)一管理,進(jìn)行Web化管理,同時(shí)支持中文。另外,支持安全管理,以及對(duì)Kerberos安全認(rèn)證。
自建集群遇到了發(fā)展瓶頸,涉及到資源效率問(wèn)題和資源成本問(wèn)題。資源效率問(wèn)題包括資源預(yù)算審批慢、機(jī)器采購(gòu)周期長(zhǎng)以及機(jī)房部署效率低。資源成本問(wèn)題包括機(jī)器資源成本高、機(jī)房成本高還不穩(wěn)定以及閑時(shí)資源空置較多。
?? 
大數(shù)據(jù)上云的挑戰(zhàn)
上云面臨的挑戰(zhàn)主要是如何保證數(shù)據(jù)安全,因?yàn)閿?shù)據(jù)是企業(yè)核心的資源,安全性是非常關(guān)鍵的。其次是如何保持?jǐn)?shù)據(jù)同步,是因?yàn)樵粕显葡麓嬖谥A繑?shù)據(jù)。最后,因?yàn)樵葡麓嬖诖罅康臍v史業(yè)務(wù),那該如何將業(yè)務(wù)安全遷移到云上也是一個(gè)問(wèn)題。
如何保證數(shù)據(jù)安全?
對(duì)于數(shù)據(jù)丟失的問(wèn)題,阿里使用原始數(shù)據(jù)進(jìn)行備份,這是很關(guān)鍵的。對(duì)于核心數(shù)據(jù)泄露問(wèn)題,幾率是很小的,因?yàn)樾孤稊?shù)據(jù)之后所要承擔(dān)的風(fēng)險(xiǎn)遠(yuǎn)大于打敗競(jìng)爭(zhēng)對(duì)手所提供的收益。對(duì)于云環(huán)境面向外網(wǎng),如何保證安全訪問(wèn)的問(wèn)題,可以增加賬號(hào)訪問(wèn)IP白名單及審計(jì),設(shè)置公司內(nèi)部才可訪問(wèn)。
如何保持?jǐn)?shù)據(jù)同步?
由于每天會(huì)產(chǎn)生PB級(jí)歷史數(shù)據(jù)和TB級(jí)數(shù)據(jù)增量。如何快速準(zhǔn)確同步數(shù)據(jù)問(wèn)題,可以使用數(shù)據(jù)同步工具,主要是基于DataX的改造。同時(shí)提高網(wǎng)絡(luò)專線能力,增加多根專線,自動(dòng)地進(jìn)行異常切換,與云上平臺(tái)業(yè)務(wù)進(jìn)行隔離。利用數(shù)據(jù)校驗(yàn)工具,校驗(yàn)數(shù)據(jù)同步任務(wù)以及數(shù)據(jù)量。
如何安全遷移業(yè)務(wù)?
業(yè)務(wù)的安全遷移需要做到三個(gè)要求:1.不能引起故障,保證遷移可行性驗(yàn)證。2.遷移成本不能太高,業(yè)務(wù)側(cè)盡量少改動(dòng)。3.能上云也要能下云,盡量保證云上云下操作一致性。
為了做到不引起故障,要做到三個(gè)需要:需要做業(yè)務(wù)場(chǎng)景測(cè)試,保證業(yè)務(wù)場(chǎng)景全部覆蓋到,并且能夠識(shí)別能夠遷移的業(yè)務(wù)場(chǎng)景。需要數(shù)據(jù)質(zhì)量檢驗(yàn),確保相同業(yè)務(wù)云上云下產(chǎn)出數(shù)據(jù)的一致性。需要數(shù)據(jù)效率驗(yàn)證,確保云上任務(wù)數(shù)據(jù)產(chǎn)出時(shí)間,同時(shí)不影響業(yè)務(wù)。
如何保證較低的遷移成本?
斗魚在IDC中運(yùn)行的任務(wù)主要分兩部分,第一部分是Java任務(wù),占比很小,特點(diǎn)是基于封裝的HiveClient工具進(jìn)行查詢計(jì)算。第二部分是XML配置化任務(wù),特點(diǎn)是基于自定義XML文件,支持HiveSQL統(tǒng)計(jì)后導(dǎo)入其他存儲(chǔ)。針對(duì)這些任務(wù)的特點(diǎn),斗魚也做了相應(yīng)的改造。針對(duì)封裝OdpsClient,可以將HiveClient改成OdpsClient,并且改Hive URL為云環(huán)境。針對(duì)加模板改URL,可以引入MaxCompute參數(shù)模型,改Hive URL為云環(huán)境。
為了保證能上云也能下云,第一,需要數(shù)據(jù)能上能下,就是前面提到的數(shù)據(jù)同步中心。第二,需要完善的配套工具,云上云下環(huán)境盡量透明化使用。第三,多使用通用功能,通過(guò)SQL+UDF能覆蓋大部分場(chǎng)景。
混合云模式帶來(lái)的變化
?? 
?? 
混合云模式帶來(lái)的變化主要針對(duì)資源效率低,難以跟上業(yè)務(wù)發(fā)展,以及資源成本高,企業(yè)財(cái)務(wù)壓力大兩方面。在資源效率方面,從自建集群到MaxCompute有一些變化,包括提前半年或一年提預(yù)算變成按量付費(fèi),采購(gòu)耗時(shí)1到3個(gè)月變成資源可以無(wú)限使用,機(jī)房上架1周以上變?yōu)闊o(wú)機(jī)房概念。相比于IDC自建集群,MaxCompute每年大概節(jié)約1000w成本,保障集群零故障。同時(shí)也有一些附加的收益,包括阿里云的專業(yè)服務(wù),當(dāng)遇到技術(shù)問(wèn)題時(shí)可以請(qǐng)教阿里的專家來(lái)幫助解決,以及計(jì)算資源可以量化,可以知道錢花在哪些業(yè)務(wù)了,以及與阿里專家交流,幫助解決業(yè)務(wù)難題。
?? 
在自建機(jī)房時(shí),斗魚也做了一些開(kāi)發(fā),下圖所示為數(shù)據(jù)開(kāi)發(fā),包括基于Hue的查詢計(jì)算和云上的DataStudio數(shù)據(jù)開(kāi)發(fā),然后將Hue的API和DataStudio的API集中起來(lái)形成斗魚的大數(shù)據(jù)開(kāi)放平臺(tái),作用是可以提供給數(shù)據(jù)部門的人使用,也可以提供給業(yè)務(wù)部門的分析人員使用。
?? 
此外,斗魚也做了一些實(shí)踐,稱為多活數(shù)據(jù)中心,如下圖所示。斗魚通過(guò)確立自建機(jī)房的數(shù)據(jù)和阿里云數(shù)據(jù)在這兩個(gè)數(shù)據(jù)中心的角色,保證可以在多活數(shù)據(jù)中心的狀態(tài)下支撐更多的業(yè)務(wù)。
?? 
混合云帶來(lái)的變化總結(jié)起來(lái),資源成本和資源效率是最大的兩個(gè)變化,還有可量化的成本、增值服務(wù)、額外的專業(yè)服務(wù)等,不僅可以給我們自己部門人員用,還可以給其他業(yè)務(wù)部門的人來(lái)用,并且他們對(duì)使用成本也是直接可見(jiàn)的。
?? 
【編輯推薦】
- ??這樣“撩”大數(shù)據(jù),小白都能看懂!??
- ??揭秘:“撩”大數(shù)據(jù)的正確姿勢(shì)??
- ??企業(yè)安全應(yīng)從防御攻擊轉(zhuǎn)向遏制攻擊嗎???
- ??Kafka 集群在馬蜂窩大數(shù)據(jù)平臺(tái)的優(yōu)化與應(yīng)用擴(kuò)展??
- ??中國(guó)移動(dòng)設(shè)計(jì)院:基于大數(shù)據(jù)的人工智能運(yùn)維服務(wù)支撐方案??




















