• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      揭秘Hadoop生態(tài)圈

      2016-12-17 20:34:54林琳
      科技視界 2016年26期

      林琳

      【摘 要】Hadoop的兩大核心是HDFS和YARN。Hadoop是一個軟件框架,能夠?qū)A繑?shù)據(jù)進行分布式處理。Hadoop的特點是可靠、高效、可伸縮。

      【關(guān)鍵詞】Hadoop;HDFS;YARN

      0 引言

      從誕生至今,Hadoop已經(jīng)發(fā)展成為一個龐大的與大數(shù)據(jù)相關(guān)的軟件生態(tài)系統(tǒng)。本文收集整理了跟Hadoop相關(guān)的Apache下的開源項目,主要是對 Hadoop生態(tài)系統(tǒng)有個初步的認(rèn)識。那么Hadoop生態(tài)系統(tǒng)都包括哪些內(nèi)容呢?

      Hadoop生態(tài)系統(tǒng)主要包括分布式文件管理系統(tǒng)HDFS,分布式計算框架MapReduce,分布式協(xié)作服務(wù)Zookeeper,實時分布式數(shù)據(jù)庫Hbase,數(shù)據(jù)倉庫Hive,數(shù)據(jù)流處理Pig,數(shù)據(jù)挖掘Mahout,日志收集工具Flume,數(shù)據(jù)庫ETL工具Sqoop,安裝、部署、配置和管理工具Ambari。

      Ambari(安裝、部署、配置和管理工具)

      Zookeeper (分布式協(xié)作服務(wù))

      Hive(數(shù)據(jù)倉庫)

      Pig(數(shù)據(jù)流處理)

      Mahout(數(shù)據(jù)挖掘庫)

      Flume(日志收集工具)

      Hbase(實時分布式數(shù)據(jù)庫)

      MapReduce(分布式計算框架)

      Sqoop(數(shù)據(jù)庫ETL工具)

      HDFS(分布式文件系統(tǒng))

      1 HDFS(Hadoop分布式文件系統(tǒng))

      HDFS全稱為Hadoop Distributed File System,這個概念源自于Google發(fā)表于2003年10月的GFS論文,HDFS是GFS克隆版,Hadoop和 HDFS 都是從GFS中派生的。

      HDFS是一個高度容錯的系統(tǒng),不僅可以在低成本的通用硬件上運行,還能檢測和應(yīng)對硬件故障,是Hadoop數(shù)據(jù)存儲管理的基礎(chǔ)。

      通過流式數(shù)據(jù)訪問,HDFS提供高吞吐量應(yīng)用程序數(shù)據(jù)訪問功能,為跨多個機器存儲大型文件提供了一種解決方案,適合帶有大型數(shù)據(jù)集的應(yīng)用程序。

      NameNode:是一個Master節(jié)點。在Hadoop 1.0中,NameNode是HDFS 集群的一個單點故障。Hadoop 2.0出現(xiàn)后,HDFS利用Zookeeper解決了這個問題。NameNode的主要功能是處理客戶端請求,管理HDFS的名稱空間和數(shù)據(jù)塊映射信息以及配置副本策略。

      Secondary NameNode:Secondary NameNode并非NameNode必備。它只是用來輔助NameNode,分擔(dān)其工作量的,在某些緊急情況下,可輔助恢復(fù)NameNode。

      DataNode:DataNode是一個 Slave節(jié)點,用來存儲數(shù)據(jù),匯報存儲信息給NameNode。

      Client:Client的作用是切分文件和訪問HDFS。它與NameNode交互時,能夠獲取文件位置信息,與DataNode交互,能夠讀取和寫入數(shù)據(jù)。

      2 Mapreduce(分布式計算框架)

      MapReduce是一種是使用集群的并行、分布式算法處理大數(shù)據(jù)集的可編程計算模型,用以解決海量數(shù)據(jù)的計算問題。在大型集群中能夠起到簡化數(shù)據(jù)處理的作用。MapReduce遵循YARN的框架協(xié)議,能夠在YARN上可以運行。

      在MapReduce中,Map負(fù)責(zé)對數(shù)據(jù)集上的獨立元素進行指定操作,形成中間結(jié)果鍵值對。Reduce負(fù)責(zé)對中間結(jié)果中相同“鍵”的所有“值”進行規(guī)約,得到最終結(jié)果。MapReduce這樣的功能劃分,非常適合在分布式并行環(huán)境里進行數(shù)據(jù)處理。

      JobTracker:唯一一個Master節(jié)點,管理所有作業(yè)和錯誤處理,將任務(wù)分解成一系列子任務(wù),并分派給TaskTracker。

      TaskTracker:Slave節(jié)點,向JobTracker匯報任務(wù)狀態(tài)。

      Map Task:解析每條數(shù)據(jù)記錄,傳遞給用戶編寫的map并執(zhí)行,將輸出結(jié)果寫入本地磁盤。

      Reducer Task:從Map Task的執(zhí)行結(jié)果中,遠程讀取輸入數(shù)據(jù),對數(shù)據(jù)進行排序后分組傳遞給用戶編寫的reduce函數(shù)執(zhí)行。

      3 Hbase(分布式列存數(shù)據(jù)庫)

      HBase是一個構(gòu)建在HDFS上的分布式列存儲系統(tǒng)。HBase利用MapReduce來處理海量數(shù)據(jù),將數(shù)據(jù)存儲和并行計算完美地結(jié)合在一起。Bigtable使用Chubby服務(wù),而HBase利用Zookeeper作為對應(yīng)。和傳統(tǒng)關(guān)系數(shù)據(jù)庫不同,HBase采用了BigTable的數(shù)據(jù)模型,增強的稀疏排序映射表,是一個針對結(jié)構(gòu)化數(shù)據(jù)的動態(tài)模式數(shù)據(jù)庫,具有可伸縮、高可靠、高性能、分布式和面向列的特性。從邏輯上講,HBase將數(shù)據(jù)按照表、行和列進行存儲。與hadoop一樣,Hbase目標(biāo)主要依靠橫向擴展,通過不斷增加服務(wù)器來增加計算和存儲能力。HBase是Hadoop生態(tài)系統(tǒng)中的重要一員,主要用于海量結(jié)構(gòu)化數(shù)據(jù)存儲。

      HBase提供了對大規(guī)模數(shù)據(jù)的隨機、實時讀寫訪問。

      Hbase的數(shù)據(jù)模型

      Schema-->Table-->Column

      Family-->Column-->RowKey-->TimeStamp-->Value

      RowKey:是表中每條記錄的“主鍵”,方便快速查找。

      Column Family:列族,包含一個或者多個相關(guān)列。

      Column:屬于某一個columnfamily,每條記錄可動態(tài)添加。

      Version Number:類型為Long,默認(rèn)值是系統(tǒng)時間戳,可由用戶自定義。

      Value(Cell):Byte array

      4 Zookeeper(分布式協(xié)作服務(wù))

      Zookeeper是一個針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),用來解決分布式環(huán)境下的數(shù)據(jù)管理問題:如狀態(tài)同步,集群管理,配置維護、名字服務(wù)、分布式同步等。

      ZooKeeper能夠配置信息維護,包括封裝關(guān)鍵服務(wù),提供簡單易用的接口和功能穩(wěn)定的系統(tǒng)。在一個分布式的環(huán)境中,我們需要一個 Master 實例或存儲一些配置信息,來確保文件寫入的一致性等。Zookeeper提供了這樣一個高效可靠的協(xié)同工作系統(tǒng)。

      Zookeeper的作用是,通過選舉,使集群中始終只有一個Master存在,實時監(jiān)控Region server的上線和下線信息。并實時通知給Master。

      5 Hive(基于Hadoop的數(shù)據(jù)倉庫)

      Hive定義了一種類似SQL的查詢語言(HQL),將SQL轉(zhuǎn)化為能在Hadoop上執(zhí)行的MapReduce任務(wù)。通常用于數(shù)據(jù)匯總,查詢和離線分析。最初用于解決日志數(shù)據(jù)統(tǒng)計問題。

      6 Pig(基于Hadoop的數(shù)據(jù)流系統(tǒng))

      Pig在 Hadoop 分布式文件系統(tǒng),HDFS,MapReduce中都能夠運行,使用 MapReduce來執(zhí)行數(shù)據(jù)處理。Pig提供了一個能夠在Hadoop并行執(zhí)行數(shù)據(jù)流的引擎。Pig 用Pig Latin語言來表達數(shù)據(jù)流,包括大量的傳統(tǒng)數(shù)據(jù)操作,也可以讓用戶開發(fā)自己的函數(shù),查看,處理和編寫數(shù)據(jù)。也可以編寫一個或者多個的 MapReduce 作業(yè),然后執(zhí)行。

      7 Mahout(數(shù)據(jù)挖掘算法庫)

      Mahout是一種基于MapReduce的機器學(xué)習(xí)庫和數(shù)學(xué)庫。

      Mahout旨在創(chuàng)建一些可擴展的經(jīng)典算法的實現(xiàn),能夠幫助開發(fā)人員更方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout現(xiàn)在已經(jīng)包含了聚類、分類、協(xié)同過濾和頻繁集挖掘等數(shù)據(jù)挖掘方法。

      Mahout起源于2008年,最初是Apache下的一個的子項目,在極短的時間內(nèi)飛速發(fā)展,現(xiàn)在已經(jīng)是Apache的頂級項目之一。

      8 Sqoop(數(shù)據(jù)同步工具)

      Sqoop是SQL-to-Hadoop的縮寫,主要用于在傳統(tǒng)數(shù)據(jù)庫和Hadoop之間進行數(shù)據(jù)傳輸。Sqoop充分利用了Mapreduce的并行化和容錯性,來進行數(shù)據(jù)的導(dǎo)入和導(dǎo)出,通常用于進行離線分析。

      9 Flume(日志收集工具)

      Flume是一個可擴展、開源的、適合復(fù)雜環(huán)境的海量日志收集系統(tǒng)。它具有分布式、高可靠、高容錯、易擴展的優(yōu)點。

      它將數(shù)據(jù)從產(chǎn)生、傳輸、處理并最終寫入目標(biāo)的路徑的過程抽象為數(shù)據(jù)流,F(xiàn)lume支持收集各種不同協(xié)議數(shù)據(jù)。同時提供對日志數(shù)據(jù)進行簡單處理的能力,如過濾、格式轉(zhuǎn)換等。

      【參考文獻】

      [1]陸嘉恒.Hadoop實戰(zhàn)[M].機械工業(yè)出版社,2011,10.

      [2]Tom White.Hadoop:The Definitive Guide[M].東南大學(xué)出版社,2011,5.

      [責(zé)任編輯:田吉捷]

      富宁县| 嘉义县| 额尔古纳市| 潼南县| 丰城市| 五指山市| 依安县| 南乐县| 工布江达县| 神木县| 文安县| 雷波县| 鄂伦春自治旗| 措美县| 泽州县| 北川| 吉林省| 黎城县| 宁河县| 玛沁县| 武川县| 冷水江市| 武汉市| 巫溪县| 潜江市| 靖宇县| 新昌县| 北碚区| 蛟河市| 黄冈市| 雷州市| 长岛县| 新巴尔虎左旗| 镇康县| 沙洋县| 祁门县| 金门县| 乌兰县| 南雄市| 阳朔县| 嘉善县|