成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

learn_shifeng / 1562人閱讀

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

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

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

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72131.html

相關(guān)文章

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

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

    ningwang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<