国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

大數(shù)據(jù)環(huán)境下hadoop分布式文件系統(tǒng)分散式動(dòng)態(tài)副本存儲(chǔ)優(yōu)化策略研究

2019-03-20 14:19:01郭良君王圣芳
中國醫(yī)院統(tǒng)計(jì) 2019年1期
關(guān)鍵詞:副本備份集群

楊 蓮 郭良君 馬 磊 王圣芳

作者單位:1 250017 濟(jì)南,山東省腫瘤防治研究院

隨著大數(shù)據(jù)時(shí)代的來臨,數(shù)據(jù)在以前所未有的方式爆炸增長(zhǎng),從工業(yè)上的生產(chǎn)制造到生活中的電子商務(wù);從企業(yè)的信息管理系統(tǒng)到政府部門的電子政務(wù);從社交網(wǎng)絡(luò)上的媒體信息到在線視頻圖像資料,每天都伴隨著大量的數(shù)據(jù)產(chǎn)生,特別是hadoop海量異構(gòu)數(shù)據(jù)的存儲(chǔ)和處理給我們帶來了前所未有的機(jī)遇和挑戰(zhàn)。hadoop分布式文件系統(tǒng)(hadoop distributed file system,HDFS)因?yàn)榫哂泻芎梅€(wěn)定性和高效性,被很多大型企業(yè)用來處理海量數(shù)據(jù)。但是它依然有著一些自身的局限性,如:存儲(chǔ)效率不高、集群負(fù)載均衡能力比較差、NameNode單點(diǎn)故障、JobTrace負(fù)載過重、小文件問題、熱點(diǎn)問題等。這些問題都嚴(yán)重制約著HDFS的進(jìn)一步發(fā)展[1]。

近年來針對(duì)HDFS的不足,hadoop自身提供了3種解決方案:歸檔文件技術(shù)、序列文件技術(shù)和合并文件技術(shù),但都存在著各自的不足,沒有被廣泛地采用。而當(dāng)前的HDFS數(shù)據(jù)災(zāi)備技術(shù),也是主要基于復(fù)制或鏡像備份,這就意味著為了防范一時(shí)的災(zāi)難,平時(shí)就要閑置一倍以上的設(shè)備資源及其數(shù)據(jù)資源,造成了很大的資源開銷和成本浪費(fèi)。

1 HDFS優(yōu)化

HDFS采用master/slave架構(gòu)設(shè)計(jì),由兩類節(jié)點(diǎn)構(gòu)成,管理者namenode和工作者datanode這兩類節(jié)點(diǎn)相互分工又共同協(xié)作,分別以不同的模式運(yùn)行,完成各自的任務(wù)。

HDFS是通過多副本鏡像復(fù)制策略來實(shí)現(xiàn)備份操作的,默認(rèn)情況下副本系數(shù)為3,即HDFS的副本策略是將1/3的備份數(shù)據(jù)存儲(chǔ)在本地機(jī)架的某個(gè)節(jié)點(diǎn)中,另1/3的備份數(shù)據(jù)存儲(chǔ)在同一個(gè)機(jī)架的另一個(gè)datanode節(jié)點(diǎn)中,最后1/3的備份數(shù)據(jù)是存儲(chǔ)在不同機(jī)架上的某個(gè)datanode節(jié)點(diǎn)中。該策略確保了HDFS的數(shù)據(jù)移動(dòng)與安全機(jī)制[10]。

1.1 HDFS的優(yōu)勢(shì)

首先,HDFS是一種容錯(cuò)的分布式文件系統(tǒng)。HDFS所有數(shù)據(jù)經(jīng)由源數(shù)據(jù)生成后會(huì)立即進(jìn)行副本的備份操作,并將副本分別存儲(chǔ)到集群的各個(gè)節(jié)點(diǎn)中執(zhí)行數(shù)據(jù)的管理調(diào)度和數(shù)據(jù)的分析請(qǐng)求,允許節(jié)點(diǎn)數(shù)據(jù)出現(xiàn)災(zāi)難性崩潰的情況。

