Hadoop也需要有數(shù)據(jù)生命周期管理
在數(shù)據(jù)倉(cāng)庫(kù)中肯定是要實(shí)施數(shù)據(jù)生命周期管理的,因?yàn)槲覀冊(cè)趯?shí)際使用中發(fā)現(xiàn)對(duì)于數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)訪問(wèn)存在典型的二八原則,即通常80%的訪問(wèn)集中在20%的數(shù)據(jù)上,這個(gè)結(jié)論是我們抽查了幾個(gè)省的數(shù)據(jù)倉(cāng)庫(kù)后確認(rèn)的,甚至有的省由于數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)的不一樣(比如日表、月表)等顯現(xiàn)得更加明顯?;谶@樣的情況,為了讓數(shù)據(jù)倉(cāng)庫(kù)運(yùn)行得更加高效,同時(shí)能低成本的存儲(chǔ)長(zhǎng)期的數(shù)據(jù),約一半以上的省公司數(shù)據(jù)倉(cāng)庫(kù)實(shí)現(xiàn)了按照數(shù)據(jù)生命周期的分庫(kù)。
但是當(dāng)我們將目光轉(zhuǎn)向Hadoop的時(shí)候,發(fā)現(xiàn)同樣的問(wèn)題依然存在。我們希望讓Hadoop來(lái)承載海量結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ),以及部分的數(shù)據(jù)加工,也許以后還會(huì)通過(guò)HIVE或者PIG的方式承載一些高端的即席查詢?nèi)蝿?wù)。這種混合而不是單一的任務(wù)注定了也需要實(shí)施生命周期管理,因?yàn)閿?shù)據(jù)加工通常是對(duì)近段時(shí)間的數(shù)據(jù)進(jìn)行,而數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)查詢則需要對(duì)歷史數(shù)據(jù)進(jìn)行。
根據(jù)訪問(wèn)頻次和響應(yīng)時(shí)間以及吞吐率的需求不同,我們可以通過(guò)幾種方式來(lái)進(jìn)行數(shù)據(jù)生命周期管理。
一、在一個(gè)Hadoop系統(tǒng)中,通過(guò)不同的壓縮率、塊大小和副本數(shù)量來(lái)控制。對(duì)于歸檔的數(shù)據(jù),可以使用較高的壓縮率,較大的塊和較少的副本來(lái)保存。因?yàn)檩^高的壓縮率需要較長(zhǎng)的解壓時(shí)間、較大的塊可以節(jié)約NameNode的空間,較少的副本(但仍需要保證數(shù)據(jù)安全)雖然會(huì)減少M(fèi)ap任務(wù)的本地調(diào)度幾率,但是由于頻率較少所以影響不大。
二、組成兩個(gè)HDFS系統(tǒng)。一個(gè)是專門為高性能計(jì)算設(shè)計(jì)的,有較多的高性能磁盤(SAS盤)、CPU和內(nèi)存,系統(tǒng)存儲(chǔ)容量不用太大。另外一個(gè)專門為歷史數(shù)據(jù)存儲(chǔ)和查詢?cè)O(shè)計(jì),用較多的高容量磁盤(SATA盤)、較少比例的CPU和內(nèi)存。兩個(gè)系統(tǒng)中的數(shù)據(jù)對(duì)象通過(guò)一個(gè)第三方組件來(lái)進(jìn)行透明的管理,兩個(gè)系統(tǒng)中的數(shù)據(jù)通過(guò)Hadoop中一個(gè)專門用來(lái)在兩個(gè)HDFS中導(dǎo)數(shù)據(jù)的組件,通過(guò)MapReduce來(lái)進(jìn)行高效的數(shù)據(jù)同步。在數(shù)據(jù)處理方面,兩個(gè)系統(tǒng)可以配置在一套JobTrack上,也可以僅讓第二套系統(tǒng)承擔(dān)HDFS的任務(wù),所有的MapReduce任務(wù)都放在第一套高性能系統(tǒng)上去實(shí)現(xiàn),讓它再去訪問(wèn)第二套系統(tǒng)的HDFS。
個(gè)人感覺兩個(gè)也許可以混合起來(lái)用,當(dāng)然這加大了系統(tǒng)的復(fù)雜度,需要同步加強(qiáng)管控。