新手必備:大數(shù)據(jù)框架Hadoop主要模塊解析-創(chuàng)新互聯(lián)

hadoop Common: 包括Hadoop常用的工具類,由原來的Hadoop core部分更名而來。主要包括系統(tǒng)配置工具Configuration、遠(yuǎn)程過程調(diào)用RPC、序列化機(jī)制和Hadoop抽象文件系統(tǒng)FileSystem等。它們?yōu)樵谕ㄓ糜布洗罱ㄔ朴?jì)算環(huán)境提供基本的服務(wù),并為運(yùn)行在該平臺(tái)上的軟件開發(fā)提供了所需的API。

10年積累的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有白水免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

Hadoop Distributed File System (HDFS?):分布式文件系統(tǒng),提供對(duì)應(yīng)用程序數(shù)據(jù)的高吞吐量,高伸縮性,高容錯(cuò)性的訪問。是Hadoop體系中數(shù)據(jù)存儲(chǔ)管理的基礎(chǔ)。它是一個(gè)高度容錯(cuò)的系統(tǒng),能檢測(cè)和應(yīng)對(duì)硬件故障,用于在低成本的通用硬件上運(yùn)行。HDFS簡(jiǎn)化了文件的一致性模型,通過流式數(shù)據(jù)訪問,提供高吞吐量應(yīng)用程序數(shù)據(jù)訪問功能,適合帶有大型數(shù)據(jù)集的應(yīng)用程序。

Hadoop YARN:任務(wù)調(diào)度和集群資源管理。

Hadoop MapReduce:
基于YARN的大型數(shù)據(jù)集并行處理系統(tǒng)。是一種計(jì)算模型,用以進(jìn)行大數(shù)據(jù)量的計(jì)算。Hadoop的MapReduce實(shí)現(xiàn),和Common、HDFS一起,構(gòu)成了Hadoop發(fā)展初期的三個(gè)組件。MapReduce將應(yīng)用劃分為Map和Reduce兩個(gè)步驟,其中Map對(duì)數(shù)據(jù)集上的獨(dú)立元素進(jìn)行指定的操作,生成鍵-值對(duì)形式中間結(jié)果。Reduce則對(duì)中間結(jié)果中相同“鍵”的所有“值”進(jìn)行規(guī)約,以得到最終結(jié)果。MapReduce這樣的功能劃分,非常適合在大量計(jì)算機(jī)組成的分布式并行環(huán)境里進(jìn)行數(shù)據(jù)處理。

其他模塊:

Ambari:
是一種基于Web的工具,支持Apache Hadoop集群的供應(yīng)、管理和監(jiān)控。Ambari目前已支持大多數(shù)Hadoop組件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。Ambari 支持HDFS、MapReduce、Hive、Pig、Hbase、Zookeper、Sqoop和Hcatalog等的集中管理。Ambari還提供了一個(gè)用于查看集群健康狀況的儀表板,例如散熱圖,以及可視化查看MapReduce,Pig和Hive應(yīng)用程序以及以用戶友好的方式診斷其性能特征的功能。也是5個(gè)頂級(jí)hadoop管理工具之一。

Avro: 數(shù)據(jù)序列化系統(tǒng),由Doug Cutting牽頭開發(fā),是一個(gè)數(shù)據(jù)序列化系統(tǒng)。類似于其他序列化機(jī)制,Avro可以將數(shù)據(jù)結(jié)構(gòu)或者對(duì)象轉(zhuǎn)換成便于存儲(chǔ)和傳輸?shù)母袷?,其設(shè)計(jì)目標(biāo)是用于支持?jǐn)?shù)據(jù)密集型應(yīng)用,適合大規(guī)模數(shù)據(jù)的存儲(chǔ)與交換。Avro提供了豐富的數(shù)據(jù)結(jié)構(gòu)類型、快速可壓縮的二進(jìn)制數(shù)據(jù)格式、存儲(chǔ)持久性數(shù)據(jù)的文件集、遠(yuǎn)程調(diào)用RPC和簡(jiǎn)單動(dòng)態(tài)語言集成等功能。

