《大数据技术原理与应用》林子雨 期末复习重点(总结)
一、
1、數(shù)據(jù)產(chǎn)生方式大致經(jīng)歷了3個(gè)階段:運(yùn)營(yíng)式系統(tǒng)階段、用戶(hù)原創(chuàng)內(nèi)容階段、感知式系統(tǒng)階段。?
2、大數(shù)據(jù)的特點(diǎn):數(shù)據(jù)量大(volume)、數(shù)據(jù)類(lèi)型繁多(variety)、處理速度快(velocity)、價(jià)值密度低(value);4V+1C (C:復(fù)雜度 complexity)。
3、云計(jì)算的特點(diǎn):超大規(guī)模、虛擬化、高可靠性、通用性、高可伸縮性、按需服務(wù)、極其廉價(jià)。
4、科學(xué)研究方面經(jīng)歷的4種范式:實(shí)驗(yàn)、理論、計(jì)算、數(shù)據(jù)。
5、大數(shù)據(jù)四種計(jì)算模式:批量計(jì)算(針對(duì)大規(guī)模數(shù)據(jù)的批量數(shù)據(jù));流計(jì)算(針對(duì)流計(jì)算的實(shí)時(shí)計(jì)算);圖計(jì)算(針對(duì)大規(guī)模圖結(jié)構(gòu)數(shù)據(jù)的處理);查詢(xún)分析計(jì)算(大規(guī)模數(shù)據(jù)的存儲(chǔ)管理和查詢(xún)分析)。
6、數(shù)據(jù)總體上可以分為靜態(tài)數(shù)據(jù)和流數(shù)據(jù)。
7、對(duì)靜態(tài)數(shù)據(jù)和流數(shù)據(jù)的處理,對(duì)應(yīng)著兩種截然不同的計(jì)算模式:批量計(jì)算和實(shí)時(shí)計(jì)算。
8、Hadoop的特性:高可靠性、高效性、高擴(kuò)展性、高容錯(cuò)性、成本低、運(yùn)行在Linux平臺(tái)上、支持多種編程語(yǔ)言。
9、Hadoop的核心子項(xiàng)目:HDFS和MapReduce。HDFS 2.0的新特性HDFS HA和HDFS聯(lián)邦。
10、YARN體系結(jié)構(gòu)中的三個(gè)組件:ResourceManager、ApplicationMaster和NodeManager。
二、
1、分布式文件系統(tǒng)是一種通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)文件在多臺(tái)主機(jī)上進(jìn)行分布式存儲(chǔ)的文件系統(tǒng)。
2、名稱(chēng)節(jié)點(diǎn):名稱(chēng)節(jié)點(diǎn)也叫主節(jié)點(diǎn),負(fù)責(zé)管理分布式文件系統(tǒng)的命名空間,負(fù)責(zé)文件和目錄的創(chuàng)建、刪除和重命名等,同時(shí)管理著數(shù)據(jù)節(jié)點(diǎn)和文件塊的映射關(guān)系。
? ? ? 數(shù)據(jù)節(jié)點(diǎn):數(shù)據(jù)節(jié)點(diǎn)也叫從節(jié)點(diǎn),負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和讀取,在存儲(chǔ)時(shí),有名稱(chēng)節(jié)點(diǎn)分配存儲(chǔ)位置,然后由客戶(hù)端把數(shù)據(jù)直接寫(xiě)入相應(yīng)的數(shù)據(jù)節(jié)點(diǎn)。
? ? ? 第二名稱(chēng)節(jié)點(diǎn):完成EditLog合并到FsImage的過(guò)程,縮短合并的重啟時(shí)間,其次作為“檢查點(diǎn)”保存元數(shù)據(jù)的信息。
3、HDFS體系結(jié)構(gòu):HDFS采用了主從結(jié)構(gòu)模型,一個(gè)HDFS集群包括一個(gè)名稱(chēng)節(jié)點(diǎn)和若干個(gè)數(shù)據(jù)節(jié)點(diǎn)。
4、數(shù)據(jù)的冗余存儲(chǔ):作為一個(gè)分布式文件系統(tǒng),為了保證系統(tǒng)的容錯(cuò)性和可用性,HDFS采用了多副本方式對(duì)數(shù)據(jù)進(jìn)行冗余存儲(chǔ),通常一個(gè)數(shù)據(jù)塊的多個(gè)副本會(huì)被分不到不同的數(shù)據(jù)節(jié)點(diǎn)上,數(shù)據(jù)塊1被分別存放到數(shù)據(jù)節(jié)點(diǎn)A和C上,數(shù)據(jù)塊2被存放在數(shù)據(jù)節(jié)點(diǎn)A和B上。(多副本存儲(chǔ):名稱(chēng)節(jié)點(diǎn)保存的元數(shù)據(jù)被分割成1、2、3、4、5個(gè)數(shù)據(jù)塊,并復(fù)制多個(gè)副本分別保存在不同數(shù)據(jù)節(jié)點(diǎn)上。
? ? 有3個(gè)優(yōu)點(diǎn):
? ? (1)加快數(shù)據(jù)傳輸速度。當(dāng)多個(gè)客戶(hù)端需要同時(shí)訪問(wèn)同一個(gè)文件時(shí),可以讓各個(gè)客戶(hù)端分別從不同的數(shù)據(jù)塊副本中讀取數(shù)據(jù),這就大大加快了傳輸速度。
? ? (2)容易檢查數(shù)據(jù)錯(cuò)誤。HDFS的數(shù)據(jù)節(jié)點(diǎn)之間通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù),采用多個(gè)副本可以很容易判斷數(shù)據(jù)傳輸是否出錯(cuò)
? ? (3)保證數(shù)據(jù)的可靠性。即使某個(gè)數(shù)據(jù)節(jié)點(diǎn)出現(xiàn)故障失效,也不會(huì)造成數(shù)據(jù)丟失。
5、HBase采用行鍵、列族、列限定符和時(shí)間戳進(jìn)行索引。
? ? ?HBase的功能組件:庫(kù)函數(shù)、一個(gè)Master主服務(wù)器、許多個(gè)Region服務(wù)器。
? ? ?HBase的系統(tǒng)架構(gòu):客戶(hù)端、Zookeeper服務(wù)器、Master主服務(wù)器、Region服務(wù)器。
? ? ?Zookeeper服務(wù)器:并非一臺(tái)單一的機(jī)器,可能是由多臺(tái)機(jī)器構(gòu)成的集群來(lái)提供穩(wěn)定可靠的協(xié)同服務(wù)。
6、Region服務(wù)器工作原理:1)用戶(hù)讀寫(xiě)數(shù)據(jù)過(guò)程。當(dāng)用戶(hù)寫(xiě)入數(shù)據(jù)時(shí),被分配到相應(yīng)的Region服務(wù)器去執(zhí)行;用戶(hù)數(shù)據(jù)首先寫(xiě)入到MemStore和HLog中。當(dāng)用戶(hù)讀取數(shù)據(jù)時(shí),Region服務(wù)器首先訪問(wèn)MemStore緩存,如找不到,再去磁盤(pán)上的StoreFile中尋找。2)緩存的刷新。系統(tǒng)周期性地把MemStore緩存里的內(nèi)容刷寫(xiě)到磁盤(pán)的StoreFile文件中,清空緩存,并在Hlog里寫(xiě)入一個(gè)標(biāo)記。每次刷寫(xiě)都生成一個(gè)新的StoreFile文件。每個(gè)Region服務(wù)器都有自己的HLog文件,每次啟動(dòng)檢查該文件,確定最近一次執(zhí)行緩存刷新之后是否發(fā)生新的寫(xiě)入;若發(fā)現(xiàn)更新,先寫(xiě)入MemStore再刷寫(xiě)到MemStore,最后刪除舊的HLog文件,開(kāi)始為用戶(hù)提供服務(wù)。3)StoreFile的合并。每次刷寫(xiě)生成一個(gè)新的StoreFile,調(diào)用Store.compact()把多個(gè)合并成一個(gè)。
7、NoSQL數(shù)據(jù)庫(kù)特點(diǎn):靈活的可擴(kuò)展性、靈活的數(shù)據(jù)類(lèi)型、與云計(jì)算緊密融合。
? ? ?關(guān)系數(shù)據(jù)庫(kù)主要表現(xiàn):無(wú)法滿(mǎn)足海量數(shù)據(jù)的管理需求;無(wú)法滿(mǎn)足數(shù)據(jù)高并發(fā)的需求;無(wú)法滿(mǎn)足高可擴(kuò)展性和高可用性的需求。
8、NoSQL四大類(lèi)型:鍵值數(shù)據(jù)庫(kù)、列族數(shù)據(jù)庫(kù)、文檔數(shù)據(jù)庫(kù)、圖形數(shù)據(jù)庫(kù)。
NoSQL三大基石:CAP、BASE、最終一致性。
CAP原則:C:一致性(Consistency)。它是指任何一個(gè)讀操作總是能夠讀到之前完成的寫(xiě)操作的結(jié)果,也就是在分布式環(huán)境中,多點(diǎn)的數(shù)據(jù)是一致的。A:可用性(Availability)。它是指快速獲取數(shù)據(jù),可以在確定的時(shí)間內(nèi)返回操作結(jié)果。P:分區(qū)容錯(cuò)性(Partition tolerance)。它是指當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況時(shí),分離的系統(tǒng)也能夠正常運(yùn)行。CAP原則指這三個(gè)要素最多只能同時(shí)實(shí)現(xiàn)兩點(diǎn),不可能三者兼顧。
ACID原則:A:原子性(Atomicity)。它是指事務(wù)必須是原子工作單位,對(duì)于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。C:一致性(Consistency)。它是指事務(wù)在完成時(shí),必須使所有的數(shù)據(jù)都保持一致?tīng)顟B(tài)。I:隔離性(Isolation)。它是指由并發(fā)事務(wù)所做的修改必須與任何其他并發(fā)事務(wù)所做的修改隔離。D:持久性(Durability)。它是指事務(wù)完成后,它對(duì)于系統(tǒng)的影響是永久性的,該修改即使出現(xiàn)致命的系統(tǒng)故障也將一直保持。
BASE理論:基本可用(Basically Available)、軟狀態(tài)(Soft State)、
? ? ? ? ? ? ? ? ? ? ?最終一致性(Eventually?Consistent)。
9、云數(shù)據(jù)庫(kù):云計(jì)算庫(kù)是部署和虛擬化在云計(jì)算環(huán)境中的數(shù)據(jù)庫(kù),是在云計(jì)算的大背景下發(fā)展起來(lái)的一種新興的共享基礎(chǔ)架構(gòu)的方法,它極大地增強(qiáng)了數(shù)據(jù)庫(kù)的存儲(chǔ)能力,消除了人員、硬件、軟件的重復(fù)配置,讓軟、硬件升級(jí)變得更加容易,同時(shí)也虛擬化了許多后端功能。云數(shù)據(jù)庫(kù)具有高擴(kuò)展性、高可用性、采用多租形式和支持資源有效分發(fā)等特點(diǎn)。
? ? ? 云數(shù)據(jù)庫(kù)特性:動(dòng)態(tài)可擴(kuò)展、高可用性、較低的使用代價(jià)、易用性、高性能、免維護(hù)、安全。
10、Spark的4個(gè)主要特點(diǎn):①運(yùn)行速度快②容易使用③通用性④運(yùn)行模式多樣
Spark的優(yōu)點(diǎn):①Spark的計(jì)算模式也屬于MapReduce,但不局限于Map和Reduce操作,還提供了多種數(shù)據(jù)集操縱類(lèi)型,編程模型比MapReduce更靈活。②Spark提供了內(nèi)存計(jì)算,中間結(jié)果直接放到內(nèi)存中,帶來(lái)了更高的迭代運(yùn)算效率。③Spark基于DAG的任務(wù)調(diào)度執(zhí)行機(jī)制,要優(yōu)于MapReduce的迭代執(zhí)行機(jī)制。
RDD概念:RDD叫做彈性分布式數(shù)據(jù)集,是Spark中最基本的數(shù)據(jù)抽象,它代表一個(gè)不可變、可分區(qū)、里面的元素可并行計(jì)算的集合。
寬依賴(lài)、窄依賴(lài):窄依賴(lài)表現(xiàn)為一個(gè)父RDD的分區(qū)對(duì)應(yīng)于一個(gè)子RDD的分區(qū),或多個(gè)父RDD的分區(qū)對(duì)應(yīng)于一個(gè)子RDD的分區(qū)。寬依賴(lài)則表現(xiàn)為存在一個(gè)父RDD的一個(gè)分區(qū)對(duì)應(yīng)一個(gè)子RDD的多個(gè)分區(qū)。
11、Storm的特點(diǎn):①整合性②簡(jiǎn)易的API③可擴(kuò)展性④容錯(cuò)性⑤可靠的消息處理⑥支持各種編程語(yǔ)言⑦快速部署⑧免費(fèi)、開(kāi)源。
? ? ? ?Storm的主要術(shù)語(yǔ):Streams、Spouts、Bolts、Topology和Stream Groupings
? ? ? ?Spark Steaming和Storm最大的區(qū)別在于,Spark Steaming無(wú)法實(shí)現(xiàn)毫秒級(jí)的流計(jì)算,? ? ? ? ? ? ? ? ? 而?Storm則可以實(shí)現(xiàn)毫秒級(jí)響應(yīng)。
12、Pregel圖計(jì)算模型包括有向圖和頂點(diǎn)、頂點(diǎn)之間的消息傳遞以及Pregel的計(jì)算過(guò)程,最后給出一個(gè)簡(jiǎn)單的實(shí)例。
13、PageRank算法在Pregle和MapReduce中實(shí)現(xiàn)的比較:①Pregel將PagRank處理對(duì)象看成連通圖,而MapReduce則將其看成鍵值對(duì)。②Pregel將計(jì)算細(xì)化到頂點(diǎn),同時(shí)在頂點(diǎn)內(nèi)控制循環(huán)迭代次數(shù),而MapReduce則計(jì)算批量化處理,按任務(wù)進(jìn)行循環(huán)迭代控制。③圖算法如果用MapReduce實(shí)現(xiàn),需要一系列的MapReduce的調(diào)用。從一個(gè)階段到下一個(gè)階段,它需要傳遞整個(gè)圖的狀態(tài),會(huì)產(chǎn)生大量不必要的序列化和反序列化開(kāi)銷(xiāo)。而Pregel使用超步簡(jiǎn)化了這個(gè)過(guò)程。
14、數(shù)據(jù)可視化是指將大型數(shù)據(jù)集中的數(shù)據(jù)以圖形圖像形式表示,并利用數(shù)據(jù)分析和開(kāi)發(fā)工具發(fā)現(xiàn)其中未知信息的處理過(guò)程。
15、協(xié)同過(guò)濾推薦是指推薦系統(tǒng)中應(yīng)用最早和成為成功的技術(shù)之一。
三、
1、Map和Reduce函數(shù)的關(guān)系
Map和reduce都是以<key,value>作為輸入,按一定的映射規(guī)則轉(zhuǎn)換成另一個(gè)或一批<key,value>進(jìn)行輸出。
Map:輸入<k1,v1>;輸出:List<k2,v2>;過(guò)程:1.將小數(shù)據(jù)集進(jìn)一步解析成一批<key,value>對(duì),輸入map函數(shù)進(jìn)行處理 2.每一個(gè)輸入的<k1,v1>會(huì)輸出一批<k2,v2>,<k2,v2>是計(jì)算的中間結(jié)果。
Reduce:輸入<k2,List(v2)>;輸出:<k3,v3>;過(guò)程:輸入的中間結(jié)果<k2,List(v2)>中的List(v2)表示是一批屬于同一個(gè)k2的value。
2、Map端的shuffle過(guò)程
①.輸入數(shù)據(jù)和執(zhí)行Map任務(wù) 2.寫(xiě)入緩存 3.溢寫(xiě)(分區(qū),排序和合并)4.文件歸并
? ? ?Reduce端的shuffle過(guò)程
①“領(lǐng)取”數(shù)據(jù) 2.歸并數(shù)據(jù) 3.將數(shù)據(jù)輸入給reduce任務(wù)
3、簡(jiǎn)述HDFS HA
? 在一個(gè)典型的HA集群中,一般設(shè)置兩個(gè)名稱(chēng)節(jié)點(diǎn),其中一個(gè)名稱(chēng)節(jié)點(diǎn)處于“活躍”狀態(tài),另一個(gè)處于“待命”狀態(tài)。處于活躍狀態(tài)的名稱(chēng)節(jié)點(diǎn)負(fù)責(zé)對(duì)外處理所有客戶(hù)端的請(qǐng)求,而處于待命狀態(tài)的名稱(chēng)節(jié)點(diǎn)則作為備用節(jié)點(diǎn),保存了足夠多的系統(tǒng)的元數(shù)據(jù),當(dāng)名稱(chēng)節(jié)點(diǎn)出現(xiàn)故障時(shí)提供快速恢復(fù)力。也就是說(shuō),在HDFS HA中,處于待命狀態(tài)的名稱(chēng)節(jié)點(diǎn)提供了“熱備份”,一旦活躍名稱(chēng)節(jié)點(diǎn)出現(xiàn)故障,就可以立即切換到待命名稱(chēng)節(jié)點(diǎn),不會(huì)影響系統(tǒng)的正常對(duì)外服務(wù)。
3、簡(jiǎn)述HDFS聯(lián)邦(解決了可擴(kuò)展性、系統(tǒng)性能、隔離性三個(gè)問(wèn)題)
? ①在HDFS聯(lián)邦中,設(shè)計(jì)了多個(gè)相互獨(dú)立的名稱(chēng)節(jié)點(diǎn),使得HDFS的命名服務(wù)能夠水平擴(kuò)展,這些名稱(chēng)節(jié)點(diǎn)分別進(jìn)行各自命名空間和塊的管理,相互之間是聯(lián)邦關(guān)系,不需要彼此協(xié)調(diào)。②HDFS聯(lián)邦中的名稱(chēng)節(jié)點(diǎn)提供了命名空間和塊掛辦理功能。③HDFS聯(lián)邦擁有多個(gè)獨(dú)立的命名空間,其中,每一個(gè)命名空間管理屬于自己的一組塊。
4、數(shù)據(jù)存取策略:包括數(shù)據(jù)存放、數(shù)據(jù)讀取和數(shù)據(jù)復(fù)制等方面,是分布式文件系統(tǒng)的核心內(nèi)容。? ? ? ?(1)數(shù)據(jù)存放:HDFS采用了以機(jī)架為基礎(chǔ)的數(shù)據(jù)存放策略,一個(gè)HDFS通常包含多個(gè)機(jī)架,不同機(jī)架之間的數(shù)據(jù)通信需要經(jīng)過(guò)交換機(jī)或者路由器,同一個(gè)機(jī)架中不同機(jī)器之間的通信則不需要經(jīng)過(guò)交換機(jī)和路由器。HDFS默認(rèn)的冗余因子是3,每個(gè)文件塊會(huì)被同事保存到3個(gè)地方,其中,2副本放在同一個(gè)機(jī)架的不同機(jī)器上,第三個(gè)副本放在不同的機(jī)架機(jī)器上。
? ? ?(2)數(shù)據(jù)讀取,HDFS提供了一個(gè)API可以確定一個(gè)數(shù)據(jù)節(jié)點(diǎn)所屬的機(jī)架ID,客戶(hù)端也可以調(diào)用API獲取自己所屬的機(jī)架ID。當(dāng)客戶(hù)端讀取數(shù)據(jù)時(shí),從名稱(chēng)節(jié)點(diǎn)獲得數(shù)據(jù)塊不同副本的存放位置列表,列表中包含了副本所在的數(shù)據(jù)節(jié)點(diǎn),可以調(diào)用API來(lái)確定客戶(hù)端和這些數(shù)據(jù)節(jié)點(diǎn)所屬的機(jī)架ID。
? ? ?(3)數(shù)據(jù)復(fù)制:采用流水線復(fù)制的策略。客戶(hù)端要往HDFS中寫(xiě)入一個(gè)文件時(shí),這個(gè)文件會(huì)首先被寫(xiě)入本地,并被切分為若干個(gè)塊,每個(gè)塊都向HDFS集群中的名稱(chēng)節(jié)點(diǎn)發(fā)起寫(xiě)請(qǐng)求,名稱(chēng)節(jié)點(diǎn)根據(jù)系統(tǒng)中各個(gè)數(shù)據(jù)節(jié)點(diǎn)的使用情況,選擇一個(gè)數(shù)據(jù)節(jié)點(diǎn)列表返回給客戶(hù)端,然后客戶(hù)端把數(shù)據(jù)首先寫(xiě)入列表中的第一個(gè)數(shù)據(jù)節(jié)點(diǎn),同時(shí)把列表傳給第一個(gè)數(shù)據(jù)節(jié)點(diǎn),第一個(gè)數(shù)據(jù)節(jié)點(diǎn)收到時(shí)寫(xiě)入本地,并向第二個(gè)數(shù)據(jù)節(jié)點(diǎn)發(fā)起鏈、連接請(qǐng)求,把數(shù)據(jù)和列表傳給第二個(gè)數(shù)據(jù)節(jié)點(diǎn),依次類(lèi)推,列表中多個(gè)數(shù)據(jù)節(jié)點(diǎn)形成一條數(shù)據(jù)復(fù)制的流水線。最后,文件寫(xiě)完的時(shí)候,數(shù)據(jù)復(fù)制也同時(shí)完成。
總結(jié)
以上是生活随笔為你收集整理的《大数据技术原理与应用》林子雨 期末复习重点(总结)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html突出显示,javascript-
- 下一篇: LT8918 BT1120转mipi d