零基礎(chǔ)大數(shù)據(jù)入門3--大數(shù)據(jù)生態(tài)系統(tǒng)及其各組件簡介

本篇引入了大數(shù)據(jù)hadoop生態(tài)系統(tǒng)的概念阵翎,并對其中各組件的功能優(yōu)勢和出現(xiàn)的背景做了一個簡單介紹孵睬。關(guān)于部分組件的詳細(xì)介紹將會在后期博客中給出殃恒,不正確之處歡迎各位看官指正模蜡。

什么是大數(shù)據(jù)生態(tài)系統(tǒng)

What does Hadoop Ecosystem mean?

Definition 1:

The Hadoop ecosystem refers to the various components of the Apache Hadoop software library, as well as to the accessories and tools provided by the Apache Software Foundation for these types of software projects, and to the ways that they work together.

Definition 2:

Hadoop EcosyHstem is neither a programming language nor a service, it is a platform or framework which is extremely popular for handling and analyzing large sets of data.You can consider it as a suite which encompasses a number of services (ingesting, storing, analyzing and maintaining) inside it.

大數(shù)據(jù)生態(tài)系統(tǒng)習(xí)慣被稱為Hadoop生態(tài)系統(tǒng)吞滞,這其中主要包含兩個原因:

? 1. 由多個具備各自特點(diǎn)或功能的組件共同構(gòu)成佑菩,并能夠相互協(xié)作完成大數(shù)據(jù)處理任務(wù)

? 2. hadoop組件是其中最早出現(xiàn)也是最基礎(chǔ)的組件

Hadoop 生態(tài)系統(tǒng)一覽圖

hadoop生態(tài)圈中的組件的角色如圖所示(關(guān)于各組件的詳細(xì)介紹會在下一節(jié)給出)盾沫,特別有趣的是,hadoop生態(tài)圈的組件大多具有動物或者昆蟲類的圖標(biāo)殿漠,而作為管理者zookeeper即表示動物園管理員赴精,即管理動物園生態(tài)圈。

圖1-1.? ?Hadoop 生態(tài)系統(tǒng)一覽圖

Hadoop: 分布式存儲HDFS绞幌、分布式計(jì)算MAPREDUCE蕾哟、資源管理和調(diào)度YARN

Hadoop:當(dāng)人們思考大數(shù)據(jù)的時候,他們會立即想到 Hadoop莲蜘。Hadoop 是一個開源軟件架構(gòu)(logo 是一頭可愛的大象)谭确,它由 Hadoop 分布式文件系統(tǒng)(HDFS)構(gòu)成,它允許使用分布式硬件對大數(shù)據(jù)進(jìn)行存儲票渠、抽象和分析逐哈。如果你真的想讓某人對這個東西印象深刻,你可以跟他說 YARN(Yet Another Resource Scheduler)问顷,顧名思義昂秃,就是另一個資源調(diào)度器。提出 Hadoop 的 Apache 基金會择诈,還負(fù)責(zé) Pig械蹋、Hive 以及 Spark(這都是一些軟件的名字)等項(xiàng)目。

hadoop 1.x版本包含兩大部分:hdfs和mapreduce羞芍,其中hdfs(Hadoop distributed file system)負(fù)責(zé)數(shù)據(jù)高可靠性的分布式的存儲哗戈;mapreduce作為一種計(jì)算框架負(fù)責(zé)對海量數(shù)據(jù)進(jìn)行快速的分布式的計(jì)算。hadoop 2.x版本則在1.x的版本上添加了第三個部分YARN (Yet Another Resource Negotiator) ,YARN作為一種通用的資源管理系統(tǒng)荷科,可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度唯咬,控制整個集群并管理應(yīng)用程序向基礎(chǔ)計(jì)算資源的分配,通俗地講像是“管家”畏浆,其不僅限于MapReduce一種框架胆胰,也可以為其他框架使用,如Tez刻获、Spark蜀涨、Storm等(關(guān)于spark設(shè)置yarn模式將會在今后的博客中詳細(xì)介紹)。此外2.x版本對hdfs和mapreduce的功能進(jìn)行了擴(kuò)展蝎毡,對其性能也進(jìn)行了優(yōu)化厚柳。

圖1-2.? ?Hadoop 1.x和2.x比較

Hive: 基于hdfs中的數(shù)據(jù)查詢

基于Hadoop的一個數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表沐兵,并提供簡單的sql查詢功能别垮,可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。

在hive出現(xiàn)之前扎谎,要查詢hdfs中的數(shù)據(jù)需要編寫mapreduce程序碳想,然后mapreduce的程序語法復(fù)雜難懂烧董、不易上手,而DBA(database administor)在數(shù)據(jù)庫中查詢的時候只需要編寫簡單易懂的sql查詢語句(簡單的類 SQL 查詢語言胧奔,稱為 HQL)逊移。為了解決這一問題,facebook開發(fā)了hive葡盗,其能夠?qū)⒑唵纬S玫膕ql語句轉(zhuǎn)換成復(fù)雜難懂的mapreduce任務(wù)螟左,顯著降低使用者的學(xué)習(xí)成本。Hive由Facebook開源觅够,最初用于解決海量結(jié)構(gòu)化的日志數(shù)據(jù)統(tǒng)計(jì)問題。