Cassandra: 可擴(kuò)展的多主數(shù)據(jù)庫(kù),沒有單點(diǎn)故障。是一套開源分布式NoSQL數(shù)據(jù)庫(kù)系統(tǒng)。它最初由Facebook開發(fā),用于儲(chǔ)存收件箱等簡(jiǎn)單格式數(shù)據(jù),集GoogleBigTable的數(shù)據(jù)模型與Amazon Dynamo的完全分布式的架構(gòu)于一身Facebook于2008將 Cassandra 開源,此后,由于Cassandra良好的可擴(kuò)展性,被Digg、Twitter等知名Web 2.0網(wǎng)站所采納,成為了一種流行的分布式結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方案。

Cassandra是一個(gè)混合型的非關(guān)系的數(shù)據(jù)庫(kù),類似于Google的BigTable。其主要功能比Dynamo (分布式的Key-Value存儲(chǔ)系統(tǒng))更豐富,但支持度卻不如文檔存儲(chǔ)MongoDB(介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的開源產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bjson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型)。Cassandra最初由Facebook開發(fā),后轉(zhuǎn)變成了開源項(xiàng)目。它是一個(gè)網(wǎng)絡(luò)社交云計(jì)算方面理想的數(shù)據(jù)庫(kù)。以Amazon專有的完全分布式的Dynamo為基礎(chǔ),結(jié)合了Google BigTable基于列族(Column Family)的數(shù)據(jù)模型。P2P去中心化的存儲(chǔ)。很多方面都可以稱之為Dynamo 2.0。

Chukwa: 用于管理大型分布式系統(tǒng)的數(shù)據(jù)收集系統(tǒng)(2000+以上的節(jié)點(diǎn), 系統(tǒng)每天產(chǎn)生的監(jiān)控?cái)?shù)據(jù)量在T級(jí)別)。它構(gòu)建在Hadoop的HDFS和MapReduce基礎(chǔ)之上,繼承了Hadoop的可伸縮性和魯棒性。Chukwa包含一個(gè)強(qiáng)大和靈活的工具集,提供了數(shù)據(jù)的生成、收集、排序、去重、分析和展示等一系列功能,是Hadoop使用者、集群運(yùn)營(yíng)人員和管理人員的必備工具。

Hbase: 是一個(gè)分布式的、面向列的開源數(shù)據(jù)庫(kù),該技術(shù)來源于 Fay Chang 所撰寫的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。另一個(gè)不同的是HBase基于列的而不是基于行的模式。

HBase是一個(gè)針對(duì)結(jié)構(gòu)化數(shù)據(jù)的可伸縮、高可靠、高性能、分布式和面向列的動(dòng)態(tài)模式數(shù)據(jù)庫(kù)。和傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)不同,HBase采用了BigTable的數(shù)據(jù)模型:增強(qiáng)的稀疏排序映射表(Key/Value),其中,鍵由行關(guān)鍵字、列關(guān)鍵字和時(shí)間戳構(gòu)成。HBase提供了對(duì)大規(guī)模數(shù)據(jù)的隨機(jī)、實(shí)時(shí)讀寫訪問,同時(shí),HBase中保存的數(shù)據(jù)可以使用MapReduce來處理,它將數(shù)據(jù)存儲(chǔ)和并行計(jì)算完美地結(jié)合在一起。

Hive: 是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供簡(jiǎn)單的sql查詢功能,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。 其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過類SQL語句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉(cāng)庫(kù)的統(tǒng)計(jì)分析。

Hive是Hadoop中的一個(gè)重要子項(xiàng)目,最早由Facebook設(shè)計(jì),是建立在Hadoop基礎(chǔ)上的數(shù)據(jù)倉(cāng)庫(kù)架構(gòu),它為數(shù)據(jù)倉(cāng)庫(kù)的管理提供了許多功能,包括:數(shù)據(jù)ETL(抽取、轉(zhuǎn)換和加載)工具、數(shù)據(jù)存儲(chǔ)管理和大型數(shù)據(jù)集的查詢和分析能力。Hive提供的是一種結(jié)構(gòu)化數(shù)據(jù)的機(jī)制,定義了類似于傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中的類SQL語言:Hive QL,通過該查詢語言,數(shù)據(jù)分析人員可以很方便地運(yùn)行數(shù)據(jù)分析業(yè)務(wù)。

