hadoop Common:包括Hadoop常用的工具類(lèi),由原來(lái)的Hadoop core部分更名而來(lái)。主要包括系統(tǒng)配置工具Configuration、遠(yuǎn)程過(guò)程調(diào)用RPC、序列化機(jī)制和Hadoop抽象文件系統(tǒng)FileSystem等。它們?yōu)樵谕ㄓ糜布洗罱ㄔ朴?jì)算環(huán)境提供基本的服務(wù),并為運(yùn)行在該平臺(tái)上的軟件開(kāi)發(fā)提供了所需的API。
為筠連等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及筠連網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、筠連網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
Hadoop Distributed File System (HDFS?):分布式文件系統(tǒng),提供對(duì)應(yīng)用程序數(shù)據(jù)的高吞吐量,高伸縮性,高容錯(cuò)性的訪問(wèn)。是Hadoop體系中數(shù)據(jù)存儲(chǔ)管理的基礎(chǔ)。它是一個(gè)高度容錯(cuò)的系統(tǒng),能檢測(cè)和應(yīng)對(duì)硬件故障,用于在低成本的通用硬件上運(yùn)行。HDFS簡(jiǎn)化了文件的一致性模型,通過(guò)流式數(shù)據(jù)訪問(wèn),提供高吞吐量應(yīng)用程序數(shù)據(jù)訪問(wèn)功能,適合帶有大型數(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)用程序以及以用戶(hù)友好的方式診斷其性能特征的功能。也是5個(gè)頂級(jí)hadoop管理工具之一。
Avro:數(shù)據(jù)序列化系統(tǒng),由Doug Cutting牽頭開(kāi)發(fā),是一個(gè)數(shù)據(jù)序列化系統(tǒng)。類(lèi)似于其他序列化機(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)類(lèi)型、快速可壓縮的二進(jìn)制數(shù)據(jù)格式、存儲(chǔ)持久性數(shù)據(jù)的文件集、遠(yuǎn)程調(diào)用RPC和簡(jiǎn)單動(dòng)態(tài)語(yǔ)言集成等功能。
Cassandra:可擴(kuò)展的多主數(shù)據(jù)庫(kù),沒(méi)有單點(diǎn)故障。是一套開(kāi)源分布式NoSql數(shù)據(jù)庫(kù)系統(tǒng)。它最初由Facebook開(kāi)發(fā),用于儲(chǔ)存收件箱等簡(jiǎn)單格式數(shù)據(jù),集GoogleBigTable的數(shù)據(jù)模型與Amazon Dynamo的完全分布式的架構(gòu)于一身Facebook于2008將 Cassandra 開(kāi)源,此后,由于Cassandra良好的可擴(kuò)展性,被Digg、Twitter等知名Web 2.0網(wǎng)站所采納,成為了一種流行的分布式結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)方案。
Cassandra是一個(gè)混合型的非關(guān)系的數(shù)據(jù)庫(kù),類(lèi)似于Google的BigTable。其主要功能比Dynamo (分布式的Key-Value存儲(chǔ)系統(tǒng))更豐富,但支持度卻不如文檔存儲(chǔ)MongoDB(介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的開(kāi)源產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類(lèi)似json的bjson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類(lèi)型)。Cassandra最初由Facebook開(kāi)發(fā),后轉(zhuǎn)變成了開(kāi)源項(xiàng)目。它是一個(gè)網(wǎng)絡(luò)社交云計(jì)算方面理想的數(shù)據(jù)庫(kù)。以Amazon專(zhuān)有的完全分布式的Dynamo為基礎(chǔ),結(jié)合了Google BigTable基于列族(Column Family)的數(shù)據(jù)模型。P2P去中心化的存儲(chǔ)。很多方面都可以稱(chēng)之為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è)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于 Fay Chang 所撰寫(xiě)的Google論文“Bigtable:一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ)系統(tǒng)”。就像Bigtable利用了Google文件系統(tǒng)(File System)所提供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類(lèi)似于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í)讀寫(xiě)訪問(wèn),同時(shí),HBase中保存的數(shù)據(jù)可以使用MapReduce來(lái)處理,它將數(shù)據(jù)存儲(chǔ)和并行計(jì)算完美地結(jié)合在一起。
Hive:是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供簡(jiǎn)單的sql查詢(xún)功能,可以將sql語(yǔ)句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。 其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過(guò)類(lèi)SQL語(yǔ)句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開(kāi)發(fā)專(zhuān)門(mén)的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ù)集的查詢(xún)和分析能力。Hive提供的是一種結(jié)構(gòu)化數(shù)據(jù)的機(jī)制,定義了類(lèi)似于傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中的類(lèi)SQL語(yǔ)言:Hive QL,通過(guò)該查詢(xún)語(yǔ)言,數(shù)據(jù)分析人員可以很方便地運(yùn)行數(shù)據(jù)分析業(yè)務(wù)。
Mahout:Apache旗下的一個(gè)開(kāi)源項(xiàng)目,提供一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實(shí)現(xiàn),旨在幫助開(kāi)發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout包含許多實(shí)現(xiàn),包括聚類(lèi)、分類(lèi)、推薦過(guò)濾、頻繁子項(xiàng)挖掘。此外,通過(guò)使用 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),旨在幫助開(kāi)發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Mahout現(xiàn)在已經(jīng)包含了聚類(lèi)、分類(lèi)、推薦引擎(協(xié)同過(guò)濾)和頻繁集挖掘等廣泛使用的數(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)域的抽象語(yǔ)言:Pig Latin。通過(guò)Pig Latin,數(shù)據(jù)工程師可以將復(fù)雜且相互關(guān)聯(lián)的數(shù)據(jù)分析任務(wù)編碼為Pig操作上的數(shù)據(jù)流腳本,通過(guò)將該腳本轉(zhuǎn)換為MapReduce任務(wù)鏈,在Hadoop上執(zhí)行。和Hive一樣,Pig降低了對(duì)大型數(shù)據(jù)集進(jìn)行分析和評(píng)估的門(mén)檻。
Apache Pig 是一個(gè)高級(jí)過(guò)程語(yǔ)言,適合于使用 Hadoop 和 MapReduce 平臺(tái)來(lái)查詢(xún)大型半結(jié)構(gòu)化數(shù)據(jù)集。通過(guò)允許對(duì)分布式數(shù)據(jù)集進(jìn)行類(lèi)似 SQL 的查詢(xún),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的處理模式。另一方面,編寫(xiě)MapReduce程序,發(fā)布及運(yùn)行作業(yè)都將是一個(gè)比較耗時(shí)的事情。Pig的出現(xiàn)很好的彌補(bǔ)了這一不足。Pig能夠讓你專(zhuān)心于數(shù)據(jù)及業(yè)務(wù)本身,而不是糾結(jié)于數(shù)據(jù)的格式轉(zhuǎn)換以及MapReduce程序的編寫(xiě)。本質(zhì)是上來(lái)說(shuō),當(dāng)你使用Pig進(jìn)行處理時(shí),Pig本身會(huì)在后臺(tái)生成一系列的MapReduce操作來(lái)執(zhí)行任務(wù),但是這個(gè)過(guò)程對(duì)用戶(hù)來(lái)說(shuō)是透明的。
Spark:Hadoop數(shù)據(jù)快速通用的計(jì)算引擎。 Spark提供了一個(gè)簡(jiǎn)單的編程模型,支持各種應(yīng)用,包括ETL,機(jī)器學(xué)習(xí),流處理和圖形計(jì)算。
Apache Spark 是專(zhuān)為大規(guī)模數(shù)據(jù)處理而設(shè)計(jì)的快速通用的計(jì)算引擎。
Spark是UC Berkeley AMP lab (加州大學(xué)伯克利分校的AMP實(shí)驗(yàn)室)所開(kāi)源的類(lèi)Hadoop MapReduce的通用并行框架,Spark,擁有Hadoop MapReduce所具有的優(yōu)點(diǎn);但不同于MapReduce的是Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫(xiě)HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法。
Spark 是一種與 Hadoop 相似的開(kāi)源集群計(jì)算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負(fù)載方面表現(xiàn)得更加優(yōu)越,換句話說(shuō),Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢(xún)外,它還可以?xún)?yōu)化迭代工作負(fù)載。
Spark 是在 Scala 語(yǔ)言中實(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)行。通過(guò)名為 Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學(xué)伯克利分校 AMP 實(shí)驗(yàn)室 (Algorithms, Machines, and People Lab) 開(kāi)發(fā),可用來(lái)構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序。
Tez:用于構(gòu)建高性能批處理和交互式數(shù)據(jù)處理應(yīng)用程序的可擴(kuò)展框架,由Apache Hadoop中的YARN協(xié)調(diào)。 Tez通過(guò)大幅度提高其速度來(lái)改進(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)過(guò)一些控制程序組裝后,可形成一個(gè)大的DAG作業(yè)。
ZooKeeper:一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開(kāi)源的實(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)提供給用戶(hù)。
在分布式系統(tǒng)中如何就某個(gè)值(決議)達(dá)成一致,是一個(gè)十分重要的基礎(chǔ)問(wèn)題。ZooKeeper作為一個(gè)分布式的服務(wù)框架,解決了分布式計(jì)算中的一致性問(wèn)題。在此基礎(chǔ)上,ZooKeeper可用于處理分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問(wèn)題,如統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等。ZooKeeper常作為其他Hadoop相關(guān)項(xiàng)目的主要組件,發(fā)揮著越來(lái)越重要的作用。
結(jié)語(yǔ)
感謝您的觀看,如有不足之處,歡迎批評(píng)指正。
為了幫助大家讓學(xué)習(xí)變得輕松、高效,給大家免費(fèi)分享一大批資料,幫助大家在成為大數(shù)據(jù)工程師,乃至架構(gòu)師的路上披荊斬棘。在這里給大家推薦一個(gè)大數(shù)據(jù)學(xué)習(xí)交流圈:658558542 歡迎大家進(jìn)×××流討論,學(xué)習(xí)交流,共同進(jìn)步。
當(dāng)真正開(kāi)始學(xué)習(xí)的時(shí)候難免不知道從哪入手,導(dǎo)致效率低下影響繼續(xù)學(xué)習(xí)的信心。
但最重要的是不知道哪些技術(shù)需要重點(diǎn)掌握,學(xué)習(xí)時(shí)頻繁踩坑,最終浪費(fèi)大量時(shí)間,所以有有效資源還是很有必要的。
最后祝福所有遇到瓶疾且不知道怎么辦的大數(shù)據(jù)程序員們,祝福大家在往后的工作與面試中一切順利。
當(dāng)前名稱(chēng):新手必備:大數(shù)據(jù)框架Hadoop主要模塊解析
文章網(wǎng)址:http://www.ekvhdxd.cn/article22/jiiojc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、品牌網(wǎng)站制作、靜態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)