自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你經(jīng)歷過(guò)完整的大數(shù)據(jù)平臺(tái)遷移嗎?

大數(shù)據(jù)
大數(shù)據(jù)集群遷移這件事,不知道有多少同學(xué)做過(guò)(反正我是第一次)。我說(shuō)的不是簡(jiǎn)單的把一個(gè)集群的數(shù)據(jù)拷貝到另一個(gè)集群上,我指的是整個(gè)數(shù)據(jù)處理平臺(tái)與相關(guān)的前臺(tái)業(yè)務(wù)的遷移工作,是從一個(gè)機(jī)房到另一個(gè)機(jī)房。

[[420780]]

大家好,我是一哥,曾經(jīng)那一晚經(jīng)歷過(guò)一次大數(shù)據(jù)平臺(tái)遷移,回想起來(lái)歷歷在目!

1.背景

大數(shù)據(jù)集群遷移這件事,不知道有多少同學(xué)做過(guò)(反正我是第一次)。我說(shuō)的不是簡(jiǎn)單的把一個(gè)集群的數(shù)據(jù)拷貝到另一個(gè)集群上,我指的是整個(gè)數(shù)據(jù)處理平臺(tái)與相關(guān)的前臺(tái)業(yè)務(wù)的遷移工作,是從一個(gè)機(jī)房到另一個(gè)機(jī)房。

剛開(kāi)始接到遷移通知,想著沒(méi)什么問(wèn)題,一個(gè)月應(yīng)該可以搞定(畢竟無(wú)知者無(wú)畏)??墒钱?dāng)著手寫遷移方案時(shí),自己卻不知道從何處下手。當(dāng)?shù)谝淮尾僮鬟w移討論時(shí),面對(duì)大家提出的問(wèn)題,我才明白這是一個(gè)艱巨的任務(wù)啊,很有可能是一項(xiàng)吃力不討好的工作。但是現(xiàn)有小機(jī)房,已經(jīng)沒(méi)有增加機(jī)柜的位置了。面對(duì)業(yè)務(wù)不斷的增長(zhǎng),以及來(lái)自各個(gè)業(yè)務(wù)方的數(shù)據(jù)處理需求以及每天收到的幾百條CPU告警和幾十條存儲(chǔ)告警,我們已經(jīng)別無(wú)選擇,就是一個(gè)字,干!

此次遷移是異地遷移。并且此次遷移帶寬有限制。按照剛開(kāi)始提供的帶寬計(jì)算,遷移全部數(shù)據(jù)需要近半年。比較麻煩的事,遷移過(guò)程中還存在歷史數(shù)據(jù)刷新問(wèn)題,也就是說(shuō)有部分?jǐn)?shù)據(jù),你遷了也是白遷。

2.方案

要說(shuō)遷移這件事多么有趣,還得從那個(gè)寒冬晚上說(shuō)起,只記得那天晚上的風(fēng)特別的冷!一群小伙伴接到遷移平臺(tái)的通知后,就開(kāi)始了準(zhǔn)備工作。大家每天晚上都是一通討論,當(dāng)時(shí)我們還提出了,直接下架服務(wù)器,搬遷到新機(jī)房,上架、上電、啟動(dòng)、恢復(fù)業(yè)務(wù)?,F(xiàn)在想想也是不能這樣做了,畢竟服務(wù)器這東西還是很脆弱的。(萬(wàn)一起不來(lái),根本沒(méi)法回退啊)。

還是老老實(shí)實(shí)的遷移數(shù)據(jù)吧。

整理思路就是,新集群部署完成后,先遷移歷史近三個(gè)月數(shù)據(jù)進(jìn)行各系統(tǒng)測(cè)試。測(cè)試后無(wú)問(wèn)題,開(kāi)始同步所有歷史數(shù)據(jù),待上線前,同步當(dāng)前時(shí)段未遷移的數(shù)據(jù)。有沒(méi)有很簡(jiǎn)單,是的,看著很簡(jiǎn)單。但是,我司大數(shù)據(jù)平臺(tái)還和外部業(yè)務(wù)系統(tǒng)存在著千絲萬(wàn)縷的關(guān)系,還有些業(yè)務(wù)停服的時(shí)間窗口在一小時(shí)內(nèi),這好難了。畢竟不是一人吃飽,全家不餓啊。

先來(lái)看一下我司大數(shù)據(jù)平臺(tái)現(xiàn)狀吧,一張圖,如下:

[[420781]]

