大數(shù)據(jù)平臺資源治理經(jīng)驗總結

背景

大數(shù)據(jù)平臺早期是野蠻生長的魂拦,作業(yè)直接在終端提交運行贝室,處于一種完全無管理的自由狀態(tài)。在17年上線了內(nèi)部的大數(shù)據(jù)平臺后畸裳,用戶開始逐漸在平臺上進行數(shù)據(jù)管理缰犁,代碼編寫,作業(yè)管理等工作怖糊,但是資源治理依舊缺失帅容。

隨著業(yè)務及數(shù)據(jù)量的不斷增加,集群擴容伍伤,存儲和計算資源達到一定規(guī)模后并徘,對大數(shù)據(jù)平臺進行資源治理就非常必要了,本文是基于 HADOOP 生態(tài)的一個總結扰魂。

該項目大部分完成于18年麦乞,由于內(nèi)容較多(人比較懶),幾次提筆都擱置了劝评,全文主要圍繞 為什么做/要做什么 來展開姐直,至于具體怎么做,方法有很多蒋畜,大家就見仁見智了声畏。

組件

HDFS

為什么需要治理

  1. 財務預算高

    數(shù)據(jù)增長非常快姻成,不干預的情況下日增能達到100T插龄。在計算與存儲沒有分離的情況下,存儲資源的不足就意味著需要購買新的機器佣渴,不僅成本非常高辫狼,還會造成計算資源使用率低下。

  2. 集群負載高

    HDFS 雖然支持水平擴展辛润,但是當集群到了一定規(guī)模膨处,NameNode 就會成為瓶頸见秤,其一為 NN 的內(nèi)存瓶頸,其二為大量DN的心跳RPC請求帶來的網(wǎng)絡瓶頸真椿,同時重啟恢復時間也會變長鹃答。

  3. 運維壓力大

    頻繁的擴容,即使有自動化工具的支持突硝,也會給工程師帶來一些低價值的工作测摔。

為什么難以推動

  1. 在集群數(shù)據(jù)量級較小的情況下,以優(yōu)先解決業(yè)務需求為主解恰,增加機器遠比開發(fā)一整套資源分析系統(tǒng)的成本要低锋八。
  2. 平臺需要推動業(yè)務部門刪除一些”僵尸數(shù)據(jù)“,但業(yè)務部門人數(shù)較多护盈,以開發(fā)業(yè)務為核心挟纱,刪除數(shù)據(jù)在他們看來優(yōu)先級非常低。

需要做什么

核心思想:控制增量腐宋,優(yōu)化存量

  1. 冷數(shù)據(jù)

    長期沒有訪問的數(shù)據(jù)紊服,包括一些分析建模留下的中間數(shù)據(jù),無用數(shù)據(jù)等胸竞。針對這部分數(shù)據(jù)欺嗤,設計了一個資源浪費分的概念,根據(jù)數(shù)據(jù)目錄大小絕對值和最后一次訪問時間進行計算卫枝,該分數(shù)達到一定閾值后會對用戶進行提醒煎饼,不操作則進行刪除。

  2. 碎片文件

    通過計算目錄下每個文件的平均大小剃盾,平均大小小于某個閾值時會觸發(fā)腺占,進行合并壓縮處理淤袜,可以參考 Spark 小文件合并優(yōu)化實踐

  3. 異常增長

    數(shù)據(jù)目錄增長異常痒谴,可能是業(yè)務存在較大的變動或是用戶的誤操作導致,這種情況需要對用戶進行預警铡羡。

  4. 空間占用絕對值高

    使用更高壓縮率的壓縮算法积蔚,例如zstd。統(tǒng)計出日增長絕對值最高或者月環(huán)比 / 季環(huán)比較高的 team 烦周,發(fā)送郵件給相應 team leader尽爆,要求給出解決方案。

  5. 集群容量評估

    根據(jù)集群歷史數(shù)據(jù)增長情況读慎,評估目前的容量多久后需要進行擴容漱贱。

  6. 數(shù)據(jù)生命周期

    所有的數(shù)據(jù)進行表化,上大數(shù)據(jù)平臺夭委,強制填寫生命周期幅狮,例如物化的臨時表生命周期為7天,到期后會自動刪除,不需要主動進行管理崇摄。普通的數(shù)據(jù)表/分區(qū)生命周期到之前7天給用戶發(fā)郵件/釘釘擎值,用戶可以選擇續(xù)期或者直接過期刪除。

部分效果圖

容量評估


2020042314233829.png

用戶資源使用趨勢


20200423213916347.png

用戶數(shù)據(jù)日增量


20200423142316184.png

SPARK & YARN

為什么需要治理

  1. 資源使用不平衡

    比較常見的情況是集群中內(nèi)存被申請滿了逐抑,但是 CPU 還有剩余鸠儿。

  2. 運行時間不穩(wěn)定

    同個作業(yè)多次運行時間波動幅度大。

  3. 資源濫用

    每個業(yè)務方都希望自己的作業(yè)能盡可能快的完成厕氨,導致資源被濫用进每,帶來一些不必要的資源緊張。

