成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

什么是大數(shù)據(jù)

learn_shifeng / 1622人閱讀

一、什么是大數(shù)據(jù)
進(jìn)入本世紀(jì)以來,尤其是2010年之后,隨著互聯(lián)網(wǎng)特別是移動互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)的增長呈爆炸趨勢,已經(jīng)很難估計(jì)全世界的電子設(shè)備中存儲的數(shù)據(jù)到底有多少,描述數(shù)據(jù)系統(tǒng)的數(shù)據(jù)量的計(jì)量單位從MB(1MB大約等于一百萬字節(jié))、GB(1024MB)、TB(1024GB),一直向上攀升,目前,PB(等于1024TB)級的數(shù)據(jù)系統(tǒng)已經(jīng)很常見,隨著移動個人數(shù)據(jù)、社交網(wǎng)站、科學(xué)計(jì)算、證券交易、網(wǎng)站日志、傳感器網(wǎng)絡(luò)數(shù)據(jù)量的不斷加大,國內(nèi)擁有的總數(shù)據(jù)量早已超出 ZB(1ZB=1024EB,1EB=1024PB)級別。
傳統(tǒng)的數(shù)據(jù)處理方法是:隨著數(shù)據(jù)量的加大,不斷更新硬件指標(biāo),采用更加強(qiáng)大的CPU、更大容量的磁盤這樣的措施,但現(xiàn)實(shí)是:數(shù)據(jù)量增大的速度遠(yuǎn)遠(yuǎn)超出了單機(jī)計(jì)算和存儲能力提升的速度。
而“大數(shù)據(jù)”的處理方法是:采用多機(jī)器、多節(jié)點(diǎn)的處理大量數(shù)據(jù)方法,而采用這種新的處理方法,就需要有新的大數(shù)據(jù)系統(tǒng)來保證,系統(tǒng)需要處理多節(jié)點(diǎn)間的通訊協(xié)調(diào)、數(shù)據(jù)分隔等一系列問題。
總之,采用多機(jī)器、多節(jié)點(diǎn)的方式,解決各節(jié)點(diǎn)的通訊協(xié)調(diào)、數(shù)據(jù)協(xié)調(diào)、計(jì)算協(xié)調(diào)問題,處理海量數(shù)據(jù)的方式,就是“大數(shù)據(jù)”的思維。其特點(diǎn)是,隨著數(shù)據(jù)量的不斷加大,可以增加機(jī)器數(shù)量,水平擴(kuò)展,一個大數(shù)據(jù)系統(tǒng),可以多達(dá)幾萬臺機(jī)器甚至更多。
二、hadoop概述
Hadoop是一個開發(fā)和運(yùn)行處理大規(guī)模數(shù)據(jù)的軟件平臺,是Apache的一個用Java語言實(shí)現(xiàn)開源軟件框架,實(shí)現(xiàn)在大量計(jì)算機(jī)組成的集群中對海量數(shù)據(jù)進(jìn)行分布式計(jì)算。
Hadoop框架中最核心設(shè)計(jì)就是:HDFS和MapReduce。HDFS提供了海量數(shù)據(jù)的存儲,MapReduce提供了對數(shù)據(jù)的計(jì)算。
Hadoop的發(fā)行版除了社區(qū)的Apache hadoop外,cloudera,hortonworks,IBM,INTEL,華為,大快搜索等等都提供了自己的商業(yè)版本。商業(yè)版主要是提供了專業(yè)的技術(shù)支持,這對一些大型企業(yè)尤其重要。DK.Hadoop是大快深度整合,重新編譯后的HADOOP發(fā)行版,可多帶帶發(fā)布。獨(dú)立部署FreeRCH(大快大數(shù)據(jù)一體化開發(fā)框架)時,必需的組件。DK.HADOOP整合集成了NOSQL數(shù)據(jù)庫,簡化了文件系統(tǒng)與非關(guān)系數(shù)據(jù)庫之間的編程;DK.HADOOP改進(jìn)了集群同步系統(tǒng),使得HADOOP的數(shù)據(jù)處理更加高效。
三、hadoop開發(fā)技術(shù)詳解
1、Hadoop運(yùn)行原理
Hadoop是一個開源的可運(yùn)行于大規(guī)模集群上的分布式并行編程框架,其最核心的設(shè)計(jì)包括:MapReduce和HDFS。基于Hadoop,你可以輕松地編寫可處理海量數(shù)據(jù)的分布式并行程序,并將其運(yùn)行于由成百上千個結(jié)點(diǎn)組成的大規(guī)模計(jì)算機(jī)集群上。
基于MapReduce計(jì)算模型編寫分布式并行程序相對簡單,程序員的主要工作就是設(shè)計(jì)實(shí)現(xiàn)Map和Reduce類,其它的并行編程中的種種復(fù)雜問題,如分布式存儲,工作調(diào)度,負(fù)載平衡,容錯處理,網(wǎng)絡(luò)通信等,均由MapReduce框架和HDFS文件系統(tǒng)負(fù)責(zé)處理,程序員完全不用操心。換句話說程序員只需要關(guān)心自己的業(yè)務(wù)邏輯即可,不必關(guān)心底層的通信機(jī)制等問題,即可編寫出復(fù)雜高效的并行程序。如果說分布式并行編程的難度足以讓普通程序員望而生畏的話,開源的Hadoop的出現(xiàn)極大的降低了它的門檻。
2、Mapreduce原理
Map-Reduce的處理過程主要涉及以下四個部分:
?Client進(jìn)程:用于提交Map-reduce任務(wù)job;
?JobTracker進(jìn)程:其為一個Java進(jìn)程,其main class為JobTracker;
?TaskTracker進(jìn)程:其為一個Java進(jìn)程,其main class為TaskTracker;
?HDFS:Hadoop分布式文件系統(tǒng),用于在各個進(jìn)程間共享Job相關(guān)的文件;
其中JobTracker進(jìn)程作為主控,用于調(diào)度和管理其它的TaskTracker進(jìn)程, JobTracker可以運(yùn)行于集群中任一臺計(jì)算機(jī)上,通常情況下配置JobTracker進(jìn)程運(yùn)行在NameNode節(jié)點(diǎn)之上。TaskTracker負(fù)責(zé)執(zhí)行JobTracker進(jìn)程分配給的任務(wù),其必須運(yùn)行于DataNode上,即DataNode既是數(shù)據(jù)存儲結(jié)點(diǎn),也是計(jì)算結(jié)點(diǎn)。JobTracker將Map任務(wù)和Reduce任務(wù)分發(fā)給空閑的TaskTracker,讓這些任務(wù)并行運(yùn)行,并負(fù)責(zé)監(jiān)控任務(wù)的運(yùn)行情況。如果某一個TaskTracker出故障了,JobTracker會將其負(fù)責(zé)的任務(wù)轉(zhuǎn)交給另一個空閑的TaskTracker重新運(yùn)行。
3、HDFS存儲的機(jī)制
Hadoop的分布式文件系統(tǒng)HDFS是建立在Linux文件系統(tǒng)之上的一個虛擬分布式文件系統(tǒng),它由一個管理節(jié)點(diǎn)( NameNode )和N個數(shù)據(jù)節(jié)點(diǎn)( DataNode )組成,每個節(jié)點(diǎn)均是一臺普通的計(jì)算機(jī)。在使用上同我們熟悉的單機(jī)上的文件系統(tǒng)非常類似,一樣可以建目錄,創(chuàng)建,復(fù)制,刪除文件,查看文件內(nèi)容等。但其底層實(shí)現(xiàn)上是把文件切割成Block(塊),然后這些Block分散地存儲于不同的DataNode上,每個Block還可以復(fù)制數(shù)份存儲于不同的DataNode上,達(dá)到容錯容災(zāi)之目的。NameNode則是整個HDFS的核心,它通過維護(hù)一些數(shù)據(jù)結(jié)構(gòu),記錄了每一個文件被切割成了多少個Block,這些Block可以從哪些DataNode中獲得,各個DataNode的狀態(tài)等重要信息。
HDFS的數(shù)據(jù)塊
每個磁盤都有默認(rèn)的數(shù)據(jù)塊大小,這是磁盤進(jìn)行讀寫的基本單位.構(gòu)建于單個磁盤之上的文件系統(tǒng)通過磁盤塊來管理該文件系統(tǒng)中的塊.該文件系統(tǒng)中的塊一般為磁盤塊的整數(shù)倍.磁盤塊一般為512字節(jié).HDFS也有塊的概念,默認(rèn)為64MB(一個map處理的數(shù)據(jù)大小).HDFS上的文件也被劃分為塊大小的多個分塊,與其他文件系統(tǒng)不同的是,HDFS中小于一個塊大小的文件不會占據(jù)整個塊的空間.

  任務(wù)粒度——數(shù)據(jù)切片(Splits)

