Hadoop構架

大數據處理架構Hadoop
    1.概述
    1.1 Hadoop 簡介
       hadoop是apache軟件基金會旗下的一個開源分佈式計算平臺,爲用戶提供系統底層細節透明的分佈式基礎架構。hadoop基於java語言
    開發。跨平臺性能好,可以部署在廉價的計算機集羣中。hadoop核心是HDFS(分佈式文件系統,解決了海量數據的存儲)和mapreduce
    (解決了海量數據的處理)。hadoop被公認爲行業大數據標準開源軟件,在分佈式環境下提供了海量數據段 處理能力。
       2008年4月,hadoop打破當時的世界記錄成爲最快排序1TB數據的系統,他採用901個節點構成的集羣運算,排序時間只用209S。
    1.2 Hadoop的發展簡史
        hadoop最初由apache Lucene項目的創始人Doug Cutting 開發的文本索引庫。2002年的時候,Nutch項目(Lucene項目一部分)遇到
    了該框架無法擴展到擁有數十億網頁的網絡。2003年的時候Google 發佈了分佈式文件系統GFS的論文,2004年Nutch項目模仿GFS開發了
    NDFS(HDFS前身)。2004年,谷歌公司有發佈了MapReduce分佈式編程思想的論文。2005年Nutch 項目開源了谷歌的MapReduce。
    至此。hadoop的兩個核心HDFS和MapReduce ,受谷歌論文的影響,成就了hadoop在海量數據處理靈域的頭羊領袖地位。2008年一月,
    Hadoop正式成爲apache頂級的項目。
    1.3 hadoop 特性
        高可用性 : 採用冗餘存儲方式
        高效性:採用分佈式存儲和分佈式處理,搞笑的處理PB級數據
        高可擴展性:hadoop設計目的:高效穩定運行在廉價的計算機集羣上。
        高容錯性:採用冗餘數據存儲方式。
        低成本:採用廉價的計算機集羣。
        運行在linux平臺。
        支持多種編程語言。
    1.4 hadoop的版本
        apache hadoop版本分爲兩代,第一代hadoop包含0.20x ,0.21.x和0.22.x三個版本。其中,0.20x最後演變成1.0.x,成爲穩定版。
    0.21.x和0.22.x增加了HDFS HA(高可用)等重要特性。第二代hadoop包含0.23.x和2.x兩個版本。
    第二代hadoop比第一代hadoop做了較大的改進:主要是拆分了MapReduce的職能,減輕了系統負載。增加了YARN資源調度框架,
    mapreduce 運行在YARN框架(負責系統資源的調度的基礎上,不在負責系統資源的調度,只專心於分佈式計算。做爲hadoop另一個核心
    的HDFS也增加了 federation 和HA(高可用和熱備份)(HDFS中的namenode需要高可用)
        apache的各個版本的比較:
        除了免費開源apache hadoop版本提供標準,還有一些商業化公司陸續退出hadoop版本。
        2014年進入上海的 cloudera 與apache hadoop功能同步部分開源,具有自主研發產品,impala、navigator
        hortonwork 與apache 功能同步也完全開源(是apache hadoop平臺最大的貢獻者。產品:Tez構架,下一代hadoop查詢處理框架)
        MapR 在apache hadoop基礎上修改優化了許多,也形成了自己的 產品。
        國產的有 星環。核心組件與apache 同步,底層較多,完全封閉閉源,也又自己的hadoop產品  Inceptor 、Hyperbase.

    1.41 hadoop在企業的應用構架分爲3層:數據源的流向依次是數據來源 ==》大數據層==》訪問層
        在大數據層以HDFS分佈式存儲爲基礎;分爲三部分。分別爲訪問層的3個功能即:數據分析、數據實時查詢、數據挖掘提供運算。
        其中大數據層的: mapreduce (hive, pig) 提供了離線數據分析
                        Hbase(solr redis) 提供了數據的實時查詢
                        Mahout BI分析 完成 數據挖掘
    1.5 hadoop生態系統

wKioL1lP46Gyesz_AAByRpA4wXY505.png-wh_50

        1.51 HDFS
            分佈式文件系統(Hadoop Distributed File System HDFS)是Hadoop項目的核心。針對谷歌文件系統GFS的開源。
        具有處理超大數據、流式處理運行在廉價服務器等優點。在設計之初,吧硬件故障作爲常態考慮,保證在部分硬件發生故障的時候
        仍能保障整體的可用性和可靠性。此外,HDFS放寬了POSIX(可移植操作系統接口)實現了流的形式訪問系統數據。提高系統的
        吞吐率。
        1.52  HBase
            針對谷歌BigTable的開源實現。具有強大的非結構化數據存儲能力。採用HDFS作爲底層數據存儲,與傳統數據庫基於列的存儲
        方式不同,HBase是基於行的存儲。可橫向擴展。是一個提供高可靠性、高性能、可伸縮、實時讀寫、分佈式的列式數據庫。
        1.53 MapReduce
            針對谷歌的MapReduce的開源實現。是一種編程模型。高度抽象到兩個函數上 Map 和 Reduce 。在不瞭解底層細節情況下開發
        並行應用程序,運行在廉價計算機集羣,完成海量數據(大於1T)處理核心思想是:將數據分成若干獨立的數據塊。分發給一個節點
        管理下的各個分界點來共同並行完成,最後最後整合各個節點中間結果得到最終結果。
        1.54 Hive
            基於hadoop的數據倉庫工具。針對hadoop文件中的數據集進行數據整理、特殊查詢和分析存儲。使用類SQL語言的Hive-QL
        快速實現簡單MapReduce統計。
        1.55 Pig
            簡化了Hadoop常見的工作任務。爲hadoop程序提供一種更加接近SQL的接口。在大型數據集中搜索滿足某個給定搜索條件的記
        錄時,Pig 只需要編寫一個簡單的腳本在集羣中自動並行處理與分發,而MapReduce需要編寫一個單獨程序。
        1.56 Mahout
            提供可擴展的機器學習領域經典算法。用於數據挖掘。
        1.57 Zookeeper
            針對谷歌Chubby的一個開源實現、是高效和可靠的協同工作系統,用於構建分佈式應用,減輕分佈式應用程序所承擔的協調任務。
        1.58 Flume
            是 Cloudera提供的一個高可用的,高可靠的、分佈式海量日誌採集、聚合和傳輸的系統。支持日誌系統中定製各類數據發送方,
        用於收集數據;同時,Flume 提供對數據進行簡單處理並寫到各種數據接受方的能力。
        1.59 Sqoop
            SQL-to-Hadoop的縮寫。用於Hadoop和關係數據庫間交換數據,通過Sqoop可以將數據從mysql 、Oracle、postgresql等關係
        型數據中導入Hadoop(可以導入HDFS、HBase和Hive)也可以將數據從hadoop導出到關係數據庫。是數據遷移方便
        1.510 Ambari
            Web工具。支持Apache Hadoop 集羣的安裝、部署、配置和管理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章