您好,登錄后才能下訂單哦!
這篇文章主要講解了“Hadoop的生態(tài)系統(tǒng)是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Hadoop的生態(tài)系統(tǒng)是什么”吧!
hadoop生態(tài)系統(tǒng),意思就是以hadoop為平臺的各種應(yīng)用框架,相互兼容,組成了一個獨立的應(yīng)用體系,也可以稱之為生態(tài)圈。
通過以下的圖:
hadoop生態(tài)系統(tǒng)
我們可以可以總結(jié)如下常用的應(yīng)用框架(圖中沒有的,我也列出了幾個):
1,HDFS(hadoop分布式文件系統(tǒng))
是hadoop體系中數(shù)據(jù)存儲管理的基礎(chǔ)。他是一個高度容錯的系統(tǒng),能檢測和應(yīng)對硬件故障。
client:切分文件,訪問HDFS,與那么弄得交互,獲取文件位置信息,與DataNode交互,讀取和寫入數(shù)據(jù)。
namenode:master節(jié)點,在hadoop1.x中只有一個,管理HDFS的名稱空間和數(shù)據(jù)塊映射信息,配置副本策略,處理客戶 端請求。
DataNode:slave節(jié)點,存儲實際的數(shù)據(jù),匯報存儲信息給namenode。
secondary namenode:輔助namenode,分擔其工作量:定期合并fsimage和fsedits,推送給namenode;緊急情況下和輔助恢復(fù)namenode,但其并非namenode的熱備。
2,mapreduce(分布式計算框架)
mapreduce是一種計算模型,用于處理大數(shù)據(jù)量的計算。其中map對應(yīng)數(shù)據(jù)集上的獨立元素進行指定的操作,生成鍵-值對形式中間,reduce則對中間結(jié)果中相同的鍵的所有值進行規(guī)約,以得到最終結(jié)果。
jobtracker:master節(jié)點,只有一個,管理所有作業(yè),任務(wù)/作業(yè)的監(jiān)控,錯誤處理等,將任務(wù)分解成一系列任務(wù),并分派給tasktracker。
tacktracker:slave節(jié)點,運行 map task和reducetask;并與jobtracker交互,匯報任務(wù)狀態(tài)。
map task:解析每條數(shù)據(jù)記錄,傳遞給用戶編寫的map()并執(zhí)行,將輸出結(jié)果寫入到本地磁盤(如果為map—only作業(yè),則直接寫入HDFS)。
reduce task:從map 它深刻地執(zhí)行結(jié)果中,遠程讀取輸入數(shù)據(jù),對數(shù)據(jù)進行排序,將數(shù)據(jù)分組傳遞給用戶編寫的reduce函數(shù)執(zhí)行。
3, hive(基于hadoop的數(shù)據(jù)倉庫)
由Facebook開源,最初用于解決海量結(jié)構(gòu)化的日志數(shù)據(jù)統(tǒng)計問題。
hive定于了一種類似sql的查詢語言(hql)將sql轉(zhuǎn)化為mapreduce任務(wù)在hadoop上執(zhí)行。
4,hbase(分布式列存數(shù)據(jù)庫)
hbase是一個針對結(jié)構(gòu)化數(shù)據(jù)的可伸縮,高可靠,高性能,分布式和面向列的動態(tài)模式數(shù)據(jù)庫。和傳統(tǒng)關(guān)系型數(shù)據(jù)庫不同,hbase采用了bigtable的數(shù)據(jù)模型:增強了稀疏排序映射表(key/value)。其中,鍵由行關(guān)鍵字,列關(guān)鍵字和時間戳構(gòu)成,hbase提供了對大規(guī)模數(shù)據(jù)的隨機,實時讀寫訪問,同時,hbase中保存的數(shù)據(jù)可以使用mapreduce來處理,它將數(shù)據(jù)存儲和并行計算完美結(jié)合在一起。
5,zookeeper(分布式協(xié)作服務(wù))
解決分布式環(huán)境下的數(shù)據(jù)管理問題:統(tǒng)一命名,狀態(tài)同步,集群管理,配置同步等。
6,sqoop(數(shù)據(jù)同步工具)
sqoop是sql-to-hadoop的縮寫,主要用于傳統(tǒng)數(shù)據(jù)庫和hadoop之間傳輸數(shù)據(jù)。數(shù)據(jù)的導(dǎo)入和導(dǎo)出本質(zhì)上是mapreduce程序,充分利用了MR的并行化和容錯性。
7,pig(基于hadoop的數(shù)據(jù)流系統(tǒng))
定義了一種數(shù)據(jù)流語言-pig latin,將腳本轉(zhuǎn)換為mapreduce任務(wù)在hadoop上執(zhí)行。通常用于離線分析。
8,mahout(數(shù)據(jù)挖掘算法庫)
mahout的主要目標是創(chuàng)建一些可擴展的機器學習領(lǐng)域經(jīng)典算法的實現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建只能應(yīng)用程序。mahout現(xiàn)在已經(jīng)包含了聚類,分類,推薦引擎(協(xié)同過濾)和頻繁集挖掘等廣泛使用的數(shù)據(jù)挖掘方法。除了算法是,mahout還包含了數(shù)據(jù)的輸入/輸出工具,與其他存儲系統(tǒng)(如數(shù)據(jù)庫,mongoDB或Cassandra)集成等數(shù)據(jù)挖掘支持架構(gòu)。
9,flume(日志收集工具)
cloudera開源的日志收集系統(tǒng),具有分布式,高可靠,高容錯,易于定制和擴展的特點。他將數(shù)據(jù)從產(chǎn)生,傳輸,處理并寫入目標的路徑的過程抽象為數(shù)據(jù)流,在具體的數(shù)據(jù)流中,數(shù)據(jù)源支持在flume中定制數(shù)據(jù)發(fā)送方,從而支持收集各種不同協(xié)議數(shù)據(jù)。
10,資源管理器的簡單介紹(YARN和mesos)
隨著互聯(lián)網(wǎng)的高速發(fā)展,基于數(shù)據(jù) 密集型應(yīng)用 的計算框架不斷出現(xiàn),從支持離線處理的mapreduce,到支持在線處理的storm,從迭代式計算框架到 流式處理框架s4,...,在大部分互聯(lián)網(wǎng)公司中,這幾種框架可能都會采用,比如對于搜索引擎公司,可能的技術(shù)方法如下:網(wǎng)頁建索引采用mapreduce框架,自然語言處理/數(shù)據(jù)挖掘采用spark,對性能要求到的數(shù)據(jù)挖掘算法用mpi等。公司一般將所有的這些框架部署到一個公共的集群中,讓它們共享集群的資源,并對資源進行統(tǒng)一使用,這樣便誕生了資源統(tǒng)一管理與調(diào)度平臺,典型的代表是mesos和yarn。
11,其他的一些開源組件:
1)cloudrea impala:
一個開源的查詢引擎。與hive相同的元數(shù)據(jù),SQL語法,ODBC驅(qū)動程序和用戶接口,可以直接在HDFS上提供快速,交互式SQL查詢。impala不再使用緩慢的hive+mapreduce批處理,而是通過與商用并行關(guān)系數(shù)據(jù)庫中類似的分布式查詢引擎。可以直接從HDFS或者Hbase中用select,join和統(tǒng)計函數(shù)查詢數(shù)據(jù),從而大大降低延遲。
2)spark:
spark是個開源的數(shù)據(jù) 分析集群計算框架,最初由加州大學伯克利分校AMPLab,建立于HDFS之上。spark與hadoop一樣,用于構(gòu)建大規(guī)模,延遲低的數(shù)據(jù)分析應(yīng)用。spark采用Scala語言實現(xiàn),使用Scala作為應(yīng)用框架。
spark采用基于內(nèi)存的分布式數(shù)據(jù)集,優(yōu)化了迭代式的工作負載以及交互式查詢。
與hadoop不同的是,spark與Scala緊密集成,Scala象管理本地collective對象那樣管理分布式數(shù)據(jù)集。spark支持分布式數(shù)據(jù)集上的迭代式任務(wù),實際上可以在hadoop文件系統(tǒng)上與hadoop一起運行(通過YARN,MESOS等實現(xiàn))。
3)storm
storm是一個分布式的,容錯的計算系統(tǒng),storm屬于流處理平臺,多用于實時計算并更新數(shù)據(jù)庫。storm也可被用于“連續(xù)計算”,對數(shù)據(jù)流做連續(xù)查詢,在計算時將結(jié)果一流的形式輸出給用戶。他還可被用于“分布式RPC”,以并行的方式運行昂貴的運算。
4)kafka
kafka是由Apache軟件基金會開發(fā)的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費者規(guī)模的網(wǎng)站中的所有動作流數(shù)據(jù)。 這種動作(網(wǎng)頁瀏覽,搜索和其他用戶的行動)是在現(xiàn)代網(wǎng)絡(luò)上的許多社會功能的一個關(guān)鍵因素。 這些數(shù)據(jù)通常是由于吞吐量的要求而通過處理日志和日志聚合來解決。 對于像Hadoop的一樣的日志數(shù)據(jù)和離線分析系統(tǒng),但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是通過Hadoop的并行加載機制來統(tǒng)一線上和離線的消息處理,也是為了通過集群來提供實時的消息
感謝各位的閱讀,以上就是“Hadoop的生態(tài)系統(tǒng)是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Hadoop的生態(tài)系統(tǒng)是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。