把原始大數(shù)據(jù)集切割成小數(shù)據(jù)集時,通常讓小數(shù)據(jù)集小于或等于HDFS中一個Block的大小(缺省是64M),這樣能夠保證一個小數(shù)據(jù)集位于一臺計(jì)算機(jī)上,便于本地計(jì)算。有M個小數(shù)據(jù)集待處理,就啟動M個Map任務(wù),注意這M個Map任務(wù)分布于N臺計(jì)算機(jī)上并行運(yùn)行,Reduce任務(wù)的數(shù)量R則可由用戶指定。
HDFS用塊存儲帶來的第一個明顯的好處一個文件的大小可以大于網(wǎng)絡(luò)中任意一個磁盤的容量,數(shù)據(jù)塊可以利用磁盤中任意一個磁盤進(jìn)行存儲.第二個簡化了系統(tǒng)的設(shè)計(jì),將控制單元設(shè)置為塊,可簡化存儲管理,計(jì)算單個磁盤能存儲多少塊就相對容易.同時也消除了對元數(shù)據(jù)的顧慮,如權(quán)限信息,可以由其他系統(tǒng)多帶帶管理。
4、舉一個簡單的例子說明MapReduce的運(yùn)行機(jī)制
以計(jì)算一個文本文件中每個單詞出現(xiàn)的次數(shù)的程序?yàn)槔?k1,v1>可以是<行在文件中的偏移位置,文件中的一行>,經(jīng)Map函數(shù)映射之后,形成一批中間結(jié)果<單詞,出現(xiàn)次數(shù)>,而Reduce函數(shù)則可以對中間結(jié)果進(jìn)行處理,將相同單詞的出現(xiàn)次數(shù)進(jìn)行累加,得到每個單詞的總的出現(xiàn)次數(shù)。