其次,HDFS可以部署在大量廉價(jià)設(shè)備集群上以節(jié)約存儲(chǔ)成本。HDFS采用的多副本鏡像復(fù)制策略保證了數(shù)據(jù)存儲(chǔ)的安全性和可靠性。通過增加數(shù)據(jù)的副本數(shù)量彌補(bǔ)硬件設(shè)備的不足,同時(shí)也減少了本地架構(gòu)與異地架構(gòu)之間數(shù)據(jù)傳輸?shù)臅r(shí)間開銷。

最后,在實(shí)際的數(shù)據(jù)讀寫操作過程中,HDFS的多副本復(fù)制策略實(shí)現(xiàn)了多節(jié)點(diǎn)傳輸,降低了對(duì)網(wǎng)絡(luò)傳輸總帶寬的依賴,在不損害數(shù)據(jù)可靠性和讀取操作效率的前提下,提高了對(duì)文件高效寫入操作的支持。

1.2 HDFS的劣勢(shì)

首先,HDFS整體存儲(chǔ)成本較高。以常用的3副本策略為例,實(shí)際所需存儲(chǔ)空間為存儲(chǔ)數(shù)據(jù)容量的3倍,直接增加了存儲(chǔ)硬件成本和文件索引的建立時(shí)間。此外,根據(jù)HDFS的架構(gòu),管理者namenode暫存所有存儲(chǔ)block文件塊的datanode節(jié)點(diǎn)的信息,并負(fù)責(zé)數(shù)據(jù)塊的備份操作,周期性地從集群中的各個(gè)節(jié)點(diǎn)接收反饋心跳信號(hào)以及block分塊的反饋狀態(tài)報(bào)告blockreport,namenode會(huì)根據(jù)這些反饋信息來監(jiān)測(cè)HDFS系統(tǒng)中block分塊數(shù)據(jù)映射的狀況信息。工作者datanode是HDFS分布式文件系統(tǒng)的實(shí)際操作節(jié)點(diǎn)。這些節(jié)點(diǎn)由管理者namenode統(tǒng)一調(diào)度,根據(jù)實(shí)際需要進(jìn)行文件的存儲(chǔ)操作或者數(shù)據(jù)塊的檢索操作。同時(shí),datanode節(jié)點(diǎn)還負(fù)責(zé)執(zhí)行管理者Namenode發(fā)出的對(duì)數(shù)據(jù)塊的增刪、查改等操作的指令,并周期性地向管理者namenode提交block數(shù)據(jù)塊的反饋心跳信號(hào)以及block分塊的反饋狀態(tài)報(bào)告。Block數(shù)量過多將對(duì)namenode的內(nèi)存造成非常大的壓力,降低了系統(tǒng)的可擴(kuò)展性。

其次,節(jié)點(diǎn)負(fù)載均衡能力不足。多副本策略對(duì)系統(tǒng)中的數(shù)據(jù)均維持相同數(shù)目的副本數(shù)量而不去加以區(qū)別對(duì)待,系統(tǒng)無法根據(jù)外界需求的變化動(dòng)態(tài)地去改變副本的數(shù)目,這直接導(dǎo)致了系統(tǒng)有限的負(fù)載均衡能力。

最后,可擴(kuò)展性低。在HDFS的多副本鏡像復(fù)制策略中,所有系統(tǒng)中的數(shù)據(jù)都要保持相同的副本數(shù)目,且系統(tǒng)無法根據(jù)外界實(shí)際需求的改變動(dòng)態(tài)調(diào)度已有的副本,這就導(dǎo)致了系統(tǒng)的靈活性及可擴(kuò)展性降低[13]。

1.3 HDFS優(yōu)化

1.3.1基于GE碼的HDFS存儲(chǔ)優(yōu)化策略