Mahout: Apache旗下的一個(gè)開源項(xiàng)目,提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout包含許多實(shí)現(xiàn),包括聚類、分類、推薦過濾、頻繁子項(xiàng)挖掘。此外,通過使用 Apache Hadoop 庫(kù),Mahout 可以有效地?cái)U(kuò)展到云中。

Mahout起源于2008年,最初是Apache Lucent的子項(xiàng)目,它在極短的時(shí)間內(nèi)取得了長(zhǎng)足的發(fā)展,現(xiàn)在是Apache的頂級(jí)項(xiàng)目。Mahout的主要目標(biāo)是創(chuàng)建一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout現(xiàn)在已經(jīng)包含了聚類、分類、推薦引擎(協(xié)同過濾)和頻繁集挖掘等廣泛使用的數(shù)據(jù)挖掘方法。除了算法,Mahout還包含數(shù)據(jù)的輸入/輸出工具、與其他存儲(chǔ)系統(tǒng)(如數(shù)據(jù)庫(kù)、MongoDB 或Cassandra)集成等數(shù)據(jù)挖掘支持架構(gòu)。

Pig: 運(yùn)行在Hadoop上,是對(duì)大型數(shù)據(jù)集進(jìn)行分析和評(píng)估的平臺(tái)。它簡(jiǎn)化了使用Hadoop進(jìn)行數(shù)據(jù)分析的要求,提供了一個(gè)高層次的、面向領(lǐng)域的抽象語言:Pig Latin。通過Pig Latin,數(shù)據(jù)工程師可以將復(fù)雜且相互關(guān)聯(lián)的數(shù)據(jù)分析任務(wù)編碼為Pig操作上的數(shù)據(jù)流腳本,通過將該腳本轉(zhuǎn)換為MapReduce任務(wù)鏈,在Hadoop上執(zhí)行。和Hive一樣,Pig降低了對(duì)大型數(shù)據(jù)集進(jìn)行分析和評(píng)估的門檻。

Apache Pig 是一個(gè)高級(jí)過程語言,適合于使用 Hadoop 和 MapReduce 平臺(tái)來查詢大型半結(jié)構(gòu)化數(shù)據(jù)集。通過允許對(duì)分布式數(shù)據(jù)集進(jìn)行類似 SQL 的查詢,Pig 可以簡(jiǎn)化 Hadoop 的使用。

用MapReduce進(jìn)行數(shù)據(jù)分析。當(dāng)業(yè)務(wù)比較復(fù)雜的時(shí)候,使用MapReduce將會(huì)是一個(gè)很復(fù)雜的事情,比如你需要對(duì)數(shù)據(jù)進(jìn)行很多預(yù)處理或轉(zhuǎn)換,以便能夠適應(yīng)MapReduce的處理模式。另一方面,編寫MapReduce程序,發(fā)布及運(yùn)行作業(yè)都將是一個(gè)比較耗時(shí)的事情。Pig的出現(xiàn)很好的彌補(bǔ)了這一不足。Pig能夠讓你專心于數(shù)據(jù)及業(yè)務(wù)本身,而不是糾結(jié)于數(shù)據(jù)的格式轉(zhuǎn)換以及MapReduce程序的編寫。本質(zhì)是上來說,當(dāng)你使用Pig進(jìn)行處理時(shí),Pig本身會(huì)在后臺(tái)生成一系列的MapReduce操作來執(zhí)行任務(wù),但是這個(gè)過程對(duì)用戶來說是透明的。