此次遷移涉及前端和后端,前端門戶、報(bào)表、指標(biāo)等需要在新環(huán)境重新部署,并且遷移歷史數(shù)據(jù),其中消息隊(duì)列,關(guān)系型數(shù)據(jù)庫(kù)等數(shù)據(jù)也需要遷移。后端主要是Hadoop、MPP和ETL工具。此次遷移并不是現(xiàn)有機(jī)器完全的遷移,實(shí)時(shí)處理業(yè)務(wù)暫不在本次遷移中。所以遷移內(nèi)容和未遷移之前是否存在耦合,也是遷移工作需要解決的一部分。

在預(yù)期的時(shí)間內(nèi),風(fēng)險(xiǎn)可控的完成大數(shù)據(jù)平臺(tái)遷移工作,單依賴網(wǎng)絡(luò)這點(diǎn)帶寬同步數(shù)據(jù)是不行的,所有我們制定了大致遷移流程如下:

  • 先梳理任務(wù)運(yùn)行中所需要的表的最小周期數(shù)據(jù)。
  • 根據(jù)梳理出來(lái)的任務(wù)正常運(yùn)行所需要的最小周期數(shù)據(jù)的表,同步對(duì)應(yīng)表的周期數(shù)據(jù)到新集群。
  • 然后每天對(duì)比差異數(shù)據(jù),增量同步差異數(shù)據(jù)。
  • 使用同步的歷史數(shù)據(jù),對(duì)新集群進(jìn)行功能以及性能測(cè)試
  • 開(kāi)始對(duì)新老平臺(tái)進(jìn)行任務(wù)并行運(yùn)行
  • 核對(duì)任務(wù)并行期間數(shù)據(jù)質(zhì)量
  • 根據(jù)核對(duì)質(zhì)量,選擇時(shí)間窗口進(jìn)行平臺(tái)切換

3.問(wèn)題

在實(shí)際遷移過(guò)程中,哪部分最難?不是新集群搭建,不是數(shù)據(jù)同步,是如何保障遷移新集群后數(shù)據(jù)的準(zhǔn)確性??赡苣銜?huì)說(shuō),這不是也很簡(jiǎn)單,你不是兩個(gè)集群并行運(yùn)行了,頭一天運(yùn)行,第二天對(duì)比結(jié)果不就行了。然后現(xiàn)實(shí)總是殘酷的,你會(huì)發(fā)現(xiàn)運(yùn)行后,新老平臺(tái)跑出來(lái)的數(shù)據(jù)差異太大。為什么呢?數(shù)據(jù)跑出來(lái)結(jié)果一樣的前提是數(shù)據(jù)源必須一致,運(yùn)行程序也一致。然而兩者我們都很難保持一致。

首先是數(shù)據(jù)源,現(xiàn)有生產(chǎn)系統(tǒng)存在一個(gè)問(wèn)題,就是數(shù)據(jù)每時(shí)每刻基本都在刷新,歷史數(shù)據(jù)的也在刷新,我們很難實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)是什么時(shí)候刷新的,刷新了哪些歷史數(shù)據(jù)(依靠人工,難免會(huì)有疏漏,也需要大量的人力保障)。有些數(shù)據(jù)源結(jié)構(gòu)甚至都會(huì)發(fā)生變化。運(yùn)行的程序同樣也可能隨時(shí)發(fā)生變化。解決以上問(wèn)題,我們就必須要對(duì)目前生產(chǎn)進(jìn)行一些限制。數(shù)據(jù)源,我們每天會(huì)定時(shí)檢查,同步歷史差異。數(shù)據(jù)源表結(jié)構(gòu)發(fā)生變化,我們通過(guò)解析變更的DDL語(yǔ)句在新環(huán)境進(jìn)行同步。運(yùn)行程序通過(guò)定時(shí)從老環(huán)境中拉取到新環(huán)境。

對(duì)于抽取生產(chǎn)庫(kù)的數(shù)據(jù)源,由于不同時(shí)刻抽取的數(shù)據(jù)可能不一致,就會(huì)導(dǎo)致最終并行跑出來(lái)的結(jié)果對(duì)比不一致,針對(duì)該部分?jǐn)?shù)據(jù)源,直接采用同步數(shù)據(jù)方式來(lái)保障數(shù)據(jù)源一致。針對(duì)很多文件接口的任務(wù),由于文件接口涉及文件采集后刪除源文件等操作,有人說(shuō)修改為不刪除,新老并行跑進(jìn)行驗(yàn)證就好了。但是我們的文件接口太多了,修改的工作量較大,而且考慮到人工修改可能會(huì)影響到現(xiàn)在生產(chǎn)環(huán)境,就放棄了(此處提醒下各位在系統(tǒng)設(shè)計(jì)之初一定要考慮好方案,否則以后遷移一次,哭一次),該部分?jǐn)?shù)據(jù)源也是直接同步了。但是該部分接口涉及到的腳本和網(wǎng)絡(luò)策略,我們都要人工梳理出來(lái),一個(gè)一個(gè)檢查驗(yàn)證,雖然沒(méi)有并行每天跑,但是還是經(jīng)過(guò)驗(yàn)證的,心里也有底了。