5、MapReduce的核心過程----Shuffle["??fl]和Sort
shuffle是mapreduce的心臟,了解了這個過程,有助于編寫效率更高的mapreduce程序和hadoop調(diào)優(yōu)。
Shuffle是指從Map產(chǎn)生輸出開始,包括系統(tǒng)執(zhí)行排序以及傳送Map輸出到Reducer作為輸入的過程。如下圖所示:

首先從Map端開始分析,當(dāng)Map開始產(chǎn)生輸出的時候,他并不是簡單的把數(shù)據(jù)寫到磁盤,因?yàn)轭l繁的操作會導(dǎo)致性能嚴(yán)重下降,他的處理更加復(fù)雜,數(shù)據(jù)首先是寫到內(nèi)存中的一個緩沖區(qū),并作一些預(yù)排序,以提升效率,如圖:

每個Map任務(wù)都有一個用來寫入“輸出數(shù)據(jù)”的“循環(huán)內(nèi)存緩沖區(qū)”,這個緩沖區(qū)默認(rèn)大小是100M(可以通過io.sort.mb屬性來設(shè)置具體的大?。?,當(dāng)緩沖區(qū)中的數(shù)據(jù)量達(dá)到一個特定的閥值(io.sort.mb * io.sort.spill.percent,其中io.sort.spill.percent默認(rèn)是0.80)時,系統(tǒng)將會啟動一個后臺線程把緩沖區(qū)中的內(nèi)容spill到磁盤。在spill過程中,Map的輸出將會繼續(xù)寫入到緩沖區(qū),但如果緩沖區(qū)已經(jīng)滿了,Map就會被阻塞直到spill完成。spill線程在把緩沖區(qū)的數(shù)據(jù)寫到磁盤前,會對他進(jìn)行一個二次排序,首先根據(jù)數(shù)據(jù)所屬的partition排序,然后每個partition中再按Key排序。輸出包括一個索引文件和數(shù)據(jù)文件,如果設(shè)定了Combiner,將在排序輸出的基礎(chǔ)上進(jìn)行。Combiner就是一個Mini Reducer,它在執(zhí)行Map任務(wù)的節(jié)點(diǎn)本身運(yùn)行,先對Map的輸出作一次簡單的Reduce,使得Map的輸出更緊湊,更少的數(shù)據(jù)會被寫入磁盤和傳送到Reducer。Spill文件保存在由mapred.local.dir指定的目錄中,Map任務(wù)結(jié)束后刪除。
每當(dāng)內(nèi)存中的數(shù)據(jù)達(dá)到spill閥值的時候,都會產(chǎn)生一個新的spill文件,所以在Map任務(wù)寫完他的最后一個輸出記錄的時候,可能會有多個spill文件,在Map任務(wù)完成前,所有的spill文件將會被歸并排序?yàn)橐粋€索引文件和數(shù)據(jù)文件。如圖3所示。這是一個多路歸并過程,最大歸并路數(shù)由io.sort.factor控制(默認(rèn)是10)。如果設(shè)定了Combiner,并且spill文件的數(shù)量至少是3(由min.num.spills.for.combine屬性控制),那么Combiner將在輸出文件被寫入磁盤前運(yùn)行以壓縮數(shù)據(jù)。
大快大數(shù)據(jù)平臺(DKH),是大快公司為了打通大數(shù)據(jù)生態(tài)系統(tǒng)與傳統(tǒng)非大數(shù)據(jù)公司之間的通道而設(shè)計(jì)的一站式搜索引擎級,大數(shù)據(jù)通用計(jì)算平臺。傳統(tǒng)公司通過使用DKH,可以輕松的跨越大數(shù)據(jù)的技術(shù)鴻溝,實(shí)現(xiàn)搜索引擎級的大數(shù)據(jù)平臺性能。
? DKH,有效的集成了整個HADOOP生態(tài)系統(tǒng)的全部組件,并深度優(yōu)化,重新編譯為一個完整的更高性能的大數(shù)據(jù)通用計(jì)算平臺,實(shí)現(xiàn)了各部件的有機(jī)協(xié)調(diào)。因此DKH相比開源的大數(shù)據(jù)平臺,在計(jì)算性能上有了高達(dá)5倍(最大)的性能提升。
? DKH,更是通過大快獨(dú)有的中間件技術(shù),將復(fù)雜的大數(shù)據(jù)集群配置簡化至三種節(jié)點(diǎn)(主節(jié)點(diǎn)、管理節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)),極大的簡化了集群的管理運(yùn)維,增強(qiáng)了集群的高可用性、高可維護(hù)性、高穩(wěn)定性。
? DKH,雖然進(jìn)行了高度的整合,但是仍然保持了開源系統(tǒng)的全部優(yōu)點(diǎn),并與開源系統(tǒng)100%兼容,基于開源平臺開發(fā)的大數(shù)據(jù)應(yīng)用,無需經(jīng)過任何改動,即可在DKH上高效運(yùn)行,并且性能會有最高5倍的提升。
DKH標(biāo)準(zhǔn)平臺技術(shù)構(gòu)架圖

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/72131.html

相關(guān)文章

  • 什么是大數(shù)據(jù)技術(shù)架構(gòu)

    摘要:大數(shù)據(jù)的應(yīng)用開發(fā)過于偏向底層,具有學(xué)習(xí)難度大,涉及技術(shù)面廣的問題,這制約了大數(shù)據(jù)的普及。傳統(tǒng)公司通過使用,可以輕松的跨越大數(shù)據(jù)的技術(shù)鴻溝,實(shí)現(xiàn)搜索引擎級的大數(shù)據(jù)平臺性能。 大數(shù)據(jù)的應(yīng)用開發(fā)過于偏向底層,具有學(xué)習(xí)難度大,涉及技術(shù)面廣的問題,這制約了大數(shù)據(jù)的普及?,F(xiàn)在需要一種技術(shù),把大數(shù)據(jù)開發(fā)中一些通用的,重復(fù)使用的基礎(chǔ)代碼、算法封裝為類庫,降低大數(shù)據(jù)的學(xué)習(xí)門檻,降低開發(fā)難度,提高大數(shù)據(jù)項(xiàng)...

    ningwang 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<