大数据技术hadoop入门级生态圈介绍
hadoop 生態概況
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。
用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。
具有可靠、高效、可伸縮的特點。
Hadoop的核心是YARN,HDFS和Mapreduce
?下圖為hadoop的生態系統:
HDFS(Hadoop分布式文件系統)
源自于Google的GFS論文,發表于2003年10月,HDFS是GFS克隆版。
HDFS是Hadoop體系中數據存儲管理的基礎。它是一個高度容錯的系統,能檢測和應對硬件故障,用于在低成本的通用硬件上運行。
HDFS簡化了文件的一致性模型,通過流式數據訪問,提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序。
它提供了一次寫入多次讀取的機制,數據以塊的形式,同時分布在集群不同物理機器上。
Mapreduce(分布式計算框架)
源自于google的MapReduce論文,發表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。
MapReduce是一種分布式計算模型,用以進行大數據量的計算。它屏蔽了分布式計算框架細節,將計算抽象成map和reduce兩部分,
其中Map對數據集上的獨立元素進行指定的操作,生成鍵-值對形式中間結果。Reduce則對中間結果中相同“鍵”的所有“值”進行規約,以得到最終結果。
MapReduce非常適合在大量計算機組成的分布式并行環境里進行數據處理。
JobTracker:Master節點,只有一個,管理所有作業,作業/任務的監控、錯誤處理等;將任務分解成一系列任務,并分派給TaskTracker。
TaskTracker:Slave節點,運行Map Task和Reduce Task;并與JobTracker交互,匯報任務狀態。
Map Task:解析每條數據記錄,傳遞給用戶編寫的map(),并執行,將輸出結果寫入本地磁盤(如果為map-only作業,直接寫入HDFS)。
Reducer Task:從Map Task的執行結果中,遠程讀取輸入數據,對數據進行排序,將數據按照分組傳遞給用戶編寫的reduce函數執行。
Mapreduce處理流程,以wordCount為例:
Yarn(分布式資源管理器)
YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基礎上演變而來的,主要是為了解決原始Hadoop擴展性較差,不支持多計算框架而提出的。
Yarn是下一代 Hadoop 計算平臺,yarn是一個通用的運行時框架,用戶可以編寫自己的計算框架,在該運行環境中運行。
用于自己編寫的框架作為客戶端的一個lib,在運用提交作業時打包即可。該框架為提供了以下幾個組件:
資源管理:包括應用程序管理和機器資源管理
資源雙層調度
容錯性:各個組件均有考慮容錯性
擴展性:可擴展到上萬個節點
Zookeeper(分布式協作服務)
源自Google的Chubby論文,發表于2006年11月,Zookeeper是Chubby克隆版
解決分布式環境下的數據管理問題:統一命名,狀態同步,集群管理,配置同步等。
Hadoop的許多組件依賴于Zookeeper,它運行在計算機集群上面,用于管理Hadoop操作。
HBASE(分布式列存數據庫)
源自Google的Bigtable論文,發表于2006年11月,HBase是Google Bigtable克隆版
HBase是一個建立在HDFS之上,面向列的針對結構化數據的可伸縮、高可靠、高性能、分布式和面向列的動態模式數據庫。
HBase采用了BigTable的數據模型:增強的稀疏排序映射表(Key/Value),其中,鍵由行關鍵字、列關鍵字和時間戳構成。
HBase提供了對大規模數據的隨機、實時讀寫訪問,同時,HBase中保存的數據可以使用MapReduce來處理,它將數據存儲和并行計算完美地結合在一起。
HIVE(數據倉庫)
由facebook開源,最初用于解決海量結構化的日志數據統計問題。
Hive定義了一種類似SQL的查詢語言(HQL),將SQL轉化為MapReduce任務在Hadoop上執行。通常用于離線分析。
HQL用于運行存儲在Hadoop上的查詢語句,Hive讓不熟悉MapReduce開發人員也能編寫數據查詢語句,然后這些語句被翻譯為Hadoop上面的MapReduce任務。
Pig(ad-hoc腳本)
由yahoo!開源,設計動機是提供一種基于MapReduce的ad-hoc(計算在query時發生)數據分析工具
Pig定義了一種數據流語言—Pig Latin,它是MapReduce編程的復雜性的抽象,Pig平臺包括運行環境和用于分析Hadoop數據集的腳本語言(Pig Latin)。
其編譯器將Pig Latin翻譯成MapReduce程序序列將腳本轉換為MapReduce任務在Hadoop上執行。通常用于進行離線分析。
Mahout(數據挖掘算法庫)
Mahout起源于2008年,最初是Apache Lucent的子項目,它在極短的時間內取得了長足的發展,現在是Apache的頂級項目。
Mahout的主要目標是創建一些可擴展的機器學習領域經典算法的實現,旨在幫助開發人員更加方便快捷地創建智能應用程序。
Mahout現在已經包含了聚類、分類、推薦引擎(協同過濾)和頻繁集挖掘等廣泛使用的數據挖掘方法。
除了算法,Mahout還包含數據的輸入/輸出工具、與其他存儲系統(如數據庫、MongoDB 或Cassandra)集成等數據挖掘支持架構。
---------------------?
作者:Smile-GQ?
來源:CSDN?
原文:https://blog.csdn.net/weixin_43273168/article/details/90411277?
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
總結
以上是生活随笔為你收集整理的大数据技术hadoop入门级生态圈介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡刷多少算大额
- 下一篇: ntp服务器查看状态命令ntpstat及