HBASE:

hbase是一個針對結(jié)構(gòu)化數(shù)據(jù)的可伸縮巷嚣,高可靠喘先,高性能,分布式和面向列的動態(tài)模式數(shù)據(jù)庫廷粒。和傳統(tǒng)關(guān)系型數(shù)據(jù)庫不同窘拯,hbase采用了bigtable的數(shù)據(jù)模型:增強(qiáng)了稀疏排序映射表(key/value)。其中坝茎,鍵由行關(guān)鍵字涤姊,列關(guān)鍵字和時間戳構(gòu)成,hbase提供了對大規(guī)模數(shù)據(jù)的隨機(jī)嗤放,實(shí)時讀寫訪問思喊,同時,hbase中保存的數(shù)據(jù)可以使用mapreduce來處理次酌,它將數(shù)據(jù)存儲和并行計(jì)算完美結(jié)合在一起恨课。

Spark:

spark是一個基于內(nèi)存計(jì)算的大數(shù)據(jù)框架,

? ● Spark Core:包含Spark的基本功能岳服;尤其是定義RDD的API剂公、操作以及這兩者上的動作。

? ● Spark SQL:提供通過Apache Hive的SQL變體Hive查詢語言(HiveQL)與Spark進(jìn)行交互的API吊宋。

? ● Spark Streaming:對實(shí)時數(shù)據(jù)流進(jìn)行處理和控制纲辽。

? ● MLlib:一個常用機(jī)器學(xué)習(xí)算法庫,算法被實(shí)現(xiàn)為對RDD的Spark操作璃搜。這個庫包含可擴(kuò)展的學(xué)習(xí)算法拖吼,比如分類、回歸等需要對大量數(shù)據(jù)集進(jìn)行迭代的操作腺劣。

? ● GraphX:控制圖绿贞、并行圖操作和計(jì)算的一組算法和工具的集合。

spark本身并不具備分布式文件系統(tǒng)橘原,因此spark可以依賴于HDFS籍铁,也可以基于其他的數(shù)據(jù)

相比于Mapreduce的離線的批量處理batch processing涡上,spark的速度更快,更適用于實(shí)時的迭代計(jì)算拒名,且spark提供的功能更加豐富

zookeeper:

ZooKeeper是一個分布式的吩愧,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),它是一個為分布式應(yīng)用提供一致性服務(wù)的軟件增显,提供的功能包括:配置維護(hù)雁佳、域名服務(wù)、分布式同步同云、組服務(wù)等糖权。

HUE:

Hue全稱Hadoop User Experience,是一個開源的Apache Hadoop UI系統(tǒng)炸站,最早是由Cloudera Desktop演化而來星澳,由Cloudera貢獻(xiàn)給開源社區(qū),它是基于Python Web框架Django實(shí)現(xiàn)的旱易。通過使用Hue我們可以在瀏覽器端的Web控制臺上與Hadoop集群進(jìn)行交互來分析處理數(shù)據(jù)禁偎,例如操作HDFS上的數(shù)據(jù),運(yùn)行MapReduce Job等等阀坏。在hue上配置notebook(實(shí)現(xiàn)多語言自動匹配)如暖,可以進(jìn)行hive和spark查詢等操作。

Apache Zeppelin:

Apache Zeppelin是一個提供了web版的類似ipython的notebook忌堂,用于做數(shù)據(jù)分析和可視化盒至。背后可以接入不同的數(shù)據(jù)處理引擎,包括spark, hive, tajo等浸船,原生支持scala, java, shell, markdown等妄迁。

Storm:

分布式實(shí)時計(jì)算系統(tǒng)。Storm為分布式實(shí)時計(jì)算提供了一組通用原語李命,可被用于“流處理”之中登淘,實(shí)時處理消息并更新數(shù)據(jù)庫。

Flume:

Flume(日志收集工具)是Cloudera提供的一個高可用的封字,高可靠的黔州,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng)阔籽,F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方流妻,用于收集數(shù)據(jù);同時笆制,F(xiàn)lume提供對數(shù)據(jù)進(jìn)行簡單處理绅这,并寫到各種數(shù)據(jù)接受方(可定制)的能力,在具體的數(shù)據(jù)流中在辆,數(shù)據(jù)源支持在flume中定制數(shù)據(jù)發(fā)送方证薇,從而支持收集各種不同協(xié)議數(shù)據(jù)度苔。

pig:

數(shù)據(jù)流語言和運(yùn)行環(huán)境,用以探究非常龐大的數(shù)據(jù)集浑度。pig運(yùn)行在MapReduce和HDFS之上

定義了一種數(shù)據(jù)流語言-pig latin寇窑,將腳本轉(zhuǎn)換為mapreduce任務(wù)在hadoop上執(zhí)行。