糾刪碼是一種線性數(shù)據(jù)編碼方式,它由于可以通過引入較少的數(shù)據(jù)冗余對(duì)數(shù)據(jù)傳輸和存儲(chǔ)提供較高的可靠性保證而被引進(jìn)到存儲(chǔ)系統(tǒng)中。(n,m)糾刪碼將m個(gè)輸入的源數(shù)據(jù)塊編碼產(chǎn)生n(n﹥m)個(gè)數(shù)據(jù)塊,其中任意m個(gè)數(shù)據(jù)塊都能通過解碼重構(gòu)出原始數(shù)據(jù)。應(yīng)用這種編碼方法,系統(tǒng)可以容忍的數(shù)據(jù)損壞上限是(n-m)個(gè)數(shù)據(jù)塊。GE碼是一類參數(shù)為[n,k,(n-k)/2+1]的垂直陣列碼。碼長(zhǎng)為n,信息為k。選取GE碼作為方案編碼的主要原因是:GE碼編譯速度快(算法復(fù)雜度為線性);數(shù)據(jù)容災(zāi)能力強(qiáng)。容災(zāi)能力在區(qū)間[0.30.0.35]內(nèi),即只需70%的分片數(shù)據(jù)即可完成對(duì)原始數(shù)據(jù)的恢復(fù)。

1.3.2基于FEC碼的HDFS云存儲(chǔ)優(yōu)化策略

基于FEC碼的HDFS優(yōu)化策略,該策略是針對(duì)云端存儲(chǔ)文件系統(tǒng)占用空間大,負(fù)載均衡能力差等問題進(jìn)行改進(jìn)的。其設(shè)計(jì)思想是把需要上傳的文件現(xiàn)進(jìn)行編碼分塊的操作,然后整合編碼后的輸出數(shù)據(jù),最后再把數(shù)據(jù)傳輸至云端的HDFS的分布式系統(tǒng)集群中。整個(gè)過程不進(jìn)行數(shù)據(jù)副本的備份操作或者只進(jìn)行少量的數(shù)據(jù)副本備份,降低了整個(gè)文件系統(tǒng)操作過程的空間開銷和傳輸代價(jià)。此外,基于FEC碼的HDFS優(yōu)化策略中加入了數(shù)據(jù)傳輸?shù)耐瓿尚詸z測(cè)工作,因此,該策略更適用于遠(yuǎn)程文件的傳輸[3]。

1.3.3基于XOR碼的HDFS 優(yōu)化存儲(chǔ)策略

基于XOR碼的優(yōu)化策略,其編碼和譯碼的方式相對(duì)簡(jiǎn)單,采用單一的異或運(yùn)算生成奇偶檢驗(yàn)碼parity,原始數(shù)據(jù)是按照stripe進(jìn)行分條目存儲(chǔ)的,且每一個(gè)stripe條目只會(huì)生成一個(gè)parity,當(dāng)某個(gè)stripe條目中丟失或者損壞了一個(gè)block數(shù)據(jù)塊時(shí),XOR碼優(yōu)化策略能夠通過異或校驗(yàn)的譯碼運(yùn)算過程進(jìn)行數(shù)據(jù)的恢復(fù)操作。

相比其他優(yōu)化方案,基于XOR碼的HDFS優(yōu)化存儲(chǔ)策略執(zhí)行效率更高,但由于譯碼操作只能恢復(fù)單一Block數(shù)據(jù)塊的數(shù)據(jù),即XOR碼的優(yōu)化策略中只允許出現(xiàn)一個(gè)數(shù)據(jù)塊失效的情況,所以,基于XOR碼的HDFS優(yōu)化策略對(duì)文件系統(tǒng)的糾錯(cuò)能力比較弱。

1.3.4基于范德蒙碼和動(dòng)態(tài)副本存儲(chǔ)的HDFS優(yōu)化存儲(chǔ)策略

范德蒙碼即范德蒙整列糾刪碼,包括2個(gè)方向:一是低密度級(jí)聯(lián)糾刪碼,代表有l(wèi)uby transform codes碼(LT碼);二是最大距離可分糾刪碼,代表有reed-solomon codes碼(RS碼)。兩種糾刪碼各有利弊,低密度級(jí)聯(lián)糾刪碼雖取得了很多進(jìn)展,但不適合大規(guī)模應(yīng)用到生產(chǎn)和生活中去;最大距離可分糾刪碼具有優(yōu)良的存儲(chǔ)空間代價(jià)和良好的容災(zāi)能力,使用對(duì)原始數(shù)據(jù)塊添加校驗(yàn)碼的方法降低數(shù)據(jù)存儲(chǔ)過程中的副本備份操作,在降低存儲(chǔ)開銷的同時(shí)仍能保證數(shù)據(jù)的可靠性,能夠平衡整體效率和編譯碼性能的問題。

在不影響HDFS 分散式存儲(chǔ)結(jié)構(gòu)的前提下,結(jié)合動(dòng)態(tài)副本存儲(chǔ)和伽羅華有限域理論對(duì)范德蒙碼的計(jì)算方法和計(jì)算模式進(jìn)行整體優(yōu)化,降低了編譯碼的時(shí)間代價(jià)和計(jì)算的內(nèi)存壓力,節(jié)約了HDFS約35%的存儲(chǔ)開銷,提高了HDFS系統(tǒng)節(jié)點(diǎn)負(fù)載均衡能力和譯碼恢復(fù)效率。

這種算法更適合于醫(yī)療專業(yè)文書的處理,解決臨床科研需求和數(shù)據(jù)供給2個(gè)方面的問題。既能節(jié)省了存儲(chǔ)容量,可以容納與日俱增且越發(fā)復(fù)雜化的醫(yī)療數(shù)據(jù),又能降低硬件服務(wù)器成本,為醫(yī)院節(jié)省資金開銷;更能快速查詢獲取數(shù)據(jù)池中的有效數(shù)據(jù),讓這些躺著的數(shù)據(jù)變成活的,充分發(fā)揮他們的臨床使用價(jià)值和科研價(jià)值。這一套完整的、系統(tǒng)的優(yōu)化方案,為未來HDFS的發(fā)展提供了一條有效途徑。

2 Hadoop實(shí)戰(zhàn)

在技術(shù)層面,大數(shù)據(jù)的處理涉及方方面面,在開源社區(qū)和商業(yè)公司的推動(dòng)下,各種工具和類庫很多。其中,hadoop是當(dāng)前最流行的大數(shù)據(jù)處理工具之一,從2016年誕生以來,已經(jīng)有無數(shù)數(shù)據(jù)分析公司成功部署在實(shí)際的生產(chǎn)環(huán)境中。

2.1 Hadoop集群服務(wù)器的安裝與配置

Hadoop最早就是在Linux平臺(tái)上開發(fā)的,筆者所用的操作系統(tǒng)為CentOS 7.2。用虛擬機(jī)(VMware Workstations12)來虛擬一個(gè)集群。

運(yùn)行hadoop任務(wù),首先就需要提供Java的運(yùn)行環(huán)境。CentOS7已經(jīng)內(nèi)置安裝了Java的開源版本openJDK,安裝oracle JDK之前,要確認(rèn)所使用的Linux操作系統(tǒng)的信息是32位還是64位操作系統(tǒng),然后再下載對(duì)應(yīng)版本的JDK。在配置hadoop分布式安裝過程中,我們需要配置SSH的無密碼登錄。如果不配置免密碼登錄,每次啟動(dòng)hadoop時(shí),需要多臺(tái)實(shí)體機(jī)(或虛擬機(jī))之間相互通信(即在namenode和datanode之間發(fā)送或者讀取數(shù)據(jù)),都需要輸入密碼以登錄到每臺(tái)機(jī)器上。比如在hadoop運(yùn)行過程中,namenode需要啟動(dòng)和停止各個(gè)datanode上的各種守護(hù)進(jìn)程。SSH(secure shell)是建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié)議,利用SSH協(xié)議可有效防止遠(yuǎn)程管理過程中的信息泄露。在構(gòu)建hadoop集群時(shí),我們需要配置SSH,以無密碼公鑰認(rèn)證的形式,使namenode使用SSH無密碼登錄,并啟動(dòng)nataname進(jìn)程。

