日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《大数据技术原理与应用》 期末复习

發(fā)布時(shí)間:2023/12/10 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《大数据技术原理与应用》 期末复习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

桂林電子科技大學(xué) 大數(shù)據(jù)課程 復(fù)習(xí)筆記
考試范圍
教材:《大數(shù)據(jù)技術(shù)原理與應(yīng)用》第三版 林子雨
第1章:大數(shù)據(jù)概述 🎉
第2章:大數(shù)據(jù)處理架構(gòu)Hadoop 🎉
第3章:分布式文件系統(tǒng)HDFS 🎉
第4章:分布式數(shù)據(jù)庫HBase🎉
第5章:NoSQL數(shù)據(jù)庫🎉
第7章:MapReduce🎉
第10章:Spark🎉
第11章:流計(jì)算(Storm)🎉

第1章 大數(shù)據(jù)概述

重要知識點(diǎn):
1、大數(shù)據(jù)的4V
數(shù)據(jù)量大:在Web2.0時(shí)代、網(wǎng)絡(luò)用戶數(shù)目極大,在視頻、照片社交軟件火熱的今天,用戶產(chǎn)生的數(shù)據(jù)量非常大。
數(shù)據(jù)類型繁多:有金融大數(shù)據(jù)、醫(yī)療大數(shù)據(jù)、城市大數(shù)據(jù)等等。
處理速度快:1分鐘,新浪微博產(chǎn)生2萬條微博,Twitter產(chǎn)生10萬條推文。
價(jià)值密度低:例如監(jiān)控視頻的存儲,沒有調(diào)取監(jiān)控視頻用時(shí)可能價(jià)值并沒有體現(xiàn),但在使用時(shí)可能會產(chǎn)生很大的價(jià)值。

2、大數(shù)據(jù)的應(yīng)用
智能汽車、能源、體育與娛樂等等、大數(shù)據(jù)應(yīng)用非常廣泛。

3、大數(shù)據(jù)關(guān)鍵技術(shù)
數(shù)據(jù)采集與預(yù)處理、數(shù)據(jù)存儲和管理(HDFS)、數(shù)據(jù)處理與分析(如MapReduce)、數(shù)據(jù)安全和隱私保護(hù)。

4、大數(shù)據(jù)計(jì)算模式
批處理計(jì)算:對大規(guī)模數(shù)據(jù)的批量處理 (MapReduce、Spark)
流計(jì)算:針對流數(shù)據(jù)的實(shí)時(shí)計(jì)算(Spark)
圖計(jì)算:針對大規(guī)模圖結(jié)構(gòu)的數(shù)據(jù)的處理
查詢分析計(jì)算:大規(guī)模數(shù)據(jù)的存儲管理和查詢分析(Hive)

5、大數(shù)據(jù)與云計(jì)算、物聯(lián)網(wǎng)的關(guān)系

云計(jì)算為大數(shù)據(jù)提供技術(shù)基礎(chǔ)、大數(shù)據(jù)為云計(jì)算提供用武之地。
物聯(lián)網(wǎng)是大數(shù)據(jù)的重要來源、大數(shù)據(jù)技術(shù)為物聯(lián)網(wǎng)數(shù)據(jù)分析提供支撐。
云計(jì)算為物聯(lián)網(wǎng)提供海量數(shù)據(jù)存儲能力,物聯(lián)網(wǎng)為云計(jì)算技術(shù)提供了廣闊的應(yīng)用控件。

第2章 大數(shù)據(jù)處理架構(gòu)Hadoop

1、Hadoop的核心
HDFS是分布式文件存儲系統(tǒng)(Hadoop Distributed File System) 、也是Hadoop的核心。

2、Hadoop的特性
高可靠性 、高效性、高可擴(kuò)展性 、高容錯性 、成本低 、支持操作系統(tǒng)與編程語言廣泛

3、HDFS常用命令
創(chuàng)建文件夾(-p 遞歸創(chuàng)建) hadoop fs -mkdir -p /user/hadop
顯示文件內(nèi)容 hadoop fs -cat hdfs文件
文件上傳 hadoop fs -put 本地 hdfs文件
刪除文件夾 hadoop fs -rm -r hdfs文件夾
刪除文件 hadoop fs -rm hdfs文件
切換目錄:cd
查看文件與目錄:ls -R(-R在hdfs為遞歸查看)
刪除空目錄:rmdir
復(fù)制文件或目錄:cp
裁剪:mv
創(chuàng)建文件:touchz
拉取文件 get