kafka:

Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng)箩张。Kafka是一個分布式的甩骏,可劃分的,冗余備份的持久性的日志服務(wù)先慷。它主要用于處理活躍的流式數(shù)據(jù)饮笛。降低系統(tǒng)組網(wǎng)復(fù)雜度。降低編程復(fù)雜度论熙,各個子系統(tǒng)不在是相互協(xié)商接口缎浇,各個子系統(tǒng)類似插口插在插座上,Kafka承擔(dān)高速數(shù)據(jù)總線的作用赴肚。具有高吞吐率,支持Kafka Server間的消息分區(qū)二蓝,及分布式消費(fèi)誉券,同時保證每個Partition內(nèi)的消息順序傳輸,同時支持離線數(shù)據(jù)處理和實(shí)時數(shù)據(jù)處理刊愚。

redis:

Redis是一個開源的使用ANSI C語言編寫踊跟、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型鸥诽、Key-Value數(shù)據(jù)庫商玫,并提供多種語言的API。Redis 本質(zhì)上是一個高性能的key-value數(shù)據(jù)庫牡借。 redis的出現(xiàn)拳昌,很大程度補(bǔ)償了memcached這類key/value存儲的不足,在部 分場合可以對關(guān)系數(shù)據(jù)庫起到很好的補(bǔ)充作用钠龙。

Sqoop:

sql-to-hadoop的縮寫炬藤,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql…)間進(jìn)行數(shù)據(jù)的傳遞碴里,可以將一個關(guān)系型數(shù)據(jù)庫(例如 : MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中沈矿,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫中。對于某些NoSQL數(shù)據(jù)庫它也提供了連接器咬腋。Sqoop羹膳,類似于其他ETL工具\(yùn)

? Oozie:

該服務(wù)用于運(yùn)行和調(diào)度Hadoop作業(yè),可以理解為一個工作流調(diào)度系統(tǒng)

mahout(數(shù)據(jù)挖掘算法庫):

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ù)挖掘方法蠢壹。

資源管理器的簡單介紹(YARN和mesos):

隨著互聯(lián)網(wǎng)的高速發(fā)展嗓违,基于數(shù)據(jù) 密集型應(yīng)用 的計(jì)算框架不斷出現(xiàn),從支持離線處理的mapreduce图贸,到支持在線處理的storm蹂季,從迭代式計(jì)算框架到 流式處理框架s4,...疏日,在大部分互聯(lián)網(wǎng)公司中偿洁,這幾種框架可能都會采用,比如對于搜索引擎公司沟优,可能的技術(shù)方法如下:網(wǎng)頁建索引采用mapreduce框架涕滋,自然語言處理/數(shù)據(jù)挖掘采用spark,對性能要求到的數(shù)據(jù)挖掘算法用mpi等挠阁。公司一般將所有的這些框架部署到一個公共的集群中宾肺,讓它們共享集群的資源,并對資源進(jìn)行統(tǒng)一使用侵俗,這樣便誕生了資源統(tǒng)一管理與調(diào)度平臺锨用,典型的代表是mesos和yarn。

cloudrea impala:

? 一個開源的查詢引擎隘谣。與hive相同的元數(shù)據(jù)增拥,SQL語法,ODBC驅(qū)動程序和用戶接口寻歧,可以直接在HDFS上提供快速掌栅,交互式SQL查詢。impala不再使用緩慢的hive+mapreduce批處理码泛,而是通過與商用并行關(guān)系數(shù)據(jù)庫中類似的分布式查詢引擎猾封。可以直接從HDFS或者Hbase中用select弟晚,join和統(tǒng)計(jì)函數(shù)查詢數(shù)據(jù)忘衍,從而大大降低延遲。


關(guān)于大數(shù)據(jù)學(xué)習(xí)有很多開源資源卿城,更多資源參考將會在下一期的分享中給出枚钓,歡迎閱讀!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瑟押,一起剝皮案震驚了整個濱河市搀捷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖嫩舟,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氢烘,死亡現(xiàn)場離奇詭異,居然都是意外死亡家厌,警方通過查閱死者的電腦和手機(jī)播玖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饭于,“玉大人蜀踏,你說我怎么就攤上這事£溃” “怎么了果覆?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長殖熟。 經(jīng)常有香客問我局待,道長,這世上最難降的妖魔是什么菱属? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任钳榨,我火速辦了婚禮,結(jié)果婚禮上纽门,老公的妹妹穿的比我還像新娘重绷。我一直安慰自己,他們只是感情好膜毁,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著愤钾,像睡著了一般瘟滨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上能颁,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天杂瘸,我揣著相機(jī)與錄音,去河邊找鬼伙菊。 笑死败玉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的镜硕。 我是一名探鬼主播运翼,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼兴枯!你這毒婦竟也來了血淌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悠夯,沒想到半個月后癌淮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沦补,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年乳蓄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夕膀。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡虚倒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出店诗,到底是詐尸還是另有隱情裹刮,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布庞瘸,位于F島的核電站捧弃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏擦囊。R本人自食惡果不足惜违霞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瞬场。 院中可真熱鬧买鸽,春花似錦、人聲如沸贯被。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽彤灶。三九已至看幼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間幌陕,已是汗流浹背诵姜。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搏熄,地道東北人棚唆。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像心例,于是被迫代替她去往敵國和親宵凌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348