成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hadoop是什么,架構(gòu)是怎么樣的?

大數(shù)據(jù) Hadoop
從技術(shù)的角度看,這是一個(gè)將海量數(shù)據(jù)先存起來(lái),再將數(shù)據(jù)拿出來(lái)進(jìn)行計(jì)算,并得到結(jié)果的過(guò)程。 如果使用 mysql 數(shù)據(jù)庫(kù)將這海量數(shù)據(jù)存起來(lái),再執(zhí)行 sql 進(jìn)行統(tǒng)計(jì),大概率直接卡死。

你是一個(gè)程序員,你做了一個(gè)商城網(wǎng)站,里面的東西賣的太好了,每天都會(huì)產(chǎn)生巨量的用戶行為和訂單數(shù)據(jù),通過(guò)分析海量的數(shù)據(jù),老板得出一個(gè)驚人結(jié)論:程序員消費(fèi)力不如狗。

從技術(shù)的角度看,這是一個(gè)將海量數(shù)據(jù)先存起來(lái),再將數(shù)據(jù)拿出來(lái)進(jìn)行計(jì)算,并得到結(jié)果的過(guò)程。

如果使用 mysql 數(shù)據(jù)庫(kù)將這海量數(shù)據(jù)存起來(lái),再執(zhí)行 sql 進(jìn)行統(tǒng)計(jì),大概率直接卡死。

那么問(wèn)題來(lái)了,怎么讀寫(xiě)這類海量數(shù)據(jù)場(chǎng)景呢?

沒(méi)有什么是加一層中間層不能解決的,如果有,那就再加一層。

這次我們要加的是 Hadoop 全家桶和它的朋友們。

圖片圖片

Hadoop 是什么?

像我們平時(shí)用的 mysql,處理個(gè)幾百 GB 數(shù)據(jù)就已經(jīng)比較極限了。如果數(shù)據(jù)再大點(diǎn),比如 TB,PB 這樣的規(guī)模,我們就稱它為大數(shù)據(jù)

它不僅數(shù)據(jù)規(guī)模大,增長(zhǎng)速度也非常快。mysql根本扛不住。

所以需要有專門的工具做處理。Hadoop 就是一套專門用于大數(shù)據(jù)處理的工具, 內(nèi)部由多個(gè)組件構(gòu)成。

你可以將它理解為應(yīng)用和大數(shù)據(jù)之間的一個(gè)中間層。

以前數(shù)據(jù)量小的時(shí)候,應(yīng)用程序讀寫(xiě) mysql,現(xiàn)在數(shù)據(jù)量大了,應(yīng)用程序就改為讀寫(xiě) Hadoop全家桶。

Hadoop 為應(yīng)用程序屏蔽了大數(shù)據(jù)的一些處理細(xì)節(jié),對(duì)外提供一系列的讀寫(xiě) API, 應(yīng)用通過(guò)調(diào)用 API,實(shí)現(xiàn)對(duì)大數(shù)據(jù)的處理。

圖片圖片

我們來(lái)看下它是怎么做到的。

大數(shù)據(jù)怎么處理

大數(shù)據(jù)之所以難處理,本質(zhì)原因在于它。所以解決思路也很簡(jiǎn)單,核心只有一個(gè)字,那就是"", 將處理不過(guò)來(lái)的大數(shù)據(jù),切分成一份份處理得過(guò)來(lái)的小數(shù)據(jù)。

圖片圖片

對(duì)小份數(shù)據(jù)進(jìn)行存儲(chǔ)計(jì)算等一系列操作。

所以 Hadoop 要解決的核心問(wèn)題有兩個(gè),一個(gè)是怎么存,另一個(gè)是怎么算

圖片圖片

怎么存

對(duì)于 TB,PB 級(jí)別的大數(shù)據(jù),一臺(tái)服務(wù)器的硬盤(pán)裝不下,我們就用多臺(tái)服務(wù)器的硬盤(pán)來(lái)裝。

文件太大,那就切。我們可以將大文件切分成一個(gè)個(gè) 128MB 的數(shù)據(jù)塊,也就是block。

圖片圖片

放到多臺(tái)服務(wù)器硬盤(pán)上,怕一臺(tái)數(shù)據(jù)崩了影響數(shù)據(jù)完整性,那就多復(fù)制幾份數(shù)據(jù)在多臺(tái)服務(wù)器備份著。這些存放數(shù)據(jù)的服務(wù)器,就叫 datanode.

圖片圖片

以前我們只需要從一臺(tái)服務(wù)器里讀寫(xiě)數(shù)據(jù),現(xiàn)在就變成了需要在多臺(tái)服務(wù)器里讀寫(xiě)數(shù)據(jù),因此需要有一個(gè)軟件為我們屏蔽多臺(tái)服務(wù)器的讀寫(xiě)復(fù)雜性,這個(gè)負(fù)責(zé)切分和存儲(chǔ)數(shù)據(jù)的分布式軟件,就叫 HDFS,全名 Hadoop Distributed File System,也就是 Hadoop 的分布式文件系統(tǒng)。

圖片圖片

怎么算

大數(shù)據(jù)的存儲(chǔ)問(wèn)題是解決了,那怎么對(duì)大數(shù)據(jù)進(jìn)行計(jì)算呢?

比如,我們需要統(tǒng)計(jì)商城所有用戶訂單的性別和消費(fèi)金額。

假設(shè)商城的全部訂單數(shù)據(jù)共1280G,想從HDFS全部加載到內(nèi)存中做計(jì)算,沒(méi)有一臺(tái)服務(wù)器扛得住,有解法嗎?

有!跟存儲(chǔ)類似,也將數(shù)據(jù)切分為很多份,每份叫一個(gè)分片,也就是 split, 分給多個(gè)服務(wù)器做計(jì)算,然后再將結(jié)果聚合起來(lái)就好啦。

圖片圖片

但每個(gè)服務(wù)器怎么知道該怎么計(jì)算分片數(shù)據(jù)呢?

當(dāng)然是由我們來(lái)告訴它們!

我們需要定義一個(gè) map 函數(shù),告訴計(jì)算機(jī),每個(gè)分片數(shù)據(jù)里的每行訂單數(shù)據(jù)該怎么算。

圖片圖片

再定義一個(gè) reduce 函數(shù),告訴計(jì)算機(jī) map 函數(shù)算好的結(jié)果怎么匯總起來(lái)計(jì)算最終結(jié)果。

圖片圖片

這個(gè)從hdfs中獲取數(shù)據(jù),再切分?jǐn)?shù)據(jù)為多個(gè)分片,執(zhí)行計(jì)算任務(wù)并匯總的過(guò)程非常通用,用戶只需要自定義里面的 map 和 reduce 函數(shù)就能滿足各種定制化需求,所以我們可以抽象為一個(gè)通用的代碼庫(kù),說(shuō)好聽(tīng)點(diǎn),又叫框架,它就是所謂的 MapReduce。

圖片圖片

Yarn 是什么

看到這里問(wèn)題又來(lái)了,MapReduce 的計(jì)算任務(wù)的數(shù)量都這么多,每個(gè)任務(wù)都需要cpu和內(nèi)存等服務(wù)器計(jì)算資源,怎么管理和安排這些計(jì)算任務(wù),到哪些服務(wù)器節(jié)點(diǎn)跑數(shù)據(jù)呢?

很容易想到,我們可以在計(jì)算任務(wù)和服務(wù)器之間,加一個(gè)中間層。

也就是大名鼎鼎的 yarn, 全名 Yet Another Resource Negotiator, 讓它來(lái)負(fù)責(zé)資源的管理。

圖片圖片

它將每個(gè)計(jì)算任務(wù)所需要的資源抽象為容器,Container,它本質(zhì)上其實(shí)就是個(gè)被限制了 cpu 和內(nèi)存等計(jì)算資源的 jvm 虛擬機(jī)進(jìn)程,容器內(nèi)運(yùn)行計(jì)算任務(wù)代碼。

圖片圖片

