• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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é)任編輯:田吉捷]

    平安县| 南木林县| 饶平县| 邓州市| 棋牌| 镇坪县| 宜昌市| 新巴尔虎左旗| 呈贡县| 固阳县| 黔江区| 巴里| 华坪县| 六安市| 浮山县| 柳州市| 玛纳斯县| 容城县| 慈利县| 梁河县| 泽州县| 涡阳县| 扶绥县| 延安市| 宁晋县| 二连浩特市| 合川市| 曲阳县| 松原市| 德钦县| 裕民县| 类乌齐县| 洛隆县| 忻州市| 交口县| 福鼎市| 建宁县| 辽中县| 刚察县| 香河县| 台湾省|