需要做什么

  1. 作業(yè)資源統(tǒng)計分析

    現(xiàn)實的情況是大多數(shù)作業(yè)直接運行在大數(shù)據(jù)平臺上命斧,少數(shù)作業(yè)因為歷史原因還在終端運行品追。

    • 終端的作業(yè)都是獨享一個 Spark Application ,從 submit 到 shutdown 有一個完整的生命周期冯丙。

    • 大數(shù)據(jù)平臺作業(yè)則分為獨享和共享 Application 兩種肉瓦,獨享和終端類似,共享的方式是一個作業(yè)由 Spark 的幾個 job 組成胃惜。

    對于獨享的任務泞莉,直接計算整個 application 運行期間消耗的 mem_seconds/core_seconds ,共享的任務資源使用則是通過該任務結束時間獲得的 mem_seconds/core_seconds 減去開始時間的值獲得船殉。

    對于 Spark 作業(yè)鲫趁,還可以通過 Listener 對 task 做進一步的分析,幫助優(yōu)化應用資源使用利虫。

  2. 集群資源統(tǒng)計分析

    根據(jù)統(tǒng)計信息能獲取當前 cpu/mem 使用較高的一些作業(yè)及用戶挨厚,根據(jù)歷史資源使用趨勢可以更合理的安排作業(yè)的調(diào)度時間。

  3. 內(nèi)存及 cpu 使用控制
    spark on yarn cgroup 資源隔離(cpu篇)
    使用 jvm-profiler 分析 spark 內(nèi)存使用

  4. 作業(yè)數(shù)量/資源池限制

    在平臺層面對用戶/應用賬號不同類型作業(yè)(schedule/dev/etc.)進行提交數(shù)量限制糠惫,對不同的應用分資源池進行約束疫剃。

部分效果圖

集群資源使用及作業(yè) Top


20200423141941621.png

集群當前狀態(tài)


2020042314184496.png

Spark任務診斷


20200423141331153.png
20200423141346851.png

計費

對于普通用戶來說,提供諸如 core_hour / mem_gb_hour / disk_gb_day 之類的單位過于抽象硼讽,很難意識到自己真正使用了多少資源巢价,所以根據(jù)算法直接將物理資源折算成人民幣,可以具體到每個任務運行花了多少錢固阁。

Spark 計算時會同時申請 mem 和 cpu 資源壤躲,如果一臺物理機內(nèi)存被申請完了,cpu 資源也是無法使用的备燃,所以根據(jù)物理機的配置折算成計算單元更為合理 1cu = (1C,5G)碉克,最后會根據(jù) cu 和存儲占用進行綜合計費。

通過計費的方式可以對資源進行更直觀的展現(xiàn):

  1. 從用戶的角度并齐,可以知道自己的某個任務計算花了多少錢漏麦,某個表存儲花了多少錢法瑟。

  2. 從公司的角度,能清晰的從報表上看到哪幾個部門用了多少錢唁奢,哪個Team用了多少錢霎挟。

  3. 從業(yè)務的角度,根據(jù)資源的使用可以更好的評估投入產(chǎn)出比以及業(yè)務價值麻掸,讓其更有動力去優(yōu)化業(yè)務代碼酥夭。

任務維度的計費


任務維度的計費

后記

18年上線后進行了四個月的跟蹤觀察,存量數(shù)據(jù)絕對值降低了20%脊奋,文件數(shù)量降低了 35%熬北,增量數(shù)據(jù)增速降低了80%,集群整體的內(nèi)存使用率提升了20%诚隙,同一作業(yè)的多次運行時間波動范圍下降了50%讶隐。

在整個治理過程中,技術只是其中的一小部分久又,同時還需要從行政上進行輔助巫延,否則效果將會大打折扣。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末地消,一起剝皮案震驚了整個濱河市炉峰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脉执,老刑警劉巖疼阔,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異半夷,居然都是意外死亡婆廊,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門巫橄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淘邻,“玉大人,你說我怎么就攤上這事嗦随×欣螅” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵枚尼,是天一觀的道長。 經(jīng)常有香客問我砂吞,道長署恍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任蜻直,我火速辦了婚禮盯质,結果婚禮上袁串,老公的妹妹穿的比我還像新娘。我一直安慰自己呼巷,他們只是感情好囱修,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著王悍,像睡著了一般破镰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上压储,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天鲜漩,我揣著相機與錄音,去河邊找鬼集惋。 笑死孕似,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的刮刑。 我是一名探鬼主播喉祭,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雷绢!你這毒婦竟也來了臂拓?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤习寸,失蹤者是張志新(化名)和其女友劉穎胶惰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體霞溪,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡孵滞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鸯匹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坊饶。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖殴蓬,靈堂內(nèi)的尸體忽然破棺而出匿级,到底是詐尸還是另有隱情,我是刑警寧澤染厅,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布痘绎,位于F島的核電站,受9級特大地震影響肖粮,放射性物質(zhì)發(fā)生泄漏孤页。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一涩馆、第九天 我趴在偏房一處隱蔽的房頂上張望行施。 院中可真熱鬧允坚,春花似錦、人聲如沸蛾号。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲜结。三九已至展运,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轻腺,已是汗流浹背乐疆。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贬养,地道東北人挤土。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像误算,于是被迫代替她去往敵國和親仰美。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容