大數(shù)據(jù)技術(shù)與應(yīng)用復(fù)習(xí)篇

      網(wǎng)友投稿 772 2025-03-31

      內(nèi)容太多了,想著就這樣大眼瞪小眼的也沒辦法,還不如整理一份。

      Tips:真要學(xué)習(xí)的就繞開吧,僅為考試所用,太難的內(nèi)容沒有,我也不耽誤寶貴的時間,有這時間多看幾篇我其他的干貨不好嗎?

      文章目錄

      大數(shù)據(jù)概述

      Hadoop

      Hadoop簡介

      Hadoop特性

      大規(guī)模文件系統(tǒng)的整體結(jié)構(gòu)

      通信協(xié)議

      冗余數(shù)據(jù)保存

      Spark

      Spark簡介

      Scala簡介

      Spark VS Hadoop

      Spark運行架構(gòu)

      窄依賴與寬依賴

      階段的劃分

      分布式數(shù)據(jù)庫HBase

      HBase簡介

      HBase數(shù)據(jù)模型概述

      HBase系統(tǒng)架構(gòu)

      Region服務(wù)器工作原理

      用戶讀寫數(shù)據(jù)過程

      緩存的刷新

      StoreFile的合并

      HLog

      NoSQL

      NoSQL的三大基石

      BASE

      MongoDB

      云數(shù)據(jù)庫

      MapReduce

      MapReduce模型簡介

      MapReduce工作流程

      流計算

      大數(shù)據(jù)概述

      天天說大數(shù)據(jù)大數(shù)據(jù)的,大數(shù)據(jù)具體都有哪些特點呢?

      數(shù)據(jù)量大

      數(shù)據(jù)類型繁多

      處理速度快

      價值密度低(商業(yè)價值高)

      Hadoop

      Hadoop簡介

      Hadoop是Apache軟件基金會旗下的一個

      開源分布式計算平臺

      ,為用戶提供了系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu)

      Hadoop是

      基于Java語言開發(fā)

      的,具有很好的

      跨平臺特性

      ,并且可以

      部署在廉價的計算機(jī)集群中

      Hadoop的核心是

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

      (Hadoop Distributed File System)

      和MapReduce

      Hadoop被公認(rèn)為行業(yè)大數(shù)據(jù)標(biāo)準(zhǔn)開源軟件,在分布式環(huán)境下提供了海量數(shù)據(jù)的處理能力

      幾乎所有主流廠商都圍繞Hadoop提供開發(fā)工具、開源軟件、商業(yè)化工具和技術(shù)服務(wù),如谷歌、雅虎、微軟、思科、淘寶等,都支持Hadoop

      Hadoop特性

      高可靠性 高效性 高可擴(kuò)展性 高容錯性 成本低 運行在Linux平臺上 支持多種編程語言

      1

      2

      3

      4

      5

      6

      7

      大規(guī)模文件系統(tǒng)的整體結(jié)構(gòu)

      HDFS默認(rèn)一個塊64MB

      ,一個文件被分成多個塊,以塊作為存儲單位

      塊的大小遠(yuǎn)遠(yuǎn)大于普通文件系統(tǒng),可以最小化尋址開銷

      HDFS采用抽象的塊概念可以帶來以下幾個明顯的好處:

      ● 支持大規(guī)模文件存儲

      ● 簡化系統(tǒng)設(shè)計

      ● 適合數(shù)據(jù)備份

      通信協(xié)議

      HDFS是一個部署在集群上的分布式文件系統(tǒng),因此,很多數(shù)據(jù)需要通過網(wǎng)絡(luò)進(jìn)行傳輸

      所有的HDFS通信協(xié)議都是構(gòu)建在

      TCP/IP

      協(xié)議基礎(chǔ)之上的

      客戶端通過一個可配置的端口向名稱節(jié)點主動發(fā)起TCP連接,并使用客戶端協(xié)議與名稱節(jié)點進(jìn)行交互

      名稱節(jié)點和數(shù)據(jù)節(jié)點之間則使用

      數(shù)據(jù)節(jié)點協(xié)議

      進(jìn)行交互

      客戶端與數(shù)據(jù)節(jié)點的交互是通過RPC(Remote Procedure Call)來實現(xiàn)的。在設(shè)計上,名稱節(jié)點不會主動發(fā)起RPC,而是響應(yīng)來自客戶端和數(shù)據(jù)節(jié)點的RPC請求

      冗余數(shù)據(jù)保存

      作為一個分布式文件系統(tǒng),為了保證系統(tǒng)的容錯性和可用性,HDFS采用了多副本方式對數(shù)據(jù)進(jìn)行冗余存儲,通常一個數(shù)據(jù)塊的多個副本會被分布到不同的數(shù)據(jù)節(jié)點上。這種多副本方式具有以下幾個優(yōu)點:

      (1)加快數(shù)據(jù)傳輸速度 (2)容易檢查數(shù)據(jù)錯誤 (3)保證數(shù)據(jù)可靠性

      1

      大數(shù)據(jù)技術(shù)與應(yīng)用復(fù)習(xí)篇

      2

      3

      Spark

      Spark簡介

      Spark具有如下幾個主要特點:

      運行速度快 容易使用 通用性 運行模式多樣

      1

      2

      3

      4

      Scala簡介

      Scala是一門現(xiàn)代的多范式編程語言,運行于Java平臺(JVM,Java 虛擬機(jī)),并兼容現(xiàn)有的Java程序

      Scala的特性:

      Scala具備強大的并發(fā)性,支持函數(shù)式編程,可以更好地支持分布式系統(tǒng)

      Scala語法簡潔,能提供優(yōu)雅的API

      Scala兼容Java,運行速度快,且能融合到Hadoop生態(tài)圈中

      Spark VS Hadoop

      相比于Hadoop MapReduce,Spark主要具有如下優(yōu)點:

      Spark的計算模式也屬于MapReduce,但不局限于Map和Reduce操作,還

      提供了多種數(shù)據(jù)集操作類型

      ,編程模型比Hadoop MapReduce更靈活

      Spark提供了內(nèi)存計算

      ,可將中間結(jié)果放到內(nèi)存中,對于迭代運算效率更高

      Spark基于DAG的任務(wù)調(diào)度執(zhí)行機(jī)制,要優(yōu)于Hadoop MapReduce的迭代執(zhí)行機(jī)制

      Spark運行架構(gòu)

      RDD:是Resillient Distributed Dataset(

      彈性分布式數(shù)據(jù)集

      )的簡稱,是分布式內(nèi)存的一個抽象概念,提供了一種高度受限的共享內(nèi)存模型

      DAG:是Directed Acyclic Graph(

      有向無環(huán)圖

      )的簡稱,反映RDD之間的依賴關(guān)系

      Executor:是運行在工作節(jié)點(WorkerNode)的一個進(jìn)程,負(fù)責(zé)運行Task

      應(yīng)用(Application):用戶編寫的Spark應(yīng)用程序

      任務(wù)( Task ):運行在Executor上的工作單元

      作業(yè)( Job ):一個作業(yè)包含多個RDD及作用于相應(yīng)RDD上的各種操作

      階段( Stage ):是作業(yè)的基本調(diào)度單位,一個作業(yè)會分為多組任務(wù),每組任務(wù)被稱為階段,或者也被稱為任務(wù)集合,代表了一組關(guān)聯(lián)的、相互之間沒有Shuffle依賴關(guān)系的任務(wù)組成的任務(wù)集

      此處略過一堆RDD概念

      窄依賴與寬依賴

      對于窄依賴,由于父RDD的一個分區(qū)只對應(yīng)一個子RDD分區(qū),這樣只需要重算和子RDD分區(qū)對應(yīng)的父RDD分區(qū)即可,所以這個重算對數(shù)據(jù)的利用率是100%的;

      對于寬依賴,重算的父RDD分區(qū)對應(yīng)多個子RDD分區(qū),這樣實際上父RDD 中只有一部分的數(shù)據(jù)是被用于恢復(fù)這個丟失的子RDD分區(qū)的,另一部分對應(yīng)子RDD的其它未丟失分區(qū),這就造成了多余的計算;更一般的,寬依賴中子RDD分區(qū)通常來自多個父RDD分區(qū),極端情況下,所有的父RDD分區(qū)都要進(jìn)行重新計算。

      如下圖所示,b1分區(qū)丟失,則需要重新計算a1,a2和a3,這就產(chǎn)生了冗余計算(a1,a2,a3中對應(yīng)b2的數(shù)據(jù))。

      階段的劃分

      窄依賴可以實現(xiàn)“流水線”優(yōu)化

      寬依賴無法實現(xiàn)“流水線”優(yōu)化

      分布式數(shù)據(jù)庫HBase

      HBase簡介

      HBase是一個高可靠、高性能、面向列、可伸縮的分布式數(shù)據(jù)庫,是谷歌BigTable的開源實現(xiàn),主要用來存儲非結(jié)構(gòu)化和半結(jié)構(gòu)化的松散數(shù)據(jù)。HBase的目標(biāo)是處理非常龐大的表,可以通過水平擴(kuò)展的方式,利用廉價計算機(jī)集群處理由超過10億行數(shù)據(jù)和數(shù)百萬列元素組成的數(shù)據(jù)表

      Q:關(guān)系數(shù)據(jù)庫已經(jīng)流行很多年,并且Hadoop已經(jīng)有了HDFS和MapReduce,為什么需要HBase?

      Hadoop無法滿足

      大規(guī)模

      數(shù)據(jù)

      實時處理應(yīng)用

      的需求

      HDFS面向批量訪問模式,不是隨機(jī)訪問模式

      傳統(tǒng)的通用關(guān)系型數(shù)據(jù)庫無法應(yīng)對在

      數(shù)據(jù)規(guī)模劇增時

      導(dǎo)致的

      系統(tǒng)擴(kuò)展性和性能問題

      (分庫分表也不能很好解決)

      傳統(tǒng)關(guān)系數(shù)據(jù)庫在數(shù)據(jù)結(jié)構(gòu)變化時一般需要

      停機(jī)維護(hù)

      HBase已經(jīng)成功應(yīng)用于互聯(lián)網(wǎng)服務(wù)領(lǐng)域和傳統(tǒng)行業(yè)的眾多在線式數(shù)據(jù)分析處理系統(tǒng)中

      HBase數(shù)據(jù)模型概述

      HBase是一個稀疏、多維度、排序的

      映射表

      ,這張表的索引是

      行鍵

      列族

      列限定符

      時間戳

      每個值是一個未經(jīng)解釋的字符串,沒有數(shù)據(jù)類型

      用戶在表中存儲數(shù)據(jù),每一行都有一個可排序的行鍵和任意多的列

      表在水平方向由一個或者多個列族組成,一個列族中可以包含任意多個列,同一個列族里面的數(shù)據(jù)存儲在一起

      列族支持動態(tài)擴(kuò)展,可以很輕松地添加一個列族或列,無需預(yù)先定義列的數(shù)量以及類型,所有列均以字符串形式存儲,用戶需要自行進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換

      HBase中執(zhí)行更新操作時,并不會刪除數(shù)據(jù)舊的版本,而是生成一個新的版本,舊有的版本仍然保留(這是和HDFS只允許追加不允許修改的特性相關(guān)的)

      HBase系統(tǒng)架構(gòu)

      客戶端

      客戶端包含訪問HBase的接口,同時在緩存中維護(hù)著已經(jīng)訪問過的Region位置信息,用來加快后續(xù)數(shù)據(jù)訪問過程

      Zookeeper服務(wù)器

      Zookeeper可以幫助選舉出一個Master作為集群的總管,并保證在任何時刻總有唯一一個Master在運行,這就避免了Master的“單點失效”問題

      Master

      主服務(wù)器Master主要負(fù)責(zé)表和Region的管理工作:

      管理用戶對表的增加、刪除、修改、查詢等操作

      實現(xiàn)不同Region服務(wù)器之間的負(fù)載均衡

      在Region分裂或合并后,負(fù)責(zé)重新調(diào)整Region的分布

      對發(fā)生故障失效的Region服務(wù)器上的Region進(jìn)行遷移

      Region服務(wù)器

      Region服務(wù)器是HBase中最核心的模塊,負(fù)責(zé)維護(hù)分配給自己的Region,并響應(yīng)用戶的讀寫請求

      Region服務(wù)器工作原理

      用戶寫入數(shù)據(jù)時,被分配到相應(yīng)Region服務(wù)器去執(zhí)行

      用戶數(shù)據(jù)首先被寫入到MemStore和Hlog中

      只有當(dāng)操作寫入Hlog之后,commit()調(diào)用才會將其返回給客戶端

      當(dāng)用戶讀取數(shù)據(jù)時,Region服務(wù)器會首先訪問MemStore緩存,如果找不到,再去磁盤上面的StoreFile中尋找

      系統(tǒng)會周期性地把MemStore緩存里的內(nèi)容刷寫到磁盤的StoreFile文件中,清空緩存,并在Hlog里面寫入一個標(biāo)記

      每次刷寫都生成一個新的StoreFile文件,因此,每個Store包含多個StoreFile文件

      每個Region服務(wù)器都有一個自己的HLog 文件,每次啟動都檢查該文件,確認(rèn)最近一次執(zhí)行緩存刷新操作之后是否發(fā)生新的寫入操作;如果發(fā)現(xiàn)更新,則先寫入MemStore,再刷寫到StoreFile,最后刪除舊的Hlog文件,開始為用戶提供服務(wù)

      每次刷寫都生成一個新的StoreFile,數(shù)量太多,影響查找速度

      調(diào)用Store.compact()把多個合并成一個

      合并操作比較耗費資源,只有數(shù)量達(dá)到一個閾值才啟動合并

      HLog

      分布式環(huán)境必須要考慮系統(tǒng)出錯。HBase采用HLog保證系統(tǒng)恢復(fù)

      HBase系統(tǒng)為每個Region服務(wù)器配置了一個HLog文件,它是一種

      預(yù)寫式日志

      (Write Ahead Log)

      用戶更新數(shù)據(jù)必須首先寫入日志后,才能寫入MemStore緩存,并且,直到MemStore緩存內(nèi)容對應(yīng)的日志已經(jīng)寫入磁盤,該緩存內(nèi)容才能被刷寫到磁盤

      NoSQL

      通常,NoSQL數(shù)據(jù)庫具有以下幾個特點:

      (1)靈活的可擴(kuò)展性 (2)靈活的數(shù)據(jù)模型 (3)與云計算緊密融合

      1

      2

      3

      關(guān)系數(shù)據(jù)庫已經(jīng)無法滿足Web2.0的需求。主要表現(xiàn)在以下幾個方面:

      (1)無法滿足海量數(shù)據(jù)的管理需求 (2)無法滿足數(shù)據(jù)高并發(fā)的需求 (3)無法滿足高可擴(kuò)展性和高可用性的需求

      1

      2

      3

      NoSQL的三大基石

      C(Consistency):一致性

      A:(Availability):可用性

      P(Tolerance of Network Partition):分區(qū)容忍性

      一個分布式系統(tǒng)不可能同時滿足一致性、可用性和分區(qū)容忍性這三個需求,最多只能同時滿足其中兩個

      BASE

      BASE的基本含義是基本可用(Basically Availble)、軟狀態(tài)(Soft-state)和最終一致性(Eventual consistency):

      MongoDB

      MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)。

      曾經(jīng)我也有做這些底層的想法。

      后來,快樂,啪,沒了。

      云數(shù)據(jù)庫

      云數(shù)據(jù)庫是部署和虛擬化在云計算環(huán)境中的數(shù)據(jù)庫。

      云數(shù)據(jù)庫是在云計算的大背景下發(fā)展起來的一種新興的共享基礎(chǔ)架構(gòu)的方法,它極大地增強了數(shù)據(jù)庫的存儲能力,消除了人員、硬件、軟件的重復(fù)配置,讓軟、硬件升級變得更加容易。

      云數(shù)據(jù)庫具有高可擴(kuò)展性、高可用性、采用多租形式和支持資源有效分發(fā)等特點。

      MapReduce

      MapReduce模型簡介

      MapReduce將復(fù)雜的、運行于大規(guī)模集群上的并行計算過程高度地抽象到了兩個函數(shù):Map和Reduce

      編程容易,不需要掌握分布式并行編程細(xì)節(jié),也可以很容易把自己的程序運行在分布式系統(tǒng)上,完成海量數(shù)據(jù)的計算

      MapReduce采用“

      分而治之

      ”策略,一個存儲在分布式文件系統(tǒng)中的大規(guī)模數(shù)據(jù)集,會被切分成許多獨立的分片(split),這些分片可以被多個Map任務(wù)并行處理

      MapReduce設(shè)計的一個理念就是“

      計算向數(shù)據(jù)靠攏

      ”,而不是“數(shù)據(jù)向計算靠攏”,因為,移動數(shù)據(jù)需要大量的網(wǎng)絡(luò)傳輸開銷

      MapReduce框架采用了

      Master/Slave

      架構(gòu),包括一個Master和若干個Slave。Master上運行JobTracker,Slave上運行TaskTracker

      Hadoop框架是用Java實現(xiàn)的,但是,MapReduce應(yīng)用程序則不一定要用Java來寫

      MapReduce工作流程

      不同的Map任務(wù)之間不會進(jìn)行通信

      不同的Reduce任務(wù)之間也不會發(fā)生任何信息交換

      用戶不能顯式地從一臺機(jī)器向另一臺機(jī)器發(fā)送消息

      所有的數(shù)據(jù)交換都是通過MapReduce框架自身去實現(xiàn)的

      流計算

      流計算:實時獲取來自不同數(shù)據(jù)源的海量數(shù)據(jù),經(jīng)過實時分析處理,獲得有價值的信息

      就到這兒吧,以上是我能看的下去的。

      聽說我的好兄弟有紀(jì)錄一些重點,嗯。

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

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:批量修改內(nèi)容(批量修改文檔內(nèi)容)
      下一篇:【Flutter 專題】59 圖解 Android Native 獲取 Flutter 資源文件
      相關(guān)文章
      国产天堂亚洲精品| 亚洲乱码国产一区网址| 国产亚洲一区二区三区在线| 亚洲综合最新无码专区| 亚洲av无码成人精品区| 亚洲äv永久无码精品天堂久久 | 4338×亚洲全国最大色成网站| 爱爱帝国亚洲一区二区三区| 亚洲av成人片在线观看| 亚洲GV天堂GV无码男同| 国产亚洲欧美日韩亚洲中文色 | 亚洲乱码中文字幕综合| 亚洲日韩激情无码一区| 亚洲级αV无码毛片久久精品| 亚洲精品无码午夜福利中文字幕| 亚洲人成77777在线播放网站| 在线观看亚洲成人| 亚洲国产精品成人久久| 亚洲国产精久久久久久久| 久久丫精品国产亚洲av| 亚洲白嫩在线观看| 7777久久亚洲中文字幕| 亚洲综合欧美色五月俺也去| 亚洲国产精品无码久久久秋霞1| 亚洲av纯肉无码精品动漫| 亚洲第一页综合图片自拍| 国产亚洲情侣一区二区无码AV| 亚洲色婷婷一区二区三区| 亚洲av日韩av无码| 亚洲无人区视频大全| 亚洲中文字幕一二三四区苍井空| 亚洲熟女乱色一区二区三区| 深夜国产福利99亚洲视频| 最新亚洲成av人免费看| 亚洲国产精品自在线一区二区| 中文字幕亚洲色图| 麻豆狠色伊人亚洲综合网站| 亚洲AV女人18毛片水真多| 亚洲精品国产va在线观看蜜芽| 亚洲老妈激情一区二区三区| 亚洲高清在线播放|