yarn 的容器跟 docker/k8s 的容器概念上有點(diǎn)像,但終究不是一回事。具體區(qū)別是什么,評(píng)論區(qū)告訴我。

圖片圖片

圖片

yarn會(huì)根據(jù)MapReduce這類計(jì)算框架的需求,分配容器資源,再由計(jì)算框架將計(jì)算任務(wù)調(diào)度到,已分配的服務(wù)器容器上運(yùn)行。通過(guò)一系列的資源申請(qǐng)+協(xié)調(diào)調(diào)度,完成 map 和 reduce 的計(jì)算任務(wù)并最終得到計(jì)算結(jié)果。

圖片圖片

yarn 和 之前視頻里介紹的k8s 做的事情有點(diǎn)像,它們的區(qū)別是什么,看爽了就評(píng)論區(qū)告訴我。

Hadoop 是什么

到這里,我們用 hdfs 解決了大數(shù)據(jù)的存儲(chǔ)問(wèn)題,用 mapreduce 解決了大數(shù)據(jù)計(jì)算問(wèn)題,用 yarn 解決了 mapreduce 的計(jì)算資源管理問(wèn)題,它們?nèi)齻€(gè)核心組件,共同構(gòu)成了 Hadoop 大數(shù)據(jù)處理框架。

Hive 是什么

到這里問(wèn)題又又來(lái)了,以前數(shù)據(jù)存在 mysql 的時(shí)候,我想統(tǒng)計(jì)下數(shù)據(jù),做下數(shù)據(jù)分析,只需要寫(xiě)點(diǎn) sql。

圖片圖片

而現(xiàn)在,在大數(shù)據(jù)場(chǎng)景下,卻要我寫(xiě)那么多 map 和 reduce 函數(shù)。

你擱這跟我開(kāi)玩笑呢?這不變相逼著產(chǎn)品運(yùn)營(yíng) BI 天天按著我寫(xiě) mapreduce 代碼嗎?

我能寫(xiě)代碼,不代表我喜歡寫(xiě)代碼!

我自嘲是牛馬可以,你不能真把我當(dāng)牛馬吧,那該怎么辦呢?

圖片圖片

為了讓數(shù)據(jù)分析人員能夠像使用 SQL 一樣方便地查詢大數(shù)據(jù),我們需要一個(gè)工具來(lái)簡(jiǎn)化這個(gè)過(guò)程。

它就是 Hive。你可以將它理解為 sql 和 mapreduce 的一個(gè)中間層。

圖片圖片

它可以將用戶輸入的類似 SQL 的查詢語(yǔ)言解析轉(zhuǎn)換成一個(gè)個(gè)復(fù)雜的 mapreduce 任務(wù),運(yùn)行并最終輸出計(jì)算結(jié)果。

圖片圖片

這樣,不會(huì)寫(xiě)代碼的人也可以通過(guò)寫(xiě) sql 讀寫(xiě)大數(shù)據(jù)。

圖片圖片

Spark和Flink 是什么

現(xiàn)在做一次數(shù)據(jù)分析,Hadoop就得用Hive解析sql,跑mapreduce任務(wù)。一不小心半小時(shí)就過(guò)去了。有辦法更快嗎?

有!MapReduce 會(huì)把計(jì)算過(guò)程中產(chǎn)生的中間結(jié)果放在磁盤(pán)中,這就導(dǎo)致需要頻繁讀寫(xiě)磁盤(pán)文件,略慢。

為了提升性能,可以將中間結(jié)果放在內(nèi)存中,內(nèi)存放不下才放磁盤(pán),那處理速度不就上來(lái)了嗎,基于這個(gè)思路,大佬們?cè)O(shè)計(jì)了Spark, 你可以將它簡(jiǎn)單理解為是通過(guò)內(nèi)存強(qiáng)化性能的 MapReduce。

圖片圖片

以前 Hive 可以將 sql 轉(zhuǎn)化為 Mapreduce 的任務(wù),現(xiàn)在同樣也可以通過(guò)一個(gè)叫 Hive on Spark 的適配層接入 Spark ,將 sql 轉(zhuǎn)化為 spark 任務(wù). 這樣 sql 查詢的性能也能得到提升。

