亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Hadoop的深入探究

        2017-04-16 11:57:29山東科技大學數(shù)學與系統(tǒng)工程學院秦懷強
        電子世界 2017年5期
        關(guān)鍵詞:鍵值分片磁盤

        山東科技大學數(shù)學與系統(tǒng)工程學院 秦懷強

        Hadoop的深入探究

        山東科技大學數(shù)學與系統(tǒng)工程學院 秦懷強

        本文對Hadoop的架構(gòu)設(shè)計進行了深入的研究,分別分析了它的兩個核心功能組件HDFS和MapReduce的系統(tǒng)架構(gòu)、實現(xiàn)原理和特點。

        大數(shù)據(jù);Hadoop;偽分布式;HDFS

        Hadoop的核心技術(shù):

        對于Hadoop這一大數(shù)據(jù)處理平臺,需要了解的是它具有的兩個核心功能:分布式存儲和分布式計算。Hadoop分布式存儲是由其文件系統(tǒng)HDFS實現(xiàn)的,而其分布式計算則是由它自帶的計算框架MapReduce實現(xiàn)的[1]。

        Hadoop在部署安裝時一般會由一臺服務(wù)器作為master,一臺服務(wù)器作為SecondaryNameNode,多臺服務(wù)器作為slave。

        (1)Hadoop的核心之HDFS

        Hadoop架構(gòu)中的master和slave在HDFS中分別扮演NameNode和DataNode的角色。一個超大文件在存儲到HDFS上時會由NameNode對其進行分片(這里僅針對文件的內(nèi)容數(shù)據(jù)進行分片),每一個分片是一個block,而每一個block的大小可以由用戶自己設(shè)定(一般設(shè)定為64MB)。一個文件的所有block會由NameNode決定將其存儲到哪個DataNode上。一個相同的block會存儲到不同的DataNode上(一般是3個),這種副本機制是為了保證數(shù)據(jù)的安全存儲,使其不易丟失[2]。Hadoop的HDFS由NameNode、Secondary NameNode和DataNode三部分組成,這三個部分我們都可以簡單的將其看做一臺普通的計算機。其中,在NameNode上主要存儲的數(shù)據(jù)是:文件的元數(shù)據(jù)、文件的分塊信息、文件的每個分塊與DataNode的映射信息。文件的元數(shù)據(jù)為:文件名、文件大小、文件存儲位置等除了文件內(nèi)容數(shù)據(jù)之外的所有文件數(shù)據(jù)。文件的分塊信息指的是文件被分成了多少塊。并且,這兩部分數(shù)據(jù)是存儲在NameNode的磁盤上,文件名為fsimage,其會在HDFS啟動時被加載到NameNode的內(nèi)存中。而文件的每個分塊與DataNode的映射信息不會存儲在NameNode的磁盤上,而是在HDFS啟動時由DataNode的心跳機制上報給NameNode的內(nèi)存。在DataNode上存儲的數(shù)據(jù)是文件的內(nèi)容數(shù)據(jù),即每一個block。而且,文件的內(nèi)容數(shù)據(jù)都是存儲在DataNode的磁盤上。在啟動HDFS時,DataNode會向NameNode上報它自己存儲的所有的映射信息。對于NameNode來說,用戶的每一步操作并不會立馬修改其上的fsimage文件,而是生成一個edits文件用來存儲用戶的操作信息。edits文件的大小會有相應(yīng)的上限設(shè)置制(具體的可以自己設(shè)定,但一般設(shè)定為64MB),在edits文件大小達到上限或用戶操作時間超過了3600秒時,NameNode會將edits文件和fsimage文件同時傳給SecondaryNameNode,由SecondaryNameNode根據(jù)edits來修改fsimage(如果在Hadoop架構(gòu)中沒有設(shè)計SecondaryNameNode,則會由NameNode執(zhí)行這種合并機制。在架構(gòu)中設(shè)計SecondaryNameNode的原因是為了減少NameNode的負載,使其能更加高效的處理用戶的請求)。最后,再由SecondaryNameNode將修改后的fsimage回傳給NameNode。而且,在HDFS啟動期間,這些操作會依據(jù)用戶的操作和系統(tǒng)狀況不斷進行。

        (2)Hadoop的核心之MapReduce

        Hadoop架構(gòu)中的master和slave在MapReduce中分別扮演ResourceManager和NodeManager的角色。其中ResourceManager會分配用戶寫好的MapReduce程序,NodeManager則會執(zhí)行MapReduce程序。

        MapReduce計算框架是移動計算而不是移動數(shù)據(jù),即將程序移動到其需要的數(shù)據(jù)所在的那臺服務(wù)器上,而不是將程序需要的數(shù)據(jù)調(diào)用到程序最初存在的那臺服務(wù)器上。然后,我們在編寫MapReduce程序時,可以將其簡單的分為Map子程序、Reduce子程序和主程序。其中,Map子程序的作用是將輸入的數(shù)據(jù)依照某種目的構(gòu)造成鍵值對(一種數(shù)據(jù)存儲形式)輸出。而Reduce子程序則是根據(jù)某種目的來處理Map子程序的輸出鍵值對,最后再以鍵值對的形式輸出結(jié)果。主程序則是對框架程序的運行進行一些相關(guān)的配置。MapReduce程序中的Map和Reduce子程序會被ResourceManager分發(fā)到Hadoop集群中的不同服務(wù)器上,MapReduce計算框架大體可以分成5個部分:split、Map、Shuffle、Reduce和output。其中,split、Map和Shuffle的前半部分在Map端(可以簡單的理解為一臺計算機)執(zhí)行。而Shuffle的后半部分、Reduce和output在Reduce端執(zhí)行。在一個Hadoop集群中會存在多個Map端和Reduce端。MapReduce框架的工作流程為:首先,split部分將輸入數(shù)據(jù)(即在Map端上的block)以某種形式進行分片。然后,分片會被遞交給Map子程序。Map子程序?qū)⒎制瑪?shù)據(jù)以鍵值對的形式輸出。然后,就到了Shuffle階段,這一階段指的是從Map子程序輸出到Reduce子程序輸入這一過程。這一階段有兩部分構(gòu)成,一部分在Map端,一部分在Reduce端,而且其操作主要有三個部分:分區(qū)、排序和將數(shù)據(jù)溢出到磁盤。最后,再由Reduce子程序?qū)?shù)據(jù)進行處理,并將最后的結(jié)果以鍵值對的形式輸出。

        Map子程序會在Map端擁有劃給它的一部分內(nèi)存(一般為64MB)來存儲它的輸出數(shù)據(jù)。當這部分內(nèi)存被存滿的時候,這些數(shù)據(jù)會被轉(zhuǎn)存到Map端磁盤上。但在轉(zhuǎn)存的的過程中,partition程序(框架中自帶的,一般是執(zhí)行Hash模運算操作,當然也可以自己定義)會對這部分數(shù)據(jù)進行分區(qū)。即將這些數(shù)據(jù)標識上相應(yīng)分區(qū)的標簽,并相鄰存儲。分區(qū)的結(jié)果是不同的分區(qū)數(shù)據(jù)最終會被分配給不同的Reduce子程序執(zhí)行。并且在執(zhí)行完分區(qū)操做后還會對這部分數(shù)據(jù)進行排序操作(一般是依照數(shù)據(jù)ASCII碼的大小來排序)。最后,這部分數(shù)據(jù)會存儲到Map端磁盤上。上述操作只是一次Map子程序輸出數(shù)據(jù)存滿Map端劃分內(nèi)存的操作。多次這種操作還會導致combiner程序(框架中自帶,當然用戶也可以自己定義)將Map端磁盤上的數(shù)據(jù)依據(jù)某種規(guī)則合并。當Map子程序?qū)⒁粋€分片的輸入數(shù)據(jù)處理完后,Map端磁盤上的數(shù)據(jù)會被依照分區(qū)標簽傳送給相應(yīng)的Reduce子程序執(zhí)行(當然若Map程序在處理完一個分片數(shù)據(jù)的操作后Map端劃分內(nèi)存沒滿,則上述的操作都只是在Map端劃分內(nèi)存中執(zhí)行)。Reduce端也會有專門的劃分內(nèi)存(一般為64MB)來存儲Map端傳過來的數(shù)據(jù)。若一次傳輸?shù)臄?shù)據(jù)沒存滿這部分內(nèi)存,則這部分數(shù)據(jù)直接交付給Reduce子程序處理,若在一次傳輸過程中這部分內(nèi)存滿了,則這部分數(shù)據(jù)會被轉(zhuǎn)存到Reduce端磁盤上。在轉(zhuǎn)存的過程中會依據(jù)某種規(guī)則對數(shù)據(jù)執(zhí)行合并操作,然后,在Reduce端接收完Map端一次數(shù)據(jù)傳輸后,Reduce端磁盤上的數(shù)據(jù)會被交付給Reduce子程序來處理。以上內(nèi)容即是MapReduce框架中Shuffle部分的具體操作。

        [1]文艾,王磊.高可用性的HDFS-Hadoop分布式文件系統(tǒng)深度實踐[M].清華大學出版社,2012:135-180.

        [2]陳全,鄧倩妮.異構(gòu)環(huán)境下自適應(yīng)的MapReduce調(diào)度[J].計算機工程與科學,2009,31:169-175.

        猜你喜歡
        鍵值分片磁盤
        上下分片與詞的時空佈局
        詞學(2022年1期)2022-10-27 08:06:12
        分片光滑邊值問題的再生核方法
        CDN存量MP4視頻播放優(yōu)化方法
        非請勿進 為注冊表的重要鍵值上把“鎖”
        解決Windows磁盤簽名沖突
        電腦愛好者(2019年2期)2019-10-30 03:45:31
        基于模糊二分查找的幀分片算法設(shè)計與實現(xiàn)
        修改磁盤屬性
        一鍵直達 Windows 10注冊表編輯高招
        電腦愛好者(2017年9期)2017-06-01 21:38:08
        磁盤組群組及iSCSI Target設(shè)置
        創(chuàng)建VSAN群集
        在线涩涩免费观看国产精品| 久久国产热精品波多野结衣av| 亚洲AV一二三四区四色婷婷| 日韩精品永久免费播放平台| 久久青青草原亚洲av| 人妻少妇中文字幕在线观看| 精品国产精品国产偷麻豆| 亚洲精品综合一区二区三| 999久久66久6只有精品| 日本一区二区偷拍视频| 97超碰精品成人国产| 精品人妻一区二区三区四区在线| 人妻无码aⅴ不卡中文字幕| 亚洲综合性色一区| 加勒比亚洲视频在线播放| 中国老熟女露脸老女人| 欧美寡妇xxxx黑人猛交| 国产亚洲欧美在线观看的| 亚洲欧洲日产国码无码av野外| 丰满老熟女性生活视频| 亚洲欧美日韩精品久久| 亚洲欧美在线观看| 免费一级黄色大片久久久| 强迫人妻hd中文字幕| 亚洲精品久久久久一区二区| 国产农村乱子伦精品视频| 日韩在线视精品在亚洲| 亚洲av熟女少妇一区二区三区| 亚洲av无码无限在线观看| 最新亚洲av日韩av二区| 韩国女主播一区二区在线观看| 丝袜美腿亚洲综合在线播放| 国内精品久久久久国产盗摄| 人妻去按摩店被黑人按中出| 精品亚洲一区二区视频| 国产精品一区二区三区在线免费| 国产综合无码一区二区色蜜蜜| 9999精品视频| 搞黄色很刺激的网站二区| 视频在线国产一区二区| 国产丶欧美丶日本不卡视频|