本次遷移的總體目標(biāo)

遷移期間,大數(shù)據(jù)平臺(tái)的服務(wù)不能長(zhǎng)時(shí)間下線(最多小時(shí)級(jí)別),不能對(duì)公司小時(shí)業(yè)務(wù)造成影響。

必須確保遷移完成后,影響生產(chǎn)業(yè)務(wù)的正確性和核心業(yè)務(wù)指標(biāo)的正確性。

對(duì)于和外部系統(tǒng)重度耦合的業(yè)務(wù),需要給業(yè)務(wù)方足夠的時(shí)間,盡量減少業(yè)務(wù)方改造工作量,必須有模擬割接驗(yàn)證后才能上線。

本次遷移的原則

  • 一切遷移工作和步驟,要以不影響線上業(yè)務(wù)為標(biāo)準(zhǔn)。
  • 凡是可能出錯(cuò),不能一步做到位的環(huán)節(jié),都必須要有事前驗(yàn)證測(cè)試的手段。
  • 能并行運(yùn)行的業(yè)務(wù)盡量并行運(yùn)行,核對(duì)數(shù)據(jù)無(wú)誤后,才具備割接條件。
  • 遷移工作中,能自動(dòng)化的自動(dòng)化,不能自動(dòng)化的,要給出梳理驗(yàn)證標(biāo)準(zhǔn),不能靠人工去猜。
  • 要有回退方案,以防萬(wàn)一。

保障了這么多,大家似乎看出來(lái)了最難的部分,就是數(shù)據(jù)準(zhǔn)確性保障!其實(shí)遷移所做的一切都是為了讓遷移后,各個(gè)業(yè)務(wù)依然能夠回去準(zhǔn)確的指標(biāo)數(shù)據(jù),而不是僅僅使用新環(huán)境。但是,還有一樣,我們最容易忽略的,就是操作步驟,我指的是真實(shí)割接時(shí)候的操作步驟,命令級(jí)別的。我們想要的效果就是割接當(dāng)晚,任何一個(gè)人拿著操作步驟都能執(zhí)行遷移過(guò)程。

4.總結(jié) 

現(xiàn)在想想這個(gè)太難了,雖然現(xiàn)在割接成功了,但是仍然不敢說(shuō)已經(jīng)達(dá)到這一標(biāo)準(zhǔn)。割接涉及主機(jī)、數(shù)據(jù)庫(kù)、后端、前端等操作人員,割接當(dāng)晚出現(xiàn)有模塊沒(méi)有嚴(yán)格按照操作步驟執(zhí)行,有團(tuán)隊(duì)出現(xiàn)多業(yè)務(wù)操作步驟交叉而沒(méi)有提前溝通。所以,割接時(shí)一定要安排有經(jīng)驗(yàn)的,對(duì)系統(tǒng)整體較熟悉的同事在現(xiàn)場(chǎng)支撐,以防萬(wàn)一??!

本文轉(zhuǎn)載自微信公眾號(hào)「數(shù)據(jù)社」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系數(shù)據(jù)社公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: 數(shù)據(jù)社
相關(guān)推薦

2022-05-10 08:57:56

死鎖程序線程

2021-12-28 21:52:14

訂單

2017-05-26 18:30:34

華為

2020-02-12 12:45:23

云遷移大數(shù)據(jù)云計(jì)算

2015-03-30 10:56:14

大數(shù)據(jù)大數(shù)據(jù)價(jià)值

2017-11-27 11:26:35

程序員Bug調(diào)試

2018-07-17 16:26:17

大數(shù)據(jù)營(yíng)銷消費(fèi)者

2021-03-14 15:05:22

大數(shù)據(jù)程序員游戲

2020-09-20 22:14:14

編程PythonJava

2015-05-14 15:56:27

2021-08-30 15:41:13

Kafka運(yùn)維數(shù)據(jù)

2020-12-21 14:42:42

大數(shù)據(jù)云計(jì)算人工智能

2013-03-22 10:20:22

2017-07-13 11:13:18

大數(shù)據(jù)數(shù)據(jù)存儲(chǔ)

2016-08-04 16:30:49

華為

2015-02-28 13:32:01

搜索大數(shù)據(jù)營(yíng)銷

2018-07-25 15:40:10

云平臺(tái)遷移云計(jì)算

2021-07-31 23:13:29

大數(shù)據(jù)數(shù)據(jù)分析技術(shù)

2017-11-27 10:53:00

大數(shù)據(jù)租房數(shù)據(jù)分析

2017-11-24 12:52:01

大數(shù)據(jù)數(shù)據(jù)分析房租
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)