Spark: Hadoop數(shù)據(jù)快速通用的計(jì)算引擎。 Spark提供了一個(gè)簡(jiǎn)單的編程模型,支持各種應(yīng)用,包括ETL,機(jī)器學(xué)習(xí),流處理和圖形計(jì)算。

Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。

Spark是UC Berkeley AMP lab (加州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室)所開源的類Hadoop MapReduce的通用并行框架,Spark,擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法。

Spark 是一種與 Hadoop 相似的開源集群計(jì)算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負(fù)載方面表現(xiàn)得更加優(yōu)越,換句話說,Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。

Spark 是在 Scala 語言中實(shí)現(xiàn)的,它將 Scala 用作其應(yīng)用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對(duì)象一樣輕松地操作分布式數(shù)據(jù)集。

盡管創(chuàng)建 Spark 是為了支持分布式數(shù)據(jù)集上的迭代作業(yè),但是實(shí)際上它是對(duì) Hadoop 的補(bǔ)充,可以在 Hadoop 文件系統(tǒng)中并行運(yùn)行。通過名為 Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學(xué)伯克利分校 AMP 實(shí)驗(yàn)室 (Algorithms, Machines, and People Lab) 開發(fā),可用來構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序。

Tez: 用于構(gòu)建高性能批處理和交互式數(shù)據(jù)處理應(yīng)用程序的可擴(kuò)展框架,由Apache Hadoop中的YARN協(xié)調(diào)。 Tez通過大幅度提高其速度來改進(jìn)MapReduce范式,同時(shí)保持MapReduce擴(kuò)展到PB級(jí)數(shù)據(jù)的能力。支持DAG(Database Availability Group 數(shù)據(jù)庫(kù)可用性組)作業(yè)的計(jì)算框架,它直接源于MapReduce框架,核心思想是將Map和Reduce兩個(gè)操作進(jìn)一步拆分,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,這樣,這些分解后的元操作可以任意靈活組合,產(chǎn)生新的操作,這些操作經(jīng)過一些控制程序組裝后,可形成一個(gè)大的DAG作業(yè)。

ZooKeeper:
一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。

ZooKeeper的目標(biāo)就是封裝好復(fù)雜易出錯(cuò)的關(guān)鍵服務(wù),將簡(jiǎn)單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。

在分布式系統(tǒng)中如何就某個(gè)值(決議)達(dá)成一致,是一個(gè)十分重要的基礎(chǔ)問題。ZooKeeper作為一個(gè)分布式的服務(wù)框架,解決了分布式計(jì)算中的一致性問題。在此基礎(chǔ)上,ZooKeeper可用于處理分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問題,如統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等。ZooKeeper常作為其他Hadoop相關(guān)項(xiàng)目的主要組件,發(fā)揮著越來越重要的作用。

結(jié)語

感謝您的觀看,如有不足之處,歡迎批評(píng)指正。
為了幫助大家讓學(xué)習(xí)變得輕松、高效,給大家免費(fèi)分享一大批資料,幫助大家在成為大數(shù)據(jù)工程師,乃至架構(gòu)師的路上披荊斬棘。在這里給大家推薦一個(gè)大數(shù)據(jù)學(xué)習(xí)交流圈:658558542 歡迎大家進(jìn)×××流討論,學(xué)習(xí)交流,共同進(jìn)步。

當(dāng)真正開始學(xué)習(xí)的時(shí)候難免不知道從哪入手,導(dǎo)致效率低下影響繼續(xù)學(xué)習(xí)的信心。

但最重要的是不知道哪些技術(shù)需要重點(diǎn)掌握,學(xué)習(xí)時(shí)頻繁踩坑,最終浪費(fèi)大量時(shí)間,所以有有效資源還是很有必要的。

最后祝福所有遇到瓶疾且不知道怎么辦的大數(shù)據(jù)程序員們,祝福大家在往后的工作與面試中一切順利。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)頁名稱:新手必備:大數(shù)據(jù)框架Hadoop主要模塊解析-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://bm7419.com/article36/dgdosg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、企業(yè)建站品牌網(wǎng)站制作、服務(wù)器托管、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)