圖片圖片

但畢竟 hive 本身不是為 spark 設(shè)計(jì)的,所以大佬們又設(shè)計(jì)了 spark sql。它跟 hive 是類似的東西,但跟 spark 搭配起來(lái),性能更好。

圖片圖片

但不管是mapreduce還是 Spark, 都是為離線數(shù)據(jù)處理設(shè)計(jì)的,說(shuō)白了就是數(shù)據(jù)是一批一批處理的,一條數(shù)據(jù)來(lái)了,得攢夠一批才會(huì)被處理. 攢的過(guò)程會(huì)浪費(fèi)一些時(shí)間,所以為了更高的實(shí)時(shí)性,大佬們又又設(shè)計(jì)了 flink, 數(shù)據(jù)來(lái)一條就處理一條,完美應(yīng)對(duì)了實(shí)時(shí)性要求較高的在線數(shù)據(jù)處理場(chǎng)景。

圖片圖片

Hbase是什么

雖然現(xiàn)在大數(shù)據(jù)存算問(wèn)題及處理問(wèn)題都解決了。但用hive從海量數(shù)據(jù)里讀寫(xiě)一兩條數(shù)據(jù),依然是接近分鐘級(jí)別的操作, flink雖然實(shí)時(shí)性高,但一般面向數(shù)據(jù)處理,而不是在線讀寫(xiě)場(chǎng)景。有辦法像mysql那樣,在毫秒級(jí)別完成實(shí)時(shí)在線讀寫(xiě)嗎?

基于這個(gè)痛點(diǎn),大佬們又設(shè)計(jì)了分布式數(shù)據(jù)庫(kù)Hbase,用于在海量數(shù)據(jù)中高并發(fā)讀寫(xiě)數(shù)據(jù)的場(chǎng)景。

圖片圖片

最后我們用一個(gè)例子將它們串起來(lái)。

寫(xiě)數(shù)據(jù)

在大數(shù)據(jù)場(chǎng)景下,我們將數(shù)據(jù)寫(xiě)入到 hdfs 中的多個(gè) datanode 中。

圖片圖片

讀數(shù)據(jù)

圖片圖片

在數(shù)據(jù)分析場(chǎng)景,用戶將寫(xiě)好的 sql,輸入到 hive 中,hive 會(huì)將 sql 解析為多個(gè) mapreduce 計(jì)算任務(wù),配合 yarn的資源調(diào)度,mapreduce這類計(jì)算框架,將這些計(jì)算任務(wù)分發(fā)到多個(gè)服務(wù)器上,再將計(jì)算好的結(jié)果匯總后,得到最終結(jié)果,最后返回給用戶。完成讀數(shù)據(jù)。

圖片圖片

當(dāng)然如果追求性能,也可以將 hive 換成 spark sql,將 mapreduce 換成 spark,通過(guò)內(nèi)存加速整個(gè)讀數(shù)據(jù)的過(guò)程。對(duì)于實(shí)時(shí)性要求高的場(chǎng)景,可以使用flink。

圖片圖片

對(duì)于在線實(shí)時(shí)查詢場(chǎng)景,可以通過(guò)hbase,實(shí)現(xiàn)海量數(shù)據(jù)的毫秒級(jí)查詢。

圖片圖片

現(xiàn)在大家通了嗎?

好啦,如果你覺(jué)得這期視頻對(duì)你有幫助,記得轉(zhuǎn)發(fā)給你那不成器的兄弟。文字版的筆記,見(jiàn)評(píng)論區(qū)。

最后遺留一個(gè)問(wèn)題,你聽(tīng)說(shuō)過(guò)Mongodb嗎?你知道它是怎么被設(shè)計(jì)出來(lái)的嗎?有Mysql為什么還要有Mongodb?

視頻點(diǎn)贊超過(guò) 1w,下期聊聊這個(gè)話題。如果你感興趣,記得關(guān)注!我們下期見(jiàn)!

總結(jié)