最新版本2.7.2,點(diǎn)擊“binary”鏈接,進(jìn)入下載頁面,點(diǎn)擊下載鏈接即可下載。Hadoop運(yùn)行起來,還需要做一些必要的配置工作。為了讓hadoop正常工作,可以運(yùn)行本地模式、偽分布模式和全分布模式3種模式。正確地配置屬性很多,不同的配置會(huì)導(dǎo)致hadoop運(yùn)行在不同的模式下。在本地模式無須開啟守護(hù)進(jìn)程,故此可直接使用hadoop,無須啟動(dòng)。首先,我們依次啟動(dòng)HDFS,YARN和mapreduce守護(hù)進(jìn)程,在終端輸入下面幾行命令:

start-dfs.sh

start-yarn.sh

mr-jobhistory-daemon.sh start historyserver

運(yùn)行這3行命令,會(huì)在用戶的機(jī)器上開啟如下6個(gè)后臺(tái)進(jìn)程:namenode、secondarynamenode、datanode(HDFS)、resourcemanager、nodemanager(YARN)和jobhistoryserver(mapreduce)。

可以使用Java提供的jps命令,列出所有的守護(hù)進(jìn)程來驗(yàn)證安裝正確。hadoop提供了基于Web的管理工具,Web可以用來驗(yàn)證hadoop是否正確啟動(dòng)。其中namenode的URL為http://localhost:5070,resourcemanager(資源管理器)的為http://lacalhost:8088/,historyserver(歷史服務(wù)器)的為http://localhost:19888/。

2.2 全分布模式下的hadoop集群構(gòu)建

本地模式和偽分布模式均用于開發(fā)與調(diào)試。真實(shí)hadoop集群的運(yùn)行采用的是全分布模式。在系統(tǒng)安裝CentOS以后,默認(rèn)開機(jī)會(huì)打開圖形界面(最小化安裝除外),但是圖形界面會(huì)浪費(fèi)很多資源,而且對(duì)于實(shí)打?qū)嵉姆植际接?jì)算而言,花哨的圖形界面并沒有什么實(shí)際用處,所以我們可以設(shè)置開機(jī)以字符界面啟動(dòng),以節(jié)省資源,特別是對(duì)于用同一臺(tái)機(jī)器開啟多個(gè)虛擬機(jī)來模擬集群,這種模式更是有一定的意義。Linux系統(tǒng)有以下4個(gè)運(yùn)行級(jí)別(run level)。

運(yùn)行級(jí)別0:系統(tǒng)停機(jī)狀態(tài)。系統(tǒng)默認(rèn)運(yùn)行級(jí)別不能設(shè)為0,否則不能正常啟動(dòng)。

運(yùn)行級(jí)別1:?jiǎn)斡脩裟J?。在此模式下,主要用于系統(tǒng)維護(hù),只能由管理員(即root)進(jìn)入。由于啟動(dòng)時(shí),文件系統(tǒng)雖被加載,但網(wǎng)絡(luò)模塊卻沒有被載入,因此無法通過網(wǎng)絡(luò)遠(yuǎn)程登錄。

運(yùn)行級(jí)別2:多用戶模式。這種運(yùn)行態(tài),雖然支持用戶通過網(wǎng)絡(luò)進(jìn)行登錄,但不支持網(wǎng)絡(luò)文件系統(tǒng)(network file system,NFS)。

運(yùn)行級(jí)別3:完全的多用戶模式(支持NFS),登錄后進(jìn)入控制臺(tái)命令行模式。

2.3 本策略的創(chuàng)新

本研究對(duì)大數(shù)據(jù)的有效存儲(chǔ)問題進(jìn)行了研究,提出了一種基于范德蒙碼的HDFS分散式動(dòng)態(tài)副本優(yōu)化存儲(chǔ)算法:針對(duì)HDFS存儲(chǔ)成本過高的問題,采用了基于范德蒙碼的編譯碼操作對(duì)HDFS進(jìn)行數(shù)據(jù)優(yōu)化,摒棄HDFS原本的多副本鏡像復(fù)制策略;加入分散式動(dòng)態(tài)副本控制思想,改進(jìn)單純范德蒙碼策略無法應(yīng)對(duì)災(zāi)難性機(jī)架和節(jié)點(diǎn)失效的問題;采用分組分列策略以及有限域理論對(duì)譯碼操作的計(jì)算過程、計(jì)算模式和計(jì)算方法進(jìn)行改進(jìn),精簡(jiǎn)矩陣運(yùn)算的步驟;根據(jù)范德蒙碼輸出矩陣的特點(diǎn),改進(jìn)譯碼觸發(fā)操作的時(shí)機(jī),降低譯碼操作觸發(fā)的頻率。其優(yōu)勢(shì)有如下3個(gè)方面:

1)HDFS是一種容錯(cuò)的分布式文件系統(tǒng),所有數(shù)據(jù)經(jīng)由源數(shù)據(jù)生成后會(huì)立即進(jìn)行副本的備份操作,并將副本分別存儲(chǔ)到集群的各個(gè)節(jié)點(diǎn)中執(zhí)行數(shù)據(jù)的管理調(diào)度和數(shù)據(jù)的分析請(qǐng)求,允許節(jié)點(diǎn)數(shù)據(jù)出現(xiàn)災(zāi)難性崩潰的情況。這樣假設(shè)醫(yī)院數(shù)據(jù)庫崩塌后,另一個(gè)容災(zāi)備份系統(tǒng)啟用,不妨礙醫(yī)院業(yè)務(wù)的正常進(jìn)行。

2)HDFS可以部署在大量廉價(jià)設(shè)備集群上以節(jié)約存儲(chǔ)成本,HDFS采用的多副本鏡像復(fù)制策略保證了數(shù)據(jù)存儲(chǔ)的安全性和可靠性,通過增加數(shù)據(jù)的副本數(shù)量彌補(bǔ)硬件設(shè)備的不足,同時(shí)也減少了本地機(jī)架與異地機(jī)架之間數(shù)據(jù)傳輸?shù)臅r(shí)間開銷。這樣可以節(jié)省醫(yī)院對(duì)信息化建設(shè)硬件存儲(chǔ)設(shè)備的資金投入,又加快了數(shù)據(jù)的查詢和調(diào)取。

3)在實(shí)際的數(shù)據(jù)讀寫操作過程中,HDFS的多副本復(fù)制策略實(shí)現(xiàn)了多節(jié)點(diǎn)傳輸,降低了對(duì)網(wǎng)絡(luò)傳輸總帶寬的依賴,在不損害數(shù)據(jù)可靠性和讀取操作效率的前提下,提高了對(duì)文件高效寫入操作的支持。這樣可以更快速查詢獲取數(shù)據(jù)池中的有效數(shù)據(jù),讓這些躺著的數(shù)據(jù)變成活的,充分發(fā)揮他們的臨床使用價(jià)值和科研價(jià)值。

猜你喜歡
副本備份集群
“備份”25年:鄧清明圓夢(mèng)
海上小型無人機(jī)集群的反制裝備需求與應(yīng)對(duì)之策研究
面向流媒體基于蟻群的副本選擇算法①
一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
電子制作(2018年11期)2018-08-04 03:25:40
Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
勤快又呆萌的集群機(jī)器人
副本放置中的更新策略及算法*
淺析數(shù)據(jù)的備份策略
科技視界(2015年6期)2015-08-15 00:54:11
樹形網(wǎng)絡(luò)中的副本更新策略及算法*
出版原圖數(shù)據(jù)庫遷移與備份恢復(fù)
波密县| 息烽县| 桐乡市| 汉川市| 砀山县| 胶南市| 宁津县| 鲜城| 九江市| 出国| 临江市| 思茅市| 海门市| 丰顺县| 凤冈县| 南部县| 常宁市| 思茅市| 康乐县| 伽师县| 屯门区| 南川市| 象州县| 措美县| 田阳县| 龙里县| 眉山市| 寻乌县| 锡林郭勒盟| 安吉县| 西盟| 东莞市| 高青县| 永登县| 海口市| 江阴市| 青神县| 青龙| 扬州市| 鹿邑县| 获嘉县|