偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

終于有人把 Hadoop 生態(tài)的核心講明白了!

大數(shù)據(jù) Hadoop
Hadoop是一個由Apache基金會開發(fā)的分布式系統(tǒng)基礎架構(gòu)。開發(fā)人員可以在不了解分布式底層細節(jié)的情況下開發(fā)分布式程序,充分利用集群的威力進行高速并行運算以及海量數(shù)據(jù)的分布式存儲。

[[423200]]

Hadoop是一個由Apache基金會開發(fā)的分布式系統(tǒng)基礎架構(gòu)。開發(fā)人員可以在不了解分布式底層細節(jié)的情況下開發(fā)分布式程序,充分利用集群的威力進行高速并行運算以及海量數(shù)據(jù)的分布式存儲。Hadoop大數(shù)據(jù)技術架構(gòu)如圖1所示。

圖1 Hadoop大數(shù)據(jù)技術架構(gòu)

然而,Hadoop不是一個孤立的技術,而是一套完整的生態(tài)圈,如圖2所示。在這個生態(tài)圈中,Hadoop最核心的組件就是分布式文件系統(tǒng)HDFS和分布式計算框架MapReduce。HDFS為海量的數(shù)據(jù)提供了存儲,是整個大數(shù)據(jù)平臺的基礎,而MapReduce則為海量的數(shù)據(jù)提供了計算能力。在它們之上有各種大數(shù)據(jù)技術框架,包括數(shù)據(jù)倉庫Hive、流式計算Storm、數(shù)據(jù)挖掘工具Mahout和分布式數(shù)據(jù)庫HBase。此外,ZooKeeper為Hadoop集群提供了高可靠運行的框架,保證Hadoop集群在部分節(jié)點宕機的情況下依然可靠運行。Sqoop與Flume分別是結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)采集工具,通過它們可以將海量數(shù)據(jù)抽取到Hadoop平臺上,進行后續(xù)的大數(shù)據(jù)分析。

圖2 Hadoop大數(shù)據(jù)生態(tài)圈

Cloudera與Hortonworks是大數(shù)據(jù)的集成工具,它們將大數(shù)據(jù)技術的各種組件集成在一起,簡化安裝、部署等工作,并提供統(tǒng)一的配置、管理、監(jiān)控等功能。Oozie是一個業(yè)務編排工具,我們將復雜的大數(shù)據(jù)處理過程解耦成一個個小腳本,然后用Oozie組織在一起進行業(yè)務編排,定期執(zhí)行與調(diào)度。

01分布式文件系統(tǒng)

過去,我們用諸如DOS、Windows、Linux、UNIX等許多系統(tǒng)來在計算機上存儲并管理各種文件。與它們不同的是,分布式文件系統(tǒng)是將文件散列地存儲在多個服務器上,從而可以并行處理海量數(shù)據(jù)。

Hadoop的分布式文件系統(tǒng)HDFS如圖3所示,它首先將服務器集群分為名稱節(jié)點(NameNode)與數(shù)據(jù)節(jié)點(DataNode)。名稱節(jié)點是控制節(jié)點,當需要存儲數(shù)據(jù)時,名稱節(jié)點將很大的數(shù)據(jù)文件拆分成一個個大小為128MB的小文件,然后散列存儲在其下的很多數(shù)據(jù)節(jié)點中。當Hadoop需要處理這個數(shù)據(jù)文件時,實際上就是將其分布到各個數(shù)據(jù)節(jié)點上進行并行處理,使性能得到大幅提升。

圖3 分布式文件系統(tǒng)HDFS

同時,每個小文件在存儲時,還會進行多節(jié)點復制(默認是3節(jié)點復制),一方面可以并行讀取數(shù)據(jù),另一方面可以保障數(shù)據(jù)的安全,即任何一個節(jié)點失效,數(shù)據(jù)都不會丟失。當一個節(jié)點宕機時,如果該節(jié)點的數(shù)據(jù)不足3份,就會立即發(fā)起數(shù)據(jù)復制,始終保持3節(jié)點的復制。正因為具有這樣高可靠的文件存儲,Hadoop的部署不需要備份,也不需要磁盤鏡像,在Hadoop集群的各個節(jié)點中掛載大容量的磁盤并配置Raid0就可以了。

02分布式計算框架

Hadoop的另一個關鍵組件是分布式計算框架MapReduce,它將海量數(shù)據(jù)的處理分布到許多數(shù)據(jù)節(jié)點中并行進行,從而提高系統(tǒng)的運行效率。

