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

?

基于Hadoop的大數(shù)據(jù)增量計算探討

2016-01-15 11:32王劍宇劉鳳良姜薇
電腦知識與技術(shù) 2015年18期

王劍宇 劉鳳良 姜薇

摘要:增量計算是針對許多在線大數(shù)據(jù)集每隔一段時間都會因為新數(shù)據(jù)添加進來產(chǎn)生緩慢增長,需要對整個數(shù)據(jù)集重新計算,導致效率低和計算資源浪費的問題提出的。文章通過分析增量計算的一般模式,參考已有增量計算系統(tǒng)的思想,探討了如何基于開源大數(shù)據(jù)處理框架Hadoop,依托其最新的YARN模式架構(gòu)具有通用性的增量計算系統(tǒng)。

關(guān)鍵詞:增量計算;結(jié)果緩存復用;Hadoop;YARN

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2015)18-0008-03

1.概述

很多在線大數(shù)據(jù)集每隔一段時間都會因為新的數(shù)據(jù)添加進來產(chǎn)生緩慢增長,并且已有的數(shù)據(jù)也會刪除或者修改。當數(shù)據(jù)集發(fā)生變動后,需要對其重新進行計算,考慮到有時變動只是很小的一部分,或者對之前的計算結(jié)果影響很小等這類情況,若為此就對變動后的整個數(shù)據(jù)集全部進行計算必然存在效率低下和計算資源浪費的問題。就是針對這一問題提出的。增量計算的思路是每次只針對新增加的內(nèi)容和其影響到的舊計算結(jié)果重新進行計算,之前計算的結(jié)果大部分是可以復用的,這可以減少計算資源的使用,同時也提高了效率。

2.增量計算的一般模式及現(xiàn)有典型系統(tǒng)

2.1增量計算模式

增量計算的模式主要有兩大類,即“結(jié)果緩存復用”和“變化傳播”。“結(jié)果緩存復用”模式在設計技術(shù)方案時,是從那些計算結(jié)果沒有發(fā)生改變的舊數(shù)據(jù)的角度考慮的,將這些舊的結(jié)果存儲起來,致力于對其最大化的復用。“變化傳播”模式是從新數(shù)據(jù)和受影響的舊數(shù)據(jù)這個角度設計方案的,首先計算新數(shù)據(jù)的結(jié)果,然后判斷受其影響的舊數(shù)據(jù)有那些,然后重新計算其結(jié)果,在這個結(jié)果的基礎(chǔ)上再去判斷那些舊結(jié)果會受到影響,若影響達到一個閾值,那就重新計算,迭代這個過程,完成增量計算。

2.2現(xiàn)有典型系統(tǒng)簡介

增量計算在很多場景下可以很大的提高計算效率?,F(xiàn)有典型的增量系統(tǒng)根據(jù)依賴的計算平臺可以分為兩類,一類是基于自建平臺的,如Google的Percolator、Microsoft的Kineograph和DryadInc;另一類是基于Hadoop平臺的,如:Yahoo的CBP、基于Hadoop 1.x的Incoop和IncMR等。Percolator和Kineograph屬于“變化傳播”模式,Dryadlnc、CBP和Incoop屬于“結(jié)果緩存復用”模式。

Percolator是Google在2010年6月上線的用于更新索引的“咖啡因”系統(tǒng)的項目名,其實質(zhì)是建立在Bigtable上的一種和MapReduce計算方式互補的增量計算模式。全局性的統(tǒng)計,用MapReduce來做,而局部的更新用Percolator。Kineograph是一個支持增量計算的分布式準實時流式圖挖掘系統(tǒng)。當連續(xù)不斷的數(shù)據(jù)流人系統(tǒng)后,不用每次都對所有數(shù)據(jù)重新計算,而是用增量計算對挖掘結(jié)果進行更新。Dryadlnc是建立在DGA批處理系統(tǒng)Dryadf上的增量計算系統(tǒng),它是將上次的計算結(jié)果存儲到緩存服務器中,下次計算時先到緩存中去找可復用的結(jié)果,而不是重新計算,這種方式可以顯著的提高計算速度。

以上這類方案主要是科技巨頭企業(yè)依托自身的軟硬件資源,針對自己特定的業(yè)務需求構(gòu)建的,不具有通用性,難以復制,我們只能借鑒其設計思想。相對的,互聯(lián)網(wǎng)上一些基于開源軟件平臺的增量計算解決方案更具操作性和可用性,如采用較為復雜的技術(shù)對Hadoop進行改造的Incoop和IncMR,但是由于其基于Hadoopl.x,具有明顯缺陷,架構(gòu)的靈活性和效率不是很好。所以設計一個可擴展、可維護的基于開源平臺的增量計算系統(tǒng)是有研究和應用價值的。

3.Hadoop的機制及實現(xiàn)增量計算的構(gòu)想

3.1Hadoop框架

Hadoop是一個開源軟件框架,用來開發(fā)和處理大規(guī)模數(shù)據(jù),其最核心的設計包括用來存儲海量數(shù)據(jù)的HDFS和對數(shù)據(jù)進行計算的MapReduce。目前在大數(shù)據(jù)技術(shù)的應用和研究領(lǐng)域,Hadoop是主流的基礎(chǔ)軟件平臺,發(fā)展迅速,最新的版本是2.x系列,加入了YARN、NameNode Federation和HA等新特性,為實現(xiàn)增量計算提供了一個支撐環(huán)境。

1)HDFS

是指分布式文件存儲系統(tǒng),即Hadoop Distributed Filesystern,在實際存儲時,首先將不同大小的文件切割成固定大小的數(shù)據(jù)塊,然后由主控服務器統(tǒng)一分配存儲管理。

2)MapReduce和YARN

MapReduce是Hadoop的計算框架,其基本架構(gòu)如圖1,這種模式也被稱為MapReduce1.0版本,其中最核心的是JobTracker,它是集群的“管理者”,負責作業(yè)管理、狀態(tài)監(jiān)控、任務調(diào)度器等功能。同時作為集群事務的集中處理點的JobTracker,需要完成的任務太多,最大的問題是存在單點故障,造成過多的資源消耗和資源利用不足。

Yarn是MapReduce2.0版本,最大的變化是將JobTracker的兩個主要功能資源管理和作業(yè)控制拆分成兩個獨立的進程。

資源管理進程負責整個集群的cpu、儲存等資源管理,與具體應用程序無關(guān);作業(yè)控制進程與應用程序相關(guān),一個作業(yè)控制進程只負責一個作業(yè)。如圖2所示,YARN可以說是一個資源統(tǒng)一管理平臺,其不局限于MapReduce一種計算模型,而是可以融人多種計算框架,并對這些框架統(tǒng)一管理調(diào)度,如果想加入一個新的計算框架,就把該框架分裝成一個Application—Mastero

3.2基于Hadoop YARN實現(xiàn)增量計算的構(gòu)想

現(xiàn)有典型的基于Hadoop的開源增量系統(tǒng)架構(gòu)有2011年的Incoop和2012年的Incmr,存在的問題主要是他們基于的軟件平臺是Hadoop1.0,并且對軟件底層框架進行了復雜的修改,導致系統(tǒng)的不易擴展,同時繼承了MapReduce V1.0的缺點。通過吸取這些系統(tǒng)當中有益的設計思想,并基于Hadoop2.x這個平臺,使得構(gòu)建一個低人侵性、可維護擴展、透明和高效的增量系統(tǒng)成為可能。