第3章 分布式系統(tǒng) HDFS

1、 HDFS計(jì)算機(jī)集群結(jié)構(gòu)
分布式文件系統(tǒng)把文件分布存儲到多個計(jì)算機(jī)節(jié)點(diǎn)上、成千上萬的計(jì)算機(jī)節(jié)點(diǎn)構(gòu)成計(jì)算機(jī)集群。

2、 HDFS的結(jié)構(gòu)
一個默認(rèn)塊大小為64MB,如果一個文件小于一個數(shù)據(jù)塊的大小,在分布式文件系統(tǒng),它并不占用整個數(shù)據(jù)塊的存儲空間。
名稱節(jié)點(diǎn)負(fù)責(zé)文件和目錄的創(chuàng)建、刪除、和重命名等,同時(shí)管理著數(shù)據(jù)節(jié)點(diǎn)和文件快的映射關(guān)系。
數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)數(shù)據(jù)的存儲和讀取,在存儲時(shí),由名稱節(jié)點(diǎn)分配存儲文職,客戶端將數(shù)據(jù)直接寫入相應(yīng)數(shù)據(jù)節(jié)點(diǎn)。
為了保證數(shù)據(jù)的完整性,文件塊會被賦值為多個副本存儲到多個不同的節(jié)點(diǎn)上,而存儲同一文件塊的不同副本又會分布在不同的機(jī)架上。

3、 HDFS特點(diǎn)
優(yōu)點(diǎn):
兼容廉價(jià)的設(shè)備硬件。
流數(shù)據(jù)讀寫:支持流式方式來訪問文件。
大數(shù)據(jù)集:單個文件可達(dá)到GB甚至TB級別
簡單的文件模型:一次寫入,多次讀取。
強(qiáng)大的跨平臺兼容性。
缺點(diǎn):
不適合低延遲數(shù)據(jù)訪問。
無法高效存儲大量小文件。
不支持多用戶寫入及任意修改文件。

4、 HDFS的相關(guān)概念(重點(diǎn))
重點(diǎn):塊、名稱節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)與第二名稱節(jié)點(diǎn)。
:HDFS文件塊的大小默認(rèn)為64MB,一個文件會被拆分為多個塊進(jìn)行存儲。(相關(guān)知識點(diǎn):MapReduce中的Map任務(wù)一次只能處理一塊中的數(shù)據(jù)。)
采用塊抽象化的好處:支持大規(guī)模文件存儲、簡化系統(tǒng)設(shè)計(jì)、設(shè)和數(shù)據(jù)備份。
名稱節(jié)點(diǎn)負(fù)責(zé)管理分布式文件系統(tǒng)的命名空間,保存了FsImage和EditLog.
FsImage用于維護(hù)文件系統(tǒng)樹以及文件樹中所有的文件和問價(jià)夾的元數(shù)據(jù)。
EditLog(操作日志文件)記錄了所有針對文件的創(chuàng)建、刪除、重命名、等操作。
名稱節(jié)點(diǎn)存儲文件名與文件在數(shù)據(jù)節(jié)點(diǎn)中的位置的映射關(guān)系、但并不是持久化存儲在名稱節(jié)點(diǎn),而是當(dāng)名稱節(jié)點(diǎn)啟動時(shí)掃描分布式文件系統(tǒng)得到的。
名稱節(jié)點(diǎn)啟動?將FsImage加載到內(nèi)存-> 重新執(zhí)行EditLog->建立新的空FsImage和EditLog->工作記錄時(shí)使用新的FsImage和EditLog當(dāng)變大后系統(tǒng)寫入到總的FsImage和EditLog內(nèi)(工作模式請看第二名稱節(jié)點(diǎn))

數(shù)據(jù)節(jié)點(diǎn) 負(fù)責(zé)數(shù)據(jù)的存儲和讀取,根據(jù)客戶端和名稱節(jié)點(diǎn)的調(diào)度進(jìn)行數(shù)據(jù)的存儲和檢索。也會定時(shí)向名稱節(jié)點(diǎn)匯報(bào)自己的存儲塊列表信息。

