為什么說建立統(tǒng)一數(shù)據(jù)平臺是重要的
原創(chuàng)本文是WOT2016互聯(lián)網(wǎng)運維與開發(fā)者大會的現(xiàn)場干貨, 新一屆主題為WOT2016企業(yè)安全技術峰會將在2016年6月24日-25日于北京珠三角JW萬豪酒店隆重召開!
楊大海表示,對于一個外行人或剛入門的人來說,建立一個數(shù)據(jù)平臺就是搭一個Hadoop集群而已。但基于這個集群,想要把它很好的用起來會暴露很多的問題。那么針對這些問題就需要研發(fā)很多系統(tǒng)來應對,所以建立統(tǒng)一數(shù)據(jù)平臺是非常重要的。
為什么說建立統(tǒng)一數(shù)據(jù)平臺是重要的
門檻,這里楊大海表示,并不是現(xiàn)在做大數(shù)據(jù)的門檻有多高,因為整個大數(shù)據(jù)領域的技術非常成熟,人員也很多,很多公司都自己的團隊做大數(shù)據(jù)。這里所說的門檻是指非大數(shù)據(jù)領域的一些人,如分析師可能只會寫一些SQL語句或只能看懂一些數(shù)據(jù),出一些報表,如果讓這類人寫Mapreduce或數(shù)據(jù)收集研發(fā)東西,就會覺得非常難,如果建立一個完善的數(shù)據(jù)平臺,可有效幫助他們。
共享, 假設某公司有很多技術團隊、不同部門、不同業(yè)務團隊。如每個團隊都搭一套Hadoop群,中間的數(shù)據(jù)共享就成了問題。還就是資源浪費,像人力資源浪費和服務器資源浪費等。
規(guī)范,基于大數(shù)據(jù)系統(tǒng)做一個數(shù)據(jù)產(chǎn)品,需要數(shù)據(jù)采集、收集、存儲和計算等多個步驟,這樣整個流程是非常長,花30%時間做業(yè)務系統(tǒng)開發(fā),70%時間用于平臺搭建或一些開源的完善,是非常不劃算的。設想做數(shù)據(jù)產(chǎn)品之前就已經(jīng)有系統(tǒng)供選擇,有數(shù)據(jù)需要采集,有新計算模型需要誕生時候只需要接入,不需要再花時間調研。制定規(guī)范之后,日志放在哪,通過標準配置,就可以把日志采上來供使用。這樣一來,就保證盡可能縮短數(shù)據(jù)采集整個的流程。
成本,這里指人力成本和服務器,就是硬件資源的成本。有統(tǒng)一數(shù)據(jù)平臺,就可以做很多優(yōu)化。面對一千臺規(guī)模的服務器,可通過一些修改原碼、參數(shù)優(yōu)化等提升10%,就可節(jié)省約64G或者128G、4核服務器一百臺。
時間,開發(fā)一套業(yè)務系統(tǒng),大可不必花一個月的時間調研Hadoop,花一個月時間的調研Kafka,因為這些不在業(yè)務團隊的競爭范圍之內。更多的精力應放在產(chǎn)品或系統(tǒng),如何把系統(tǒng)做得更***,而不是怎么把Hadoop打好。
Hadoop集群的發(fā)展進程
Hadoop發(fā)展規(guī)模
如上圖,楊大海表示,從2012年到2016年,Hadoop集群在不斷進化發(fā)展中。集群最初起點比較低,只是為了滿足數(shù)據(jù)分析團隊和推薦團隊使用,只有三四十臺的規(guī)模。在2012年到2013年的時間,集群擴張的非???。到2013年接入很多用戶,公司其他團隊如廣告、分成等團隊接進。集群膨脹厲害,半年時間翻了四五倍,到200臺左右的規(guī)模。到2016年時間,整個集群將近一千臺規(guī)模,中間做了一次升級,就是1.3升級2.3,當時升級是為了滿足周邊的一些生態(tài)圈。
Hadoop集群發(fā)展過程中遇到的問題
hadoop問題演變
如上圖,楊大海表示,整個集群發(fā)展過程中遇到的問題是隨著階段的推移不斷地變化的,也就是說不同階段遇到的不同的問題各不一樣。
50臺規(guī)模時,整個生態(tài)圈不完善,像Hive等本身還有很多Bug,但因為剛開始,應用簡單所以并沒有發(fā)現(xiàn)。此時團隊技術功底非常差,集群管理基本上沒做,直接搭了一條集群,裸奔的集群。
200百臺規(guī)模時,遇到的問題相對多一些,楊大海在這里介紹了權限問題、用戶管理、資源調度、調度系統(tǒng)、數(shù)據(jù)安全、目錄規(guī)范、參數(shù)規(guī)范、本地化八大問題。
- 權限問題, 用戶增多,十個上百個,那權限就成了問題。
- 用戶管理,如何把用戶管理好,保證用戶的作業(yè)及時提交,而不是因為某個用戶提交一個大作業(yè),把整個集群資源占完,其他的腳本沒法跑。如何保證這個用戶存儲不會***擴張。如何給用戶規(guī)劃存儲。
- 資源調度,保證用戶一定獨立空間,控制占有的資源數(shù)目,不至于把整個集群的資源給占完。
- 調度系統(tǒng),一臺服務器,一臺客戶端,可能會給三個團隊用,每天晚上會有上萬個,甚至幾千個、幾百個作業(yè)來提交,通過這臺機器來提交。調度系統(tǒng)是為了解決客戶端單節(jié)點的問題,單點故障的問題。
- 數(shù)據(jù)安全,公司內部雖是同一個集團公司,但分為不同的BU,這些BU之間的數(shù)據(jù)是需要共享、也需隔離。
- 目錄規(guī)范,日志如何存儲,用戶目錄如何規(guī)劃,目錄需要多大的空間,如果超過空間我如何提醒刪除。
- 參數(shù)規(guī)范,Hadoop有很多參數(shù),需要增加,也需要優(yōu)化。
- 本地化 ,有時需對Mapreduce本地化,因為突然間上了兩百臺機器,Mapreduce從中取數(shù)據(jù),但本地沒有需遠程,這還需要對本地化參數(shù)做優(yōu)化。
1000臺左右高可用多計算模型共存時,問題就更多,更加繁瑣。如用戶水平、高可用、小文件、數(shù)據(jù)遷移、任務問題、存儲計劃、機房瓶頸、歸檔、資源爭強分類、資源隔離、任務監(jiān)控、列隊監(jiān)控等。
- 用戶水平,用戶水平有低有高,這就需要有一個人專門解答每天用戶的問題。
- 高可用,這里需要做HHA,因為宕機后影響太大,所有團隊的任務都需要重跑,所有團隊的數(shù)據(jù)都需要重鋪。
- 小文件,集群有一千臺服務器,小文件數(shù)是非常多。內目錄內存現(xiàn)在已經(jīng)用到150G左右,這就需要對文件數(shù)進行控制,對近兩年文件做歸檔。
- 任務,需要看許多指標找出問題,這更強大的監(jiān)控系統(tǒng)來支持。
- 存儲計劃,同運維報一個存儲計劃,如集群打算一個月擴多少臺服務器、如根據(jù)流量、數(shù)據(jù)量、任務量去申報。因為不可能現(xiàn)在突然間擴一百個機器,運維也不一定有兩百臺的機器提供。
- 資源爭搶,是比較嚴重的問題,集群升級變快,但突然間可能提交不上去。
- 因為當時的調度策略,在做版本迭代升級時,有一些新功能剛推出,很多特徑還不支持。
- 資源隔離,這個是之后需要做的事情。如一個任務死循環(huán)把整個服務器跑掛問題的解決。
Hadoop數(shù)據(jù)平臺的發(fā)展現(xiàn)狀
數(shù)據(jù)平臺現(xiàn)狀
楊大海表示,上圖是現(xiàn)在數(shù)據(jù)平臺的發(fā)展現(xiàn)狀。最上層系統(tǒng)如團隊、廣告、推薦、分析、云娛樂、直播、搜索、分成、移動等,這些系統(tǒng)最原始的它們需要數(shù)據(jù),所以有一套日志系統(tǒng),把數(shù)據(jù)采集并存儲。日志系統(tǒng)是研發(fā)的,因為需要解決跨機房的問題。日志收集需要遍布在全國很多個機房,機房日志收集是需要聚合,最終的數(shù)據(jù)都要聚合到一個點。左邊是數(shù)據(jù)的計算部分,可直接讀取日志系統(tǒng)的數(shù)據(jù)。右邊用戶管理系統(tǒng)是為了滿足用戶申請賬號、放文件、需要歸屬一個團隊、訪問團隊資源。監(jiān)控報警系統(tǒng),來做統(tǒng)一的監(jiān)控報警。
Hadoop數(shù)據(jù)平臺的未來
hadoop平臺未來
楊大海表示,上圖是集群的未來的樣子,現(xiàn)在我們已經(jīng)做到90%,但還沒有完全解決。未來整個存儲分為實時和離線兩部分。HDFS存儲可能會遍布到大數(shù)據(jù)所有服務器,很多團隊是不做存儲的,所以可以把存儲遍布到所有的服務器,給你團隊的賬號?;赮arn話會做虛擬化,完全把解決資源,資源無法隔離的痛點。基于Yarn開發(fā)更多的計算模型出來,如自定義的一些計算模型。
Hadoop平臺將要面臨的挑戰(zhàn)
Hadoop平臺將要面臨的挑戰(zhàn)
如上圖,楊大海表示,Hadoop平臺將要面臨的挑戰(zhàn)分為三部分HDFS、Yarn、Client。針對HDFS面臨的挑戰(zhàn)有Namenode性能瓶頸、日志大小的控制、節(jié)點操作的API、多機房方案、集群規(guī)模太大Namenode性能瓶頸等。針對Yarn面對的挑戰(zhàn)有調度個性化分類、資源隔離、數(shù)據(jù)倉庫的必要性、基于標簽調度完善、更強大的監(jiān)控平臺等。針對Client面對的挑戰(zhàn)有Docker統(tǒng)一管理、配置問題、業(yè)務依賴升級問題等。
Hadoop數(shù)據(jù)平臺的運營問題
關于Hadoop數(shù)據(jù)平臺的運營問題 ,楊大海這樣說,對內部運營是非常有必要的,綜上那么多問題,就因為初期運營預料到這些問題,但沒有做好,導致后期花非常大的代價去挽回。他還從規(guī)范、計劃、流程和策略四方面針對運營問題,做了講解。
- 規(guī)范,就是目錄怎么存,可以放多大文件,放多少文件,占用多少資源。讓用戶一開始就了解這個事情,以免一起限制導致客戶煩感。
- 計劃,集群要做一下計劃,不同的時間做不同的事情,滿足用戶更個性化的需求,如何時完善更多的計算模型。
- 流程,用戶在使用平臺期間詳細的知道整套的流程,如用戶賬號申請,如用HDFS的話做那些事,用Kafka的話做哪些事等等。所有系統(tǒng)之間的賬號全部打通,一個賬號全部搞定。
- 策略,很多時間需要制定策略來限制用戶,這里說的限制并不是讓用戶用的不爽,是讓它更健康的發(fā)展下去。
在演講***,楊大海提到了兩個問題數(shù)據(jù)倉庫和數(shù)據(jù)服務。建立一個數(shù)據(jù)倉庫,對數(shù)據(jù)平臺來說表面上看起來是兩件毫不相關的事情,一個是做數(shù)據(jù)底層,一個是做數(shù)據(jù)服務。其實兩邊關系非常大,如果沒有一個數(shù)據(jù)倉庫,做底層的會非常痛苦。這里的痛苦并不是技術滿足不了,而是要不斷的擴容。數(shù)據(jù)服務更大的意義是保證數(shù)據(jù)的一致性,如廣告團隊算了一個視頻的VV量和播放量和分析團隊算的一個視頻的播放量不一致,這個數(shù)據(jù)是沒法解釋的。其實大家原數(shù)據(jù)都一樣,統(tǒng)計口徑不一樣,才造成這個問題。所以數(shù)據(jù)服務是把一部分可以公開的數(shù)據(jù)算好,通過接口去公開,部分不可以公開數(shù)據(jù),做成帶有偷窺認證,帶有用戶認證數(shù)據(jù)結構提供出去。盡可能做到的把公司的業(yè)務前面的幾個主題做倉庫。
演講視頻:
http://edu.51cto.com/lesson/id-100760.html
http://edu.51cto.com/lesson/id-101082.html
【講師簡介】
楊大海,前優(yōu)酷土豆大數(shù)據(jù)平臺高級架構師,優(yōu)酷土豆的大數(shù)據(jù)開放平臺研發(fā)負責人,主要負責優(yōu)酷土豆開放大數(shù)據(jù)平臺的研發(fā)和運營。曾就職于亞信聯(lián)創(chuàng)負責bi商業(yè)智能產(chǎn)品的研發(fā)。


































