国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

什么是大數據

learn_shifeng / 1559人閱讀

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

  任務粒度——數據切片(Splits)

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

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

首先從Map端開始分析,當Map開始產生輸出的時候,他并不是簡單的把數據寫到磁盤,因為頻繁的操作會導致性能嚴重下降,他的處理更加復雜,數據首先是寫到內存中的一個緩沖區,并作一些預排序,以提升效率,如圖:

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72131.html

相關文章

  • 什么是大數據技術架構

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

    ningwang 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<