第二名稱節(jié)點(diǎn):
功能:完成FsImage和EditLog的合并操作,減小EditLog文件大小。
EditLog和FsImage的合并操作:

5、 HDFS體系結(jié)構(gòu)
主從結(jié)構(gòu)
客戶端向名稱節(jié)點(diǎn)請求文件名或者數(shù)據(jù)塊號,名稱節(jié)點(diǎn)將數(shù)據(jù)塊號、數(shù)據(jù)塊位置發(fā)送至客戶端。
客戶端與數(shù)據(jù)節(jié)點(diǎn)通信進(jìn)行數(shù)據(jù)的讀寫操作。HDFS集群只有一個名稱節(jié)點(diǎn),其帶寬、計(jì)算性能會影響整個系統(tǒng)的性能。

HDFS命名空間管理
HDFS集群只有一個命名空間,即/ some/some /some /some… ,向Linux的文件目錄結(jié)構(gòu)一樣。

通信協(xié)議
HDFS通信協(xié)議建立在TCP/IP基礎(chǔ)之上。
名稱節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)采用數(shù)據(jù)節(jié)點(diǎn)協(xié)議進(jìn)行交互。
客戶端與數(shù)據(jù)節(jié)點(diǎn)交互通過遠(yuǎn)程過程調(diào)用(RPC)

HDFS體系結(jié)構(gòu)局限性
命名空間限制、性能瓶頸(原因靠名稱節(jié)點(diǎn))、隔離問題(一個命名空間、和一個名稱節(jié)點(diǎn)無法做到讀寫權(quán)限分配等)、集群可用性(一個名稱節(jié)點(diǎn))

6、 HDFS的存儲原理
多副本冗余存儲,加快了數(shù)據(jù)傳輸?shù)乃俾省⑷菀讬z查數(shù)據(jù)錯誤、保證數(shù)據(jù)的可靠性。

存放策略
HDFS默認(rèn)的冗余復(fù)制因子是3,每一個文件塊被保存到3個地方。
(1) 如果是集群內(nèi)發(fā)起的寫操作,則把第1個副本放置發(fā)起寫操作請求的數(shù)據(jù)節(jié)點(diǎn)上,實(shí)現(xiàn)就近寫入數(shù)據(jù),如果集群外發(fā)起寫操作,則在集群內(nèi)選一個磁盤空間充足且CPU不太忙的數(shù)據(jù)節(jié)點(diǎn),做為第1個副本的存放位置。
(2) 第2個副本被放置在與第1個副本不同的機(jī)架的數(shù)據(jù)節(jié)點(diǎn)上。
(3) 第3個副本會被放置在與第1個副本相同的機(jī)架的其他節(jié)點(diǎn)上。
(4) 如果還有更多的副本、則繼續(xù)從集群中隨機(jī)選擇數(shù)據(jù)節(jié)點(diǎn)進(jìn)行存放。

讀取策略
客戶端請求名稱節(jié)點(diǎn)獲取文件塊不同副本的存儲位置,由客戶端確定從哪里獲取文件塊。

數(shù)據(jù)復(fù)制
文件在客戶端被切分成多個塊,名稱節(jié)點(diǎn)返回?cái)?shù)據(jù)節(jié)點(diǎn)列表。
客戶端向一個數(shù)據(jù)節(jié)點(diǎn)寫入,同時(shí)把數(shù)據(jù)節(jié)點(diǎn)列表傳給第一個數(shù)據(jù)節(jié)點(diǎn),當(dāng)?shù)谝粋€節(jié)點(diǎn)接收數(shù)據(jù)大小4KB時(shí)并像列表第二個數(shù)據(jù)接待你發(fā)起寫請求,將數(shù)據(jù)寫入第二個數(shù)據(jù)節(jié)點(diǎn)、當(dāng)?shù)诙€數(shù)據(jù)節(jié)點(diǎn)接收到4KB時(shí)向第三個數(shù)據(jù)節(jié)點(diǎn)執(zhí)行類似操作。最后當(dāng)文件寫完時(shí),數(shù)據(jù)的復(fù)制也同時(shí)完成了。