MapReduce計算詞頻的處理過程如圖4所示。在這個過程中,首先輸入要處理的數(shù)據(jù)文件,經(jīng)過Splitting將其拆分到各個節(jié)點中,并在這些節(jié)點的本地執(zhí)行Mapping,將其制作成一個Map。不同的任務可以設計不同的Map。譬如,現(xiàn)在的任務是計算詞頻,因此該Map的key是不同的詞,value是1。這樣,在后續(xù)的處理過程中,將相同詞的1加在一起就是該詞的詞頻了。

圖4 分布式計算框架MapReduce

Mapping操作執(zhí)行完以后,就開始Shuffling操作。它是整個執(zhí)行過程中效率最差的部分,需要在各個節(jié)點間交換數(shù)據(jù),將同一個詞的數(shù)據(jù)放到同一個節(jié)點上。如何有效地降低交換的數(shù)據(jù)量成為優(yōu)化性能的關鍵。接著,在每個節(jié)點的本地執(zhí)行Reducing操作,將同一個詞的這些1加在一起,就得到了詞頻。最后,將分布在各個節(jié)點的結(jié)果集中到一起,就可以輸出了。

整個計算有6個處理過程,那么為什么它的名字叫MapReduce呢?因為其他處理過程都被框架封裝了,開發(fā)人員只需要編寫Map和Reduce過程就能完成各種各樣的數(shù)據(jù)處理。這樣,技術門檻降低了,大數(shù)據(jù)技術得以流行起來。

03優(yōu)缺點

與傳統(tǒng)的數(shù)據(jù)庫相比,MapReduce分布式計算雖然有無與倫比的性能優(yōu)勢,但并不適用于所有場景。MapReduce沒有索引,它的每次計算都是“暴力全掃描”,即將整個文件的所有數(shù)據(jù)都掃描一遍。如果要分析的結(jié)果涉及該文件80%以上的數(shù)據(jù),與關系型數(shù)據(jù)庫相比,能獲得非常優(yōu)異的性能。如果只是為了查找該文件中的某幾十條記錄,那么它既耗費資源,性能也沒有關系型數(shù)據(jù)庫好。因此,MapReduce的分布式計算更適合在后臺對批量數(shù)據(jù)進行離線計算,即一次性對海量數(shù)據(jù)進行分析、整理與運算。它并不適用于在前臺面向終端用戶的在線業(yè)務、事務處理與隨機查詢。

同時,MapReduce更適合對大數(shù)據(jù)文件的處理,而不適合對海量小文件的處理。因此,當要處理海量的用戶文檔、圖片、數(shù)據(jù)文件時,應當將其整合成一個大文件(序列文件),然后交給MapReduce處理。唯有這樣才能充分發(fā)揮MapReduce的性能。

 

本文摘編自《架構(gòu)真意:企業(yè)級應用架構(gòu)設計方法論與實踐》,經(jīng)出版方授權發(fā)布。

 

責任編輯:武曉燕 來源: 數(shù)倉寶貝庫
相關推薦

2021-10-09 00:02:04

DevOps敏捷開發(fā)

2021-06-13 12:03:46

SaaS軟件即服務

2022-03-27 20:32:28

Knative容器事件模型

2021-06-29 11:21:41

數(shù)據(jù)安全網(wǎng)絡安全黑客

2020-11-30 08:34:44

大數(shù)據(jù)數(shù)據(jù)分析技術

2022-04-22 11:26:55

數(shù)據(jù)管理架構(gòu)

2021-02-14 00:21:37

區(qū)塊鏈數(shù)字貨幣金融

2022-04-12 18:29:41

元數(shù)據(jù)系統(tǒng)架構(gòu)

2022-07-31 20:29:28

日志系統(tǒng)

2022-01-05 18:27:44

數(shù)據(jù)挖掘工具

2021-03-03 21:31:24

量化投資利潤

2021-10-17 20:38:30

微服務內(nèi)存組件

2021-03-25 11:24:25

爬蟲技術開發(fā)

2020-11-03 07:04:39

云計算公有云私有云

2022-04-27 18:25:02

數(shù)據(jù)采集維度

2021-12-03 18:25:56

數(shù)據(jù)指標本質(zhì)

2021-10-12 18:31:40

流量運營前端

2022-05-01 22:09:27

數(shù)據(jù)模型大數(shù)據(jù)

2022-06-26 18:52:02

Hadoop大數(shù)據(jù)系統(tǒng)

2020-10-29 06:09:37

數(shù)據(jù)中臺數(shù)據(jù)大數(shù)據(jù)
點贊
收藏

51CTO技術棧公眾號