? Hadoop 是一個(gè)開(kāi)源的大數(shù)據(jù)處理框架,主要用于存儲(chǔ)和處理大數(shù)據(jù)。它要解決的核心問(wèn)題有兩個(gè),一個(gè)是怎么存,另一個(gè)是怎么算

? 大數(shù)據(jù)之所以難處理,本質(zhì)原因在于它大。所以解決思路也很簡(jiǎn)單,核心只有一個(gè)字,那就是"",

? Hdfs 將處理不過(guò)來(lái)的大數(shù)據(jù)切分成一份份處理得過(guò)來(lái)的小數(shù)據(jù)塊。每個(gè) 128MB,存到多個(gè) DataNode 中,解決了存儲(chǔ)的問(wèn)題。

? MapReduce 則通過(guò)一套代碼框架,將數(shù)據(jù)處理抽象為 map 和 reduce 兩個(gè)階段,用戶只要實(shí)現(xiàn)這兩個(gè)函數(shù),框架就會(huì)將大數(shù)據(jù)的處理切分成一個(gè)個(gè)小任務(wù),完成計(jì)算。

? yarn 本質(zhì)上是計(jì)算任務(wù)和服務(wù)器之間的一個(gè)中間層,通過(guò)一系列協(xié)調(diào)調(diào)度,將計(jì)算任務(wù)調(diào)度到合適的服務(wù)器上運(yùn)行,完成 map 和 reduce 的計(jì)算任務(wù)并最終得到最終計(jì)算結(jié)果。

責(zé)任編輯:武曉燕 來(lái)源: 小白debuy
相關(guān)推薦

2025-01-20 07:00:00

2024-11-25 07:00:00

RedisMySQL數(shù)據(jù)庫(kù)

2024-12-16 08:20:00

2025-02-03 08:00:00

HDFS架構(gòu)存儲(chǔ)數(shù)據(jù)

2024-06-24 00:07:00

開(kāi)源es搜索引擎

2024-03-04 08:03:50

k8sClusterNode

2024-05-22 08:02:30

2019-07-19 15:42:57

Hadoop大數(shù)據(jù)YuniKorn

2025-06-11 08:35:00

數(shù)據(jù)倉(cāng)庫(kù)數(shù)倉(cāng)分層架構(gòu)

2022-08-12 17:14:46

元宇宙

2023-05-15 10:17:03

2009-12-24 14:05:06

Fedora core

2014-08-25 10:11:18

極致用戶體驗(yàn)

2017-10-17 15:02:35

RS-485總線布線雙絞線

2014-02-18 11:24:07

云計(jì)算PaaS

2019-01-11 10:39:24

軟件架構(gòu)虛擬空間機(jī)器人

2020-08-13 12:02:13

前端培訓(xùn)學(xué)習(xí)

2011-05-31 17:27:58

網(wǎng)站權(quán)重

2016-03-09 11:25:39

前端開(kāi)發(fā)工程師簡(jiǎn)歷
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久久资源 | 久草a√| 免费观看毛片 | 国产欧美一区二区三区日本久久久 | 国产成人在线一区二区 | 亚洲风情在线观看 | 国产精品免费视频一区 | 一级视频黄色 | 高清一区二区三区 | 国产三级在线观看播放 | 婷婷色成人 | 一级毛片色一级 | 久久久人 | 成人性生交大片免费看中文带字幕 | 免费观看黄| 中国人pornoxxx麻豆 | 欧美精品一二三区 | 欧美韩一区二区三区 | 91精品国产综合久久久密闭 | av中文在线观看 | 日本欧美黄色片 | 欧美日韩精品久久久免费观看 | 亚洲永久入口 | 欧美性猛交一区二区三区精品 | 999久久久久久久 | 日韩精品免费一区 | 在线观看深夜视频 | 91影库 | 国产一二区免费视频 | 国产一级片一区二区 | 日韩免费毛片 | 亚洲欧美国产精品久久 | 久久精品国产久精国产 | 日韩久久中文字幕 | 91精品国产99 | 九九热精品在线 | 99re99 | 中文字幕av第一页 | 99re视频这里只有精品 | 天天干亚洲 | 国产成人精品一区二区三区视频 |