名稱節(jié)點(diǎn)出錯補(bǔ)救方案
一:遠(yuǎn)程掛載到NFS上
二:運(yùn)行一個第二名稱節(jié)點(diǎn),能夠進(jìn)行有限的補(bǔ)救(第二名稱節(jié)點(diǎn)中由FsImage和EditLog),但還是會可能遺失拉去FsImage和EditLog后,名稱節(jié)點(diǎn)的一系列操作。
數(shù)據(jù)節(jié)點(diǎn)出錯補(bǔ)救方案
數(shù)據(jù)節(jié)點(diǎn)定期向名稱節(jié)點(diǎn)發(fā)起”心跳“,沒有”心跳”時(shí),名稱節(jié)點(diǎn)不再向其分配讀寫任務(wù),且一旦發(fā)現(xiàn)某些塊的復(fù)制因子小了,名稱節(jié)點(diǎn)又會安排任務(wù),進(jìn)行文件塊復(fù)制。
數(shù)據(jù)出錯
客戶端采用MD5和SHA-1校驗(yàn),出錯將向名稱節(jié)點(diǎn)匯報(bào),請求其他副本,名稱節(jié)點(diǎn)也會定期檢查塊。

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

1、HBase是什么?
一個高可靠、高性能、面向列、可伸縮的分布式數(shù)據(jù)庫。
2、HBase與Hadoop其他部分關(guān)系。
使用MapReduce處理海量數(shù)據(jù),ZooKeeper作為協(xié)同服務(wù)。HDFS底層數(shù)據(jù)存儲。Pig和Hive提供高級語言支持。
3、HBase與傳統(tǒng)數(shù)據(jù)庫對比。
數(shù)據(jù)類型:采用未經(jīng)解釋的字符串。
數(shù)據(jù)操作:行鍵查詢、只有簡單的插入、查詢、刪除、清空等。
存儲模式:列式存儲。
數(shù)據(jù)索引:行鍵索引。
數(shù)據(jù)維護(hù):并不刪除原來的數(shù)據(jù)。
橫向可伸縮性:面向列存儲。
缺陷:不支持事務(wù)、無法實(shí)現(xiàn)跨行原子性。
4、HBase數(shù)據(jù)模型
行鍵:任意字符串,最大64KB。
列族、列限定符(列名,不需要提前定義好)。
單元格,每個單元格可以存儲多個版本、每個版本對應(yīng)一個時(shí)間戳。
事件戳:每次對單元格執(zhí)行操作,HBase會隱式自動生成并存儲一個時(shí)間戳。
數(shù)據(jù)坐標(biāo):[行鍵、列族、列限定符、時(shí)間戳]
5、概念視圖與物理視圖
概念視圖:邏輯模型,認(rèn)為規(guī)定建立。

物理視圖:

在物理視圖中,空的列并不會被存儲為null,而是不會存儲,當(dāng)請求空白的單元格時(shí)返回null。

6、 面向列的存儲
從嚴(yán)格的關(guān)系數(shù)據(jù)庫角度來看,HBase并不是一個列式存儲的數(shù)據(jù)庫,HBase是以列族為單位進(jìn)行分解的,而不是每個列都單獨(dú)存儲。

7、 HBase實(shí)現(xiàn)原理
與HDFS具有很多相似之處、有一個Master節(jié)點(diǎn)負(fù)責(zé)HBase表的分區(qū)信息,表被分為Region存儲到多個Region服務(wù)器,Master會檢測Region服務(wù)器 工作狀態(tài)、負(fù)責(zé)性能均衡。客戶端并不從Master獲得數(shù)據(jù),從ZooKeeper獲得Region位置,從Region服務(wù)器中拉取數(shù)據(jù)。

8、 表和Region、Region的定位

9、 HBase系統(tǒng)架構(gòu)
客戶端:緩存Region位置、與Master進(jìn)行RPC通信、與Region服務(wù)器RPC通信進(jìn)行數(shù)據(jù)的讀寫。
Zookeeper服務(wù)器:通常由集群組成,每個Region服務(wù)器要到Zookeeper服務(wù)器注冊,Zookeeper實(shí)時(shí)監(jiān)控Region,Master通過Zookeeper感知Region服務(wù)器狀態(tài)。
Master服務(wù)器:管理用戶對表操作、Region服務(wù)器的負(fù)載均衡、Region分裂與合并、Region遷移(如有Region服務(wù)器故障時(shí))
Region服務(wù)器:Region存儲、向客戶端提供訪問接口。

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

第5章 NoSQL數(shù)據(jù)庫

1、 NoSQL特點(diǎn)
靈活的可擴(kuò)展性、靈活的數(shù)據(jù)模型、與云計(jì)算緊密耦合。

2、 NoSQL與Web2.0
無法滿足海量數(shù)據(jù)的管理需求、無法滿足高并發(fā)的需求、無法滿足高可擴(kuò)展性和高可復(fù)用性的要求。
Web2.0網(wǎng)站系統(tǒng)通常不需要嚴(yán)格的數(shù)據(jù)庫事務(wù)、并不要求嚴(yán)格的讀寫實(shí)時(shí)性、通常不包含大量復(fù)雜的SQL查詢。

3、 NoSQL的四大類型
鍵值數(shù)據(jù)庫、列族數(shù)據(jù)庫、文檔數(shù)據(jù)庫、圖數(shù)據(jù)庫。

4、 NoSQL三大基石,CAP、BASE、最終一致性。
C (Consistency) :一致性,指任何一個讀操作總是能夠讀到之前完成的寫操作的結(jié)果,在分布式環(huán)境中、多點(diǎn)數(shù)據(jù)是一致的。
A(Availability):可用性。指快速獲取數(shù)據(jù),且可以在確定的時(shí)間內(nèi)返回操作結(jié)果。
P(tolerance of network partition):分區(qū)容忍性,當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況,分離的系統(tǒng)可以正常運(yùn)行。

組合:
CA 強(qiáng)調(diào)一致性和可用性,可擴(kuò)展性較差。
CP 強(qiáng)調(diào)一致性和分區(qū)容忍性,當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況時(shí),受影響的服務(wù)需要的等待數(shù)據(jù)一致,因此在等待期間就無法對外提供服務(wù)。
AP 在采用AP設(shè)計(jì)時(shí),可以不完全放棄一致性,轉(zhuǎn)而采用最終一致性。

BASE
A(atomicity)原子性:對數(shù)據(jù)的修改、要么全部執(zhí)行、要么全部不執(zhí)行。
C(Consistency)一致性:在事務(wù)完成時(shí),必須是所有數(shù)據(jù)都保持一致狀態(tài)。
I(Isolation) 隔離性:并發(fā)事務(wù)所作的修改必須與其他并發(fā)事務(wù)所做的改變隔離。
D(Durability) 持久性:事務(wù)完成后、對系統(tǒng)的影響是永久性的。

最終一致性
是弱一致性的特例,允許后續(xù)的訪問操作可以暫時(shí)讀不到更新后的數(shù)據(jù),但經(jīng)過一段時(shí)間后,用戶可以讀到更新后的數(shù)據(jù),最終一致性也是ACID的最終目的,只要最終數(shù)據(jù)是一致的就可以了,而不是每時(shí)每刻都保持實(shí)時(shí)一致性。

第7章 MapReduce

Hadoop MapReduce是基于谷歌MapReduce的開源實(shí)現(xiàn)。

大規(guī)模數(shù)據(jù)集 -> 分片小數(shù)據(jù)集 -> 處理為<key,value> -> 交給Map任務(wù) -> 輸出List(<k2,v2>) -> Map Shuffle -> Reduce Shuffle -> 輸入<k2,List(v2)> -> Reduce -> 輸出<k3,v3>。

當(dāng)Map任務(wù)全部結(jié)束時(shí),才會開始Reduce任務(wù)。
在切分大文件時(shí)沒并不是真正的切分物理文件、而是利用RecordReader記錄要處理數(shù)據(jù)的位置和長度。

Shuffle過程,分為Map端的Shuffle過程、和Reduce端的Shuffle過程,Shuffle是指對Map任務(wù)輸出結(jié)果進(jìn)行分區(qū),排序、合并、歸并等處理并交給Reduce的過程。

Map端的Shuffle過程
輸入數(shù)據(jù)和執(zhí)行Map任務(wù),Map輸出結(jié)果寫入緩存、緩存滿了則進(jìn)行溢寫(分區(qū)、排序、合并) 生成多個溢寫文件、當(dāng)Map任務(wù)全部結(jié)束之前,溢寫文件會被歸并為一個大的磁盤文件。

Reduce任務(wù)從Map端的不同Map機(jī)器”領(lǐng)取”屬于自己處理的那部分?jǐn)?shù)據(jù),然后對數(shù)據(jù)進(jìn)行歸并后交給Reduce處理。具有相同key的<key,value>會被發(fā)送到同一個Reduce任務(wù)。

關(guān)于溢寫,提供給MapReduce的緩存的容量是有限的,默認(rèn)大小100MB。隨著Map任務(wù)執(zhí)行,很快寫滿緩存區(qū),進(jìn)行溢寫操作,首先對這些鍵值進(jìn)行分區(qū),默認(rèn)的分區(qū)方式為Hash函數(shù)對key哈希。
“合并”是指將具有相同key的<key,value>的value加起來。并非所有場景都適合合并操作。
每次溢寫操作都會生成一個新得溢寫文件,寫入溢寫文件中得所有鍵值對都是經(jīng)過分區(qū)和排序得。

“歸并” ,溢寫文件數(shù)量越來越多,最終在Map任務(wù)全部結(jié)束前,系統(tǒng)對所有溢寫文件數(shù)據(jù)進(jìn)行歸并操作,具有相同key的鍵值被合并為一個鍵值,如<k1,v1><k1,v2><k1,v3> 會被歸并為一個新的鍵值,<k1,<v1,v2,v3>>。JobTracker檢測Map任務(wù),當(dāng)Map任務(wù)完成時(shí),通知Reduce任務(wù)來領(lǐng)取數(shù)據(jù)。然后開始Reduce端的Shuffle過程。

Reduce端的Shuffle過程
從Map端讀取Map任務(wù)結(jié)果,執(zhí)行歸并操作,,最后送給Reduce任務(wù)進(jìn)行處理。
JobTracker檢測Map任務(wù),通知Reduce任務(wù)領(lǐng)取數(shù)據(jù),先放置到Reduce任務(wù)機(jī)器的緩存中,同樣存在溢寫操作,當(dāng)溢寫過程啟動時(shí),具有相同key的鍵值對會被歸并。同樣存在溢寫文件的合并。
經(jīng)過多輪歸并后得到若干個大文件,直接輸入Reduce任務(wù)。

WordCount實(shí)例


MapReduce模型的關(guān)系上的標(biāo)準(zhǔn)運(yùn)算
選擇、投影、并、交、差、自然連接
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

第10章 Spark

1、 什么是Spark?
Spark是基于內(nèi)存計(jì)算的大數(shù)據(jù)并行計(jì)算框架,可用于構(gòu)建大型的、低延時(shí)的數(shù)據(jù)分析應(yīng)用程序.
2、 Spark的特點(diǎn)。
運(yùn)行速度快、使用有向無環(huán)圖執(zhí)行引擎、支持循環(huán)數(shù)據(jù)流與內(nèi)存計(jì)算。
容易使用,支持多種編程語言。
通用性:提供完整的技術(shù)棧,SQL查詢、流式計(jì)算、機(jī)器學(xué)習(xí)等等。
運(yùn)行模式多樣:可運(yùn)行在集群、EC2等環(huán)境中。

3、 Spark與Hadoop的對比

Hadoop缺點(diǎn)
(1)表達(dá)能力有限,需要轉(zhuǎn)化為Map和Reduce操作。
(2)磁盤IO開銷大,需要先內(nèi)存緩存寫入,緩存內(nèi)容溢寫到磁盤。
(3)延遲高:一次計(jì)算可能要多個MapReduce任務(wù),任務(wù)之間設(shè)計(jì)IO開銷,在前一個任務(wù)完成之前,其他任務(wù)無法開始。

Spark優(yōu)點(diǎn):
(1) Spark計(jì)算模式也屬于MapReduce,但不局限于Map和Reduce操作。
(2) 提供內(nèi)存計(jì)算、計(jì)算結(jié)果放置于內(nèi)存中。
(3) 基于DAG任務(wù)調(diào)度執(zhí)行機(jī)制,由于MapReduce的迭代執(zhí)行機(jī)制。

4、 Spark生態(tài)系統(tǒng)
大數(shù)據(jù)處理主要包括3個·類型
(1) 復(fù)雜的批量數(shù)據(jù)處理
(2) 基于歷史數(shù)據(jù)的交互式查詢
(3) 基于實(shí)時(shí)數(shù)據(jù)流的數(shù)據(jù)處理

Spark應(yīng)用場景
場景 時(shí)間跨度 spark生態(tài)組件
復(fù)雜的批量數(shù)據(jù)處理 小時(shí)級 spark core
基于歷史數(shù)據(jù)的交互式查詢 分鐘、秒級別 Spark SQL
實(shí)時(shí)數(shù)據(jù)流的數(shù)據(jù)處理 毫秒級、秒級別 spark streaming、structured streaming
歷史數(shù)據(jù)的數(shù)據(jù)挖掘 MLib
圖結(jié)構(gòu)數(shù)據(jù)的處理 GraphX

5、 Spark運(yùn)行架構(gòu)
RDD:一種高度受限的共享內(nèi)存模型
DAG:反應(yīng)RDD之間的依賴關(guān)系
Spark基本運(yùn)行流程:

6、 RDD相關(guān)原理

7、 RDD特性
(1) 高效的容錯性
(2) 中間結(jié)果持久化道內(nèi)存
(3) 存放的數(shù)據(jù)可以是Java對象

8、 RDD之間的依賴關(guān)系

M*R個bucket M: map任務(wù)數(shù)量 R:Reduce任務(wù)數(shù)量
Spark多個桶寫入同一個文件
Map任務(wù)產(chǎn)生 數(shù)據(jù)文件與索引文件,Reduce任務(wù)通過索引文件信息,獲取自己應(yīng)該處理的數(shù)據(jù)信息。
Reduce任務(wù)并不進(jìn)行排序,而是利用HashMap進(jìn)行分類,Reduce內(nèi)存必須滿足存放所有其應(yīng)該存儲的<key,value>否則內(nèi)存會溢出。但內(nèi)存過大時(shí)操作也會從內(nèi)存到磁盤。Spark的Shuffle過程也有把數(shù)據(jù)寫入到磁盤的情況。

9、 寬依賴與窄依賴

10、 階段劃分
只有窄依賴才能完成流水線優(yōu)化。Spark通過分析RDD之間的依賴關(guān)系生成DAG,再通過分析各個RDD中的分區(qū)之間的依賴關(guān)系,劃分階段。
具體方法:在DAG中反向解析,遇到寬依賴就斷開,遇到窄依賴就把當(dāng)前的RDD加入當(dāng)前的階段。

11、 RDD運(yùn)行過程
(1) 創(chuàng)建RDD對象
(2) SparkContent負(fù)責(zé)計(jì)算RDD之間的依賴關(guān)系,構(gòu)建DAG
(3) DAGScheduler負(fù)責(zé)把DAG分解成多個階段、每個階段中包含多個任務(wù),每個任務(wù)會被任務(wù)調(diào)度器分發(fā)給各個工作節(jié)點(diǎn)上的Executor去執(zhí)行

第11章 流計(jì)算

1、 流數(shù)據(jù)
(1) 快速持續(xù)到達(dá)、潛在數(shù)據(jù)量也許是無窮無盡的
(2) 數(shù)據(jù)來源眾多、格式復(fù)雜
(3) 數(shù)據(jù)量大、但不是十分關(guān)注存儲。
(4) 注重?cái)?shù)據(jù)的整體價(jià)值,不過分關(guān)注個別數(shù)據(jù)
(5) 數(shù)據(jù)順序顛倒,或者不完整,系統(tǒng)無法控制將要處理的新到達(dá)的數(shù)據(jù)元素的順序。

2、 流計(jì)算
MapReduce負(fù)責(zé)海量數(shù)據(jù)執(zhí)行批量計(jì)算
(1) 高性能 (2)海量式 (3)實(shí)時(shí)性 (4)分布式(5)易用性 (6)可靠性

3、 傳統(tǒng)數(shù)據(jù)處理與流計(jì)算對比

4、 數(shù)據(jù)處理流程詳情
(1) 數(shù)據(jù)實(shí)時(shí)采集
Agent:主動采集數(shù)據(jù)、并把數(shù)據(jù)推送到Collector部分
Collector:接收多個Agent的數(shù)據(jù),并實(shí)現(xiàn)有序、可靠、高性能轉(zhuǎn)發(fā)
Store:存儲,一般不存儲,直接發(fā)送給流計(jì)算平臺進(jìn)行計(jì)算

(2) 數(shù)據(jù)實(shí)時(shí)計(jì)算
數(shù)據(jù)流入 流處理系統(tǒng)實(shí)時(shí)計(jì)算 計(jì)算結(jié)果與數(shù)據(jù)流出

(3) 實(shí)時(shí)查詢服務(wù)
流計(jì)算處理的數(shù)據(jù)是實(shí)時(shí)的,用戶通過流處理系統(tǒng)獲取的是實(shí)施結(jié)果,無須人為查詢,系統(tǒng)推送給用戶

5、 流計(jì)算應(yīng)用場景
(1) 實(shí)時(shí)分析,如用戶商品推薦、廣告推薦。
(2) 實(shí)時(shí)交通,導(dǎo)航路線實(shí)時(shí)交通狀況。

6、 Storm
Storm 免費(fèi)的、開源的分布式實(shí)時(shí)計(jì)算系統(tǒng)。

7、 Storm的特點(diǎn)
(1) 整合性。方便地與隊(duì)列系統(tǒng)和數(shù)據(jù)庫系統(tǒng)進(jìn)行整合
(2) 簡易的API。Storm的API在使用上簡單方便。
(3) 可擴(kuò)展性。并行特點(diǎn),可以部署在分布式集群。
(4) 容錯性。自動故障節(jié)點(diǎn)重啟。
(5) 可靠的消息處理。保證每個消息都能完整處理。
(6) 支持各種編程語言。
(7) 快速部署。
(8) 開源、免費(fèi)。

8、 Storm設(shè)計(jì)思想
Streams:流數(shù)據(jù)是一個無限的Tuple序列。
Spouts:流數(shù)據(jù)的源頭。
Bolts:流數(shù)據(jù)的轉(zhuǎn)換過程。
Topology:Spouts和Bolts組成的拓?fù)渚W(wǎng)絡(luò),流轉(zhuǎn)換圖。
Stream Groupings: 告知兩個Bolt之間怎樣進(jìn)行Tuple傳遞。
ShuffleGrouping: 隨機(jī)分組,隨即分發(fā)Stream中的Tuple,保證每個Bolt的Task接收Tuple數(shù)量大致一致。
FiledsGouping: 按照字段分組,保證相同字段的Tuple分配到同一個Task中。
AllGrouping: 廣播發(fā)送,每一個Task都會收到所有的Tuple.
GlobalGrouping:全局分組,所有Tuple分到同一個Task中。
NonGrouping: 不分組。
DirectGrouping:直接分組,直接指定由某個Task來執(zhí)行Tuple的處理。

9、 Storm的框架設(shè)計(jì)

(1) 提交Topology到Storm集群
(2) Nimbus將分配給Supervisor的任務(wù)寫入Zookeeper
(3) Supervisor從Zookeeper獲取所分配的任務(wù),并啟動Worker進(jìn)程。
(4) Worker進(jìn)行執(zhí)行任務(wù)。

10、 Spark Streaming
Spark Streaming提供 整合多種輸入數(shù)據(jù)源,將實(shí)時(shí)輸入數(shù)據(jù)流以時(shí)間片為單位進(jìn)行拆分,經(jīng)過Spark引擎處理每個時(shí)間片數(shù)據(jù),Spark Streaming的輸入數(shù)據(jù)按照時(shí)間片分成一段一段的Dstream,每一段數(shù)據(jù)轉(zhuǎn)換為Spark中的RDD,對Dstream的操作最終轉(zhuǎn)變?yōu)橄鄬?yīng)的RDD操作。
Spark streaming無法完成毫秒級的流計(jì)算,因?yàn)槠鋵⒘鲾?shù)據(jù)按批處理窗口大小分解為一系列的批量處理的作業(yè)。

總結(jié)

以上是生活随笔為你收集整理的《大数据技术原理与应用》 期末复习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。