Hadoop生態系統簡介及大數據相關技術



1、Hadoop 是一個能夠對大量數據進行分布式處理的軟件框架。具有可靠、高效、可伸縮的特點。Hadoop的核心是HDFS和Mapreduce,hadoop2.0還包括YARN。


2、HDFS Hadoop的分布式文件系統。是Hadoop體系中數據存儲管理的基礎。它是一個高度容錯的系統,能檢測和應對硬件故障,用於在低成本的通用硬件上運行。HDFS簡化了文件的一致性模型,通過流式數據訪問,提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序。


3、MapReduce(分布式計算框架) MapReduce是一種計算模型,用以進行大數據量的計算。其中Map對數據集上的獨立元素進行指定的操作,生成鍵-值對形式中間結果。Reduce則對中間結果中相同“鍵”的所有“值”進行規約,以得到最終結果。MapReduce這樣的功能划分,非常適合在大量計算機組成的分布式並行環境里進行數據處理。


4、Hive(基於Hadoop的數據倉庫)Hive定義了一種類似SQL的查詢語言(HQL),將SQL轉化為MapReduce任務在Hadoop上執行。通常用於離線分析。


5、Hbase(分布式列存數據庫) HBase是一個針對結構化數據的可伸縮、高可靠、高性能、分布式和面向列的動態模式數據庫。和傳統關系數據庫不同,HBase采用了BigTable的數據模型:增強的稀疏排序映射表(Key/Value),其中,鍵由行關鍵字、列關鍵字和時間戳構成。HBase提供了對大規模數據的隨機、實時讀寫訪問,同時,HBase中保存的數據可以使用MapReduce來處理,它將數據存儲和並行計算完美地結合在一起。


6、Zookeeper(分布式協作服務) 解決分布式環境下的數據管理問題:統一命名,狀態同步,集群管理,配置同步等。


7、Sqoop(數據同步工具) Sqoop是SQL-to-Hadoop的縮寫,主要用於傳統數據庫和Hadoop之前傳輸數據。數據的導入和導出本質上是Mapreduce程序,充分利用了MR的並行化和容錯性。


8、Pig(基於Hadoop的數據流系統) 由yahoo!開源,設計動機是提供一種基於MapReduce的ad-hoc(計算在query時發生)數據分析工具。定義了一種數據流語言—Pig Latin,將腳本轉換為MapReduce任務在Hadoop上執行。通常用於進行離線分析。


9、Mahout(數據挖掘算法庫) Mahout的主要目標是創建一些可擴展的機器學習領域經典算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程序。Mahout現在已經包含了聚類、分類、推薦引擎(協同過濾)和頻繁集挖掘等廣泛使用的數據挖掘方法。除了算法,Mahout還包含數據的輸入/輸出工具、與其他存儲系統(如數據庫、MongoDB 或Cassandra)集成等數據挖掘支持架構。


10、Flume(日志收集工具) Cloudera開源的日志收集系統,具有分布式、高可靠、高容錯、易於定制和擴展的特點。
它將數據從產生、傳輸、處理並最終寫入目標的路徑的過程抽象為數據流,在具體的數據流中,數據源支持在Flume中定制數據發送方,從而支持收集各種不同協議數據。同時,Flume數據流提供對日志數據進行簡單處理的能力,如過濾、格式轉換等。此外,Flume還具有能夠將日志寫往各種數據目標(可定制)的能力。總的來說,Flume是一個可擴展、適合復雜環境的海量日志收集系統。


11、Oozie作業流調度引擎 Oozie是一個基於工作流引擎的服務器,可以在上面運行Hadoop的Map Reduce和Pig任務。它其實就是一個運行在Java Servlet容器(比如Tomcat)中的Javas Web應用。


12、Hue,Hadoop自己的監控管理工具。Hue是一個可快速開發和調試Hadoop生態系統各種應用的一個基於瀏覽器的圖形化用戶接口。


13、Nutch,互聯網數據及Nutch搜索引擎應用。Nutch 是一個開源Java實現的搜索引擎。它提供了我們運行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬蟲。


14、Avro 數據序列化工具。Avro是一個數據序列化系統,設計用於支持大批量數據交換的應用。它的主要特點有:支持二進制序列化方式,可以便捷,快速地處理大量數據;動態語言友好,Avro提供的機制使動態語言可以方便地處理Avro數據。


15、Phoenix 可以把Phoenix只看成一種代替HBase的語法的一個工具。雖然可以用java可以用jdbc來連接phoenix,然后操作HBase,但是在生產環境中,不可以用在OLTP(在線事務處理)中。在線事務處理的環境中,需要低延遲,而Phoenix在查詢HBase時,雖然做了一些優化,但延遲還是不小。所以依然是用在OLAP(聯機分析處理)中,再將結果返回存儲下來。


16、Storm 是Twitter開源的分布式實時大數據處理框架,最早開源於github,從0.9.1版本之后,歸於Apache社區,被業界稱為實時版Hadoop。隨着越來越多的場景對Hadoop的MapReduce高延遲無法容忍,比如網站統計、推薦系統、預警系統、金融系統(高頻交易、股票)等等,大數據實時處理解決方案(流計算)的應用日趨廣泛,目前已是分布式技術領域最新爆發點,而Storm更是流計算技術中的佼佼者和主流。


17、Flink 是一個針對流數據和批數據的分布式處理引擎。其所要處理的主要場景就是流數據,批數據只是流數據的一個極限特例而已。再換句話說,Flink 會把所有任務當成流來處理,這也是其最大的特點。Flink 可以支持本地的快速迭代,以及一些環形的迭代任務。並且 Flink 可以定制化內存管理。在這點,如果要對比 Flink 和 Spark 的話,Flink 並沒有將內存完全交給應用層。這也是為什么 Spark 相對於 Flink,更容易出現 OOM 的原因(out of memory)。


18、Spark 是一個新興的大數據處理通用引擎,提供了分布式的內存抽象。Spark 正如其名,最大的特點就是快(Lightning-fast),可比 Hadoop MapReduce 的處理速度快 100 倍。此外,Spark 提供了簡單易用的 API,幾行代碼就能實現 WordCount。本教程主要參考官網快速入門教程,介紹了 Spark 的安裝,Spark shell 、RDD、Spark SQL、Spark Streaming 等的基本使用。


19、YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共享等方面帶來了巨大好處。


20、Kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者規模的網站中的所有動作流數據。 這種動作(網頁瀏覽,搜索和其他用戶的行動)是在現代網絡上的許多社會功能的一個關鍵因素。 這些數據通常是由於吞吐量的要求而通過處理日志和日志聚合來解決。 對於像Hadoop的一樣的日志數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是通過Hadoop的並行加載機制來統一線上和離線的消息處理,也是為了通過集群來提供實時的消費。

 

參考:

http://blog.csdn.net/woshiwanxin102213/article/details/19688393

http://blog.csdn.net/qq_35038153/article/details/77824919

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM