大数据技术原理与应用(最后三天备考!!!)
大數(shù)據(jù)原理與應(yīng)用期末備考 三天速成不掛科
☆ 內(nèi)容期末大概率考
選擇部分直達(dá) → 選擇部分
導(dǎo)航
- 大數(shù)據(jù)原理與應(yīng)用期末備考 三天速成不掛科
- 第一章 大數(shù)據(jù)概述
- 第二章 大數(shù)據(jù)處理架構(gòu) Hadoop
- 第三章 分布式文件系統(tǒng) HDFS
- 第四章 分布式數(shù)據(jù)庫 HBase
- 第五章 NoSql 數(shù)據(jù)庫
- 第六章 云數(shù)據(jù)庫
- 第七章 MapReduce
- 第八章 Hadoop 再探討
第一章 大數(shù)據(jù)概述
1. 試述大數(shù)據(jù)的四個基本特征。
數(shù)據(jù)量大:人類進(jìn)入信息社會后,數(shù)據(jù)以自然方式增長,數(shù)據(jù)每兩年就會增加一倍多。
數(shù)據(jù)類型繁多:大數(shù)據(jù)的數(shù)據(jù)類型非常豐富,包括結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),如郵件、音頻、視頻等,給數(shù)據(jù)處理和分析技術(shù)提出了新的挑戰(zhàn)。
處理速度快:由于很多應(yīng)用都需要基于快速生成的數(shù)據(jù)給出實時分析結(jié)果,因此新興的大數(shù)據(jù)分析技術(shù)通常采用集群處理和獨特的內(nèi)部設(shè)計。
價值密度低:有價值的數(shù)據(jù)分散在海量數(shù)據(jù)中。
2. 舉例說明大數(shù)據(jù)的關(guān)鍵技術(shù)。
| 數(shù)據(jù)采集與預(yù)處理 | 利用 ETL 工具將分布在異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)抽到臨時中間層后進(jìn)行清洗、轉(zhuǎn)換和集成后加載到數(shù)據(jù)倉庫中,成為聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘的基礎(chǔ),也可以利用日志采集工具(如 Flume、Kafka 等)將實時采集的數(shù)據(jù)作為流計算系統(tǒng)的輸入,進(jìn)行實時處理分析。 |
| 數(shù)據(jù)存儲和管理 | 利用分布式文件系統(tǒng)、NoSQL 數(shù)據(jù)庫等實現(xiàn)對數(shù)據(jù)的存儲和管理。 |
| 數(shù)據(jù)處理與分析 | 利用分布式并行編程模型和計算框架,結(jié)合機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘算法,實現(xiàn)對海量數(shù)據(jù)的處理和分析,并進(jìn)行可視化呈現(xiàn)。 |
| 數(shù)據(jù)安全和隱私保護(hù) | 構(gòu)建數(shù)據(jù)安全體系和隱私數(shù)據(jù)保護(hù)體系。 |
3. 詳細(xì)闡述大數(shù)據(jù)、云計算和物聯(lián)網(wǎng)三者之間的區(qū)別與聯(lián)系
| 大數(shù)據(jù)側(cè)重于海量數(shù)據(jù)的存儲、處理與分析,從海量數(shù)據(jù)中發(fā)現(xiàn)價值,服務(wù)于生產(chǎn)和生活;云計算旨在整合和優(yōu)化各種 IT 資源并通過網(wǎng)絡(luò)以服務(wù)的方式,廉價地提供給用戶;物聯(lián)網(wǎng)的發(fā)展目標(biāo)是實現(xiàn) “ 物物相連 ”,應(yīng)用創(chuàng)新是物聯(lián)網(wǎng)的核心。 | 從整體上看,大數(shù)據(jù)、云計算和物聯(lián)網(wǎng)這三者是相輔相成的。大數(shù)據(jù)根植于云計算,大數(shù)據(jù)分析的很多技術(shù)都來自于云計算,云計算的分布式存儲和管理系統(tǒng)提供了海量數(shù)據(jù)的存儲和管理能力,分布式并行處理框架 MapReduce 提供了數(shù)據(jù)分析能力。沒有這些云計算技術(shù)作為支撐,大數(shù)據(jù)分析就無從談起。物聯(lián)網(wǎng)的傳感器源源不斷的產(chǎn)生大量數(shù)據(jù),構(gòu)成了大數(shù)據(jù)的重要數(shù)據(jù)來源,物聯(lián)網(wǎng)需要借助于云計算和大數(shù)據(jù)技術(shù),實現(xiàn)物聯(lián)網(wǎng)大數(shù)據(jù)的存儲、分析和處理。 |
第二章 大數(shù)據(jù)處理架構(gòu) Hadoop
☆☆☆ 1. 試述 Hadoop 具有哪些特性。
2. 試述 Hadoop 的項目結(jié)構(gòu)以及每個部分的具體功能。
3. 試列舉單機(jī)模式和偽分布式模式的異同點。
單機(jī)模式: Hadoop 只在一臺機(jī)器上運行,存儲采用本地文件系統(tǒng),沒有采用分布式文件系統(tǒng) HDFS。
偽分布式模式: Hadoop 存儲采用分布式文件系統(tǒng) HDFS,但是,HDFS 的名稱節(jié)點和數(shù)據(jù)節(jié)點都在同一臺機(jī)器上。
第三章 分布式文件系統(tǒng) HDFS
1. 試述 HDFS 中的名稱節(jié)點和數(shù)據(jù)節(jié)點的具體功能。
名稱節(jié)點 負(fù)責(zé)管理分布式文件系統(tǒng)系統(tǒng)的命名空間(Namespace),記錄分布式文件系統(tǒng)中的每個文件中各個塊所在的數(shù)據(jù)節(jié)點的位置信息。
數(shù)據(jù)節(jié)點 是分布式文件系統(tǒng) HDFS 的工作節(jié)點,負(fù)責(zé)數(shù)據(jù)的存儲和讀取,會根據(jù)客戶端或者名稱節(jié)點的調(diào)度來進(jìn)行數(shù)據(jù)的存儲和檢索,并向名稱節(jié)點定期發(fā)送自己所存儲的塊的列表信息。
2. HDFS 只設(shè)置唯一一個名稱節(jié)點,在簡化系統(tǒng)設(shè)計的同時也帶來了一些明顯的局限性,請闡述局限性具體表現(xiàn)在哪些方面。
3. 試述 HDFS 的冗余數(shù)據(jù)保存策略。
采用了多副本方式多數(shù)據(jù)進(jìn)行存儲。即先在集群內(nèi)挑選一個磁盤不太滿、CPU 不太忙的數(shù)據(jù)節(jié)點作為第一個副本存放點;選取不同的機(jī)架的數(shù)據(jù)節(jié)點作為第二副本存放點;選擇與第一副本存放點同機(jī)架的不同節(jié)點作為第三副本存放點;第四副本存放點從集群中隨機(jī)挑選節(jié)點。
4. 數(shù)據(jù)復(fù)制主要是在數(shù)據(jù)寫入和數(shù)據(jù)恢復(fù)的時候發(fā)生,HDFS 數(shù)據(jù)復(fù)制是使用流水線復(fù)制的策略,請闡述該策略的細(xì)節(jié)。
每個塊都會向 HDFS 集群中的名稱節(jié)點發(fā)出寫請求,名稱節(jié)點會返回一個數(shù)據(jù)節(jié)點列表給客戶端,客戶端將數(shù)據(jù)寫入列表中第一個數(shù)據(jù)節(jié)點時,同時把列表傳給第一個節(jié)點;第一個節(jié)點在接收到數(shù)據(jù)寫入本地的同時,會把自己已經(jīng)接收到的數(shù)據(jù)傳給第二個數(shù)據(jù)節(jié)點,同時第二個數(shù)據(jù)節(jié)點接收到數(shù)據(jù)時,會在寫入的同時將數(shù)據(jù)發(fā)送給第三個節(jié)點,以此類推。最后,當(dāng)文件寫完的時候,數(shù)據(jù)復(fù)制也同時完成了。
5. 請闡述 HDFS 在不發(fā)生故障的情況下讀文件的過程。
1) 客戶端打開文件,創(chuàng)建輸入流;
2) 輸入流通過遠(yuǎn)程調(diào)用名稱節(jié)點,獲得文件開始部分?jǐn)?shù)據(jù)塊的保存位置;
3) 客戶端得到位置后開始讀取數(shù)據(jù),輸入流選擇距離客戶端最近的數(shù)據(jù)節(jié)點建立連接并讀取數(shù)據(jù);
4) 數(shù)據(jù)從該數(shù)據(jù)節(jié)點讀取至客戶端,當(dāng)該數(shù)據(jù)塊讀取完畢時,關(guān)閉連接;
5) 輸入流查找下一個數(shù)據(jù)塊;
6) 找到該數(shù)據(jù)塊的最佳數(shù)據(jù)節(jié)點,讀取數(shù)據(jù);
7) 當(dāng)客戶端讀取完數(shù)據(jù)時,關(guān)閉輸入流。
6. 請闡述 HDFS 在不發(fā)生故障的情況下寫文件的過程。
1) 客戶端創(chuàng)建文件和輸出流;
2) HDFS 調(diào)用名稱節(jié)點,在文件系統(tǒng)的命名空間中建一個新的文件,并執(zhí)行檢查;檢查通過后,名稱節(jié)點會構(gòu)造一個新文件夾,并添加文件信息;
3) 客戶端通過輸出流向 HDFS 的文件寫入數(shù)據(jù);
4) 客戶端寫入的數(shù)據(jù)首先會被分成一個個的分包,將分包放入輸出流對象的內(nèi)部隊列,并向名稱節(jié)點申請若干個數(shù)據(jù)節(jié)點,然后通過流水線復(fù)制策略打包成數(shù)據(jù)包發(fā)送出去;
5) 為保證所有數(shù)據(jù)節(jié)點的數(shù)據(jù)都是準(zhǔn)確的,需要數(shù)據(jù)節(jié)點向發(fā)送者發(fā)送 “ 確認(rèn)包 ”,當(dāng)客戶端收到應(yīng)答時,將對應(yīng)的分包從內(nèi)部隊列移除。不斷執(zhí)行 3~5 直至數(shù)據(jù)寫完;
6) 客戶端關(guān)閉輸出流,通知名稱節(jié)點關(guān)閉文件。
第四章 分布式數(shù)據(jù)庫 HBase
1. 請闡述 HBase 和傳統(tǒng)關(guān)系數(shù)據(jù)庫的區(qū)別。
| 數(shù)據(jù)類型 | 數(shù)據(jù)模型 | 關(guān)系模型 |
| 數(shù)據(jù)操作 | 插入、查詢、刪除、清空,無法實現(xiàn)表與表之間關(guān)聯(lián) | 插入、刪除、更新、查詢、多表連接 |
| 存儲模式 | 基于列存儲,每個列族都由幾個文件保存,不同列族的文件是分離的 | 基于行模式存儲,元組或行會被連續(xù)地存儲在磁盤中 |
| 數(shù)據(jù)索引 | 只有一個行鍵索引 | 針對不同列構(gòu)建復(fù)雜的多個索引 |
| 數(shù)據(jù)維護(hù) | 更新操作不會刪除數(shù)據(jù)舊的版本,而是生成一個新的版本 | 用最新的當(dāng)前值去替換記錄中原來的舊值 |
| 可伸縮性 | 輕易地通過在集群中增加或者減少硬件數(shù)量來實現(xiàn)性能的伸縮 | 很難實現(xiàn)橫向擴(kuò)展,縱向擴(kuò)展的空間也比較有限 |
☆☆☆ 2. 試述 HBase 各功能組件及其作用。
(1)庫函數(shù):鏈接到每個客戶端;
(2)一個 Master 主服務(wù)器:主服務(wù)器 Master 主要負(fù)責(zé)管理和維護(hù) HBase 表的分區(qū)信息和 Region 服務(wù)器列表;
(3)許多個 Region 服務(wù)器:Region 服務(wù)器是 HBase 中最核心的模塊,負(fù)責(zé)維護(hù)分配給自己的 Region,并響應(yīng)用戶的讀寫請求。
3. 試述 HBase 的三層結(jié)構(gòu)中各層次的名稱和作用。
| 第一層 | ZooKeeper 文件 | 記錄了 -ROOT- 表的位置信息 |
| 第二層 | -ROOT- 表 | 記錄了 .META. 表的 Region 位置信息, -ROOT- 表只能有一個 Region。通過 -ROOT- 表,就可以訪問.META.表中的數(shù)據(jù) |
| 第三層 | .META. 表 | 記錄了用戶數(shù)據(jù)表的 Region 位置信息, .META. 表可以有多個 Region,保存了 HBase 中所有用戶數(shù)據(jù)表的 Region 位置信息 |
4. 試述 HBase 系統(tǒng)基本架構(gòu)以及每個組成部分的作用。
(1)客戶端
客戶端包含訪問 HBase 的接口,同時在緩存中維護(hù)著已經(jīng)訪問過的 Region 位置信息,用來加快后續(xù)數(shù)據(jù)訪問過程。
(2)ZooKeeper 服務(wù)器
ZooKeeper 可以幫助選舉出一個 Master 作為集群的總管,并保證在任何時刻總有唯一一個 Master 在運行,這就避免了 Master 的 “ 單點失效 ” 問題。
(3)Master 主服務(wù)器
Master 主服務(wù)器主要負(fù)責(zé)表和 Region 的管理工作:管理用戶對表的增加、刪除、修改、查詢等操作;實現(xiàn)不同 Region 服務(wù)器之間的負(fù)載均衡;在Region分裂或合并后,負(fù)責(zé)重新調(diào)整 Region 的分布;對發(fā)生故障失效的 Region 服務(wù)器上的 Region 進(jìn)行遷移。
(4)Region 服務(wù)器
Region 服務(wù)器是 HBase 中最核心的模塊,負(fù)責(zé)維護(hù)分配給自己的 Region,并響應(yīng)用戶的讀寫請求。
第五章 NoSql 數(shù)據(jù)庫
1. 請比較關(guān)系數(shù)據(jù)庫和 NoSQL 數(shù)據(jù)庫的優(yōu)缺點。
| 關(guān)系數(shù)據(jù)庫 | 以完善的關(guān)系代數(shù)理論作為基礎(chǔ),有嚴(yán)格的標(biāo)準(zhǔn),支持事務(wù) ACID 四性,借助索引機(jī)制可以實現(xiàn)高效的查詢,技術(shù)成熟,有專業(yè)公司的技術(shù)支持 | 可擴(kuò)展性較差,無法較好地支持海量數(shù)據(jù)存儲,數(shù)據(jù)模型過于死板,無法較好支持 Web2.0 應(yīng)用,事務(wù)機(jī)制影響了系統(tǒng)的整體性能等 |
| NoSQL 數(shù)據(jù)庫 | 可以支持超大規(guī)模數(shù)據(jù)存儲,靈活的數(shù)據(jù)模型可以很好支持 Web2.0 應(yīng)用,具有強(qiáng)大的橫向擴(kuò)展能力等 | 缺乏數(shù)學(xué)理論基礎(chǔ),復(fù)雜查詢性能不高,一般不能實現(xiàn)事務(wù)強(qiáng)一致性、很難實現(xiàn)數(shù)據(jù)完整性,技術(shù)尚不成熟,缺乏專業(yè)團(tuán)隊的技術(shù)支持,維護(hù)較困難等 |
2. 試述 NoSQL 數(shù)據(jù)庫的四大類型。
鍵值數(shù)據(jù)庫:使用一個哈希表,表中有一個特定的 Key 和一個指針指向特定的 Value,Key 可以用來定位 Value,即存儲和檢索具體的 Value。
列族數(shù)據(jù)庫:一般采用列族數(shù)據(jù)模型,數(shù)據(jù)庫由多個行構(gòu)成,每行數(shù)據(jù)包含多個列族,不同的行可以具有不同數(shù)量的列族,屬于同一列族的數(shù)據(jù)會被存放在一起。
文檔數(shù)據(jù)庫:以文檔作為最小單位,大都假定文檔以某種標(biāo)準(zhǔn)化格式封裝并對數(shù)據(jù)進(jìn)行加密,同時用多種格式進(jìn)行解碼。
圖數(shù)據(jù)庫:使用圖作為數(shù)據(jù)模型來存儲數(shù)據(jù)。
☆☆☆ 3. 試述鍵值數(shù)據(jù)庫、列族數(shù)據(jù)庫、文檔數(shù)據(jù)庫和圖數(shù)據(jù)庫的適用場合和優(yōu)缺點。(主要是優(yōu)缺點,相應(yīng)產(chǎn)品了解即可)
| 鍵值數(shù)據(jù)庫 | 擴(kuò)展性好、靈活性好、大量寫操作是性能高 | 無法存儲結(jié)構(gòu)化 | 內(nèi)容緩存 | Redis、SimpleDB |
| 列族數(shù)據(jù)庫 | 查找速度快、可擴(kuò)展性強(qiáng)、容易進(jìn)行分布式擴(kuò)展、復(fù)雜性低 | 功能較少大都不支持強(qiáng)事務(wù)一致性 | 分布式數(shù)據(jù)存儲與管理 | BigTable、HBase、HadoopDB |
| 文檔數(shù)據(jù)庫 | 性能好、靈活性高、復(fù)雜性低、數(shù)據(jù)結(jié)構(gòu)靈活 | 缺乏統(tǒng)一的查詢語法 | 存儲、索引并管理面向文檔的數(shù)據(jù)或者類似的半結(jié)構(gòu)化數(shù)據(jù) | MongoDB、SisoDB |
| 圖數(shù)據(jù)庫 | 靈活性高、支持復(fù)雜的圖算法、可用于構(gòu)建復(fù)雜的關(guān)系圖譜 | 復(fù)雜性高、只能支持一定的數(shù)據(jù)規(guī)模 | 應(yīng)用于大量復(fù)雜、互連接、低結(jié)構(gòu)化的圖結(jié)構(gòu)場合 | Neo4J、OrientDB |
4. 試述 CAP 理論的具體含義。
C(Consistency):一致性。在分布式環(huán)境中,多點的數(shù)據(jù)是一致的。
A(Availability):可用性。指能夠快速獲取數(shù)據(jù),且在確定的時間內(nèi)返回操作結(jié)果。
P(Tolerance of Network Partition):分區(qū)容忍性,指當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況時,分離的系統(tǒng)也能正常運行。
5. 述數(shù)據(jù)庫的 ACID 四性的含義。
A(Atomicity):原子性。 指事務(wù)必須是原子工作單元,對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。
C(Consistency):一致性。 指事務(wù)在完成時,必須使所有的數(shù)據(jù)都保持一致狀態(tài)。
I(Isolation):隔離性。 指并發(fā)事務(wù)所做的修改必須與其他并發(fā)事務(wù)所做的修改隔離。
D(Durability):持久性。 指事務(wù)完成之后,它對于系統(tǒng)的影響是永久性的,該修改即使出現(xiàn)致命的系統(tǒng)故障也將一直保持。
第六章 云數(shù)據(jù)庫
1. 云數(shù)據(jù)庫有哪些特性。
動態(tài)可擴(kuò)展、高可用性、較低的使用代價、易用性、高性能、免維護(hù)、安全。
2. 試述 UMP 系統(tǒng)的功能。
UMP 系統(tǒng)構(gòu)建在一個大的集群之上的,通過多個組件的協(xié)同作業(yè),整個系統(tǒng)實現(xiàn)了對用戶透明的 容災(zāi)、讀寫分離、分庫分表、資源管理、資源調(diào)度、資源隔離和數(shù)據(jù)安全等功能。
1. 容災(zāi)
云數(shù)據(jù)庫必須向用戶提供一直可用的數(shù)據(jù)庫連接,當(dāng) MySQL 實例發(fā)生故障時,系統(tǒng)必須自動執(zhí)行故障恢復(fù),所有故障處理過程對于用戶而言是透明的,用戶不會感知到后臺發(fā)生的一切。
為了實現(xiàn)容災(zāi),UMP 系統(tǒng)會為每個用戶創(chuàng)建兩個 MySQL 實例,一個是主庫,一個是從庫,而且,這兩個 MySQL 實例之間互相把對方設(shè)置為備份機(jī),任意一個 MySQL 實例上面發(fā)生的更新都會復(fù)制到對方。同時,Proxy 服務(wù)器可以保證只向主庫寫人數(shù)據(jù)。
2. 讀寫分離
由于每個用戶都有兩個 MySQL 實例,即主庫和從庫,因此 UMP 系統(tǒng)可以充分利用主從庫實現(xiàn)用戶讀寫操作的分離,實現(xiàn)負(fù)載均衡。UMP 系統(tǒng)實現(xiàn)了對于用戶透明的讀寫分離功能,當(dāng)整個功能被開啟時,負(fù)責(zé)向用戶提供訪問MySQL數(shù)據(jù)庫服務(wù)的 Proxy 服務(wù)器,就會對用戶發(fā)起的 SQL 語句進(jìn)行解析,如果屬于寫操作,就直接發(fā)送到主庫,如果是讀操作,就會被均衡地發(fā)送到主庫和從庫上執(zhí)行。
3. 分庫分表
UMP 支持對用戶透明的分庫分表(Shard/Horizontal Partition)。但是,用戶在創(chuàng)建賬號的時候需要指定類型為多實例,并且設(shè)置實例的個數(shù),系統(tǒng)會根據(jù)用戶設(shè)置來創(chuàng)建多組 MySQL 實例。除此以外,用戶還需要自己設(shè)定分庫分表規(guī)則,如需要確定分區(qū)字段,也就是根據(jù)哪個字段進(jìn)行分庫分表,還要確定分區(qū)字段里的值如何映射到不同的 MySQL 實例上。
4. 資源管理
UMP 系統(tǒng)采用資源池機(jī)制來管理數(shù)據(jù)庫服務(wù)器上的 CPU、內(nèi)存、磁盤等計算資源,所有的計算資源都放在資源池內(nèi)進(jìn)行統(tǒng)一分配,資源池是為 MySQL 實例分配資源的基本單位。整個集群中的所有服務(wù)器會根據(jù)其機(jī)型、所在機(jī)房等因素被劃分為多個資源池,每臺服務(wù)器會被加人到相應(yīng)的資源池。在資源池劃分的基礎(chǔ)上,UMP還在每臺服務(wù)器內(nèi)部采用 Cgroup 將資源進(jìn)一步地細(xì)化,從而可以限制每個進(jìn)程組使用資源的上限,同時保證進(jìn)程組之間相互隔離。
5. 資源調(diào)度
UMP 系統(tǒng)中有 3 種規(guī)格的用戶,分別是數(shù)據(jù)量和流量比較小的用戶、中等規(guī)模用戶以及需要分庫分表的用戶。多個小規(guī)模用戶可以共享同一個 MySQL 實例。對于中等規(guī)模的用戶,每個用戶獨占個MySQL 實例。用戶可以根據(jù)自己的需求來調(diào)整內(nèi)存空間和磁盤空間,如果用戶需要更多的資源,就可以遷移到資源有空閑或者具有更高配置的服務(wù)器上對于分庫分表的用戶,會占有多個獨立的MySQL 實例,這些實例既可以共存在同一臺物理機(jī)上,也可以每個實例獨占一臺物理機(jī)。
UMP 通過 MySQL 實例的遷移來實現(xiàn)資源調(diào)度。借助于阿里集團(tuán)中間件團(tuán)隊開發(fā)的愚公系統(tǒng),UMP 可以實現(xiàn)在不停機(jī)的情況下動態(tài)擴(kuò)容、縮容和遷移。
6. 資源隔離
當(dāng)多個用戶共享同一個 MySQL 實例或者多個 MySQL 實例共存在同一個物理機(jī)上時,為了保護(hù)用戶應(yīng)用和數(shù)據(jù)的安全,必須實現(xiàn)資源隔離,否則,某個用戶過多消耗系統(tǒng)資源會嚴(yán)重影響到其他用戶的操作性能。
7. 數(shù)據(jù)安全
數(shù)據(jù)安全是讓用戶放心使用云數(shù)據(jù)庫產(chǎn)品的關(guān)鍵,尤其是企業(yè)用戶,數(shù)據(jù)庫中存放了很多業(yè)務(wù)數(shù)據(jù),有些屬于商業(yè)機(jī)密,一旦泄露,會給企業(yè)造成損失。UMP 系統(tǒng)設(shè)計了多種機(jī)制來保證數(shù)據(jù)安全。
1.SSL 數(shù)據(jù)庫連接。
2.數(shù)據(jù)訪問 IP 白名單。
3.記錄用戶操作日志。
4.SQL 攔截。
3. 試述 UMP 系統(tǒng)的組件及其具體作用。
1. Controller 服務(wù)器:向 UMP 集群提供各種管理服務(wù),實現(xiàn)集群成員管理、元數(shù)據(jù)存儲、MySQL 實例管理、故障恢復(fù)、備份、遷移、擴(kuò)容等功能。
2. Web 控制臺:向用戶提供系統(tǒng)管理界面。
3. Proxy 服務(wù)器:向用戶提供訪問 MySQL 數(shù)據(jù)庫的服務(wù)。除了數(shù)據(jù)路由的基本功能外,Proxy 服務(wù)器中還實現(xiàn)了屏蔽MySQL實例故障、讀寫分離、分庫分表、資源隔離、記錄用戶訪問日志等功能。
4. Agent服務(wù)器:管理每臺物理機(jī)上的 MySQL 實例,執(zhí)行主從切換、創(chuàng)建、刪除、備份、遷移等操作,同時還負(fù)責(zé)收集和分析 MySQL 進(jìn)程的統(tǒng)計信息、慢查詢?nèi)罩?#xff08;Slow Query Log)和 bin-log。
5. 日志分析服務(wù)器:存儲和分析 Proxy 服務(wù)器傳入的用戶訪問日志,并支持實時查詢一段時間內(nèi)的慢日志和統(tǒng)計報表。
6. 信息統(tǒng)計服務(wù)器:定期對采集到的用戶的連接數(shù)、QPS 數(shù)值以及 MySQL 實例的進(jìn)程狀態(tài)用 RRDtool 進(jìn)行統(tǒng)計。
7. 愚公系統(tǒng):是一個進(jìn)行增量復(fù)制的工具,它結(jié)合了全量復(fù)制和 bin-log 分析,可以實現(xiàn)在不停機(jī)的情況下動態(tài)擴(kuò)容、縮容和遷移。
第七章 MapReduce
1. 試述 Map 函數(shù)和 Reduce 函數(shù)的輸入、輸出以及處理過程。
Map 函數(shù)的輸入為分布式文件系統(tǒng)的文件塊,這些文件快的格式是任意的。Map 函數(shù)將輸入的元素轉(zhuǎn)換成 <key, value> 形式的鍵值對,鍵和值的類型也是任意的。
Reduce函數(shù)的輸入是 Map 函數(shù)輸出的結(jié)果即中間結(jié)果,其任務(wù)是將輸入的一系列具有相同鍵的鍵值對以某種方式組合起來,輸出處理后的鍵值對,輸出結(jié)果會合并成一個文件。
2. 試述 MapReduce 的工作流程。(需包括提交任務(wù)、Map、Shuffle、Reduce 的過程)
1) MapReduce 框架使用 InputFormat 模塊做 Map 前的預(yù)處理,然后將輸入文件切分為邏輯上的多個 InputSplit。
2) 通過 RecordReader 根據(jù) InputSplit 中的信息來處理 InputSplit 中的具體記錄,加載數(shù)據(jù)并轉(zhuǎn)換為適合 Map 任務(wù)讀取的鍵值對,輸入給Map任務(wù)。
3) Map 任務(wù)會根據(jù)用戶自定義的映射規(guī)則,輸出一系列的 <key, value> 作為中間結(jié)果。
4) Shuffle:對 Map 任務(wù)輸出結(jié)果進(jìn)行分區(qū)、排序、合并、歸并等操作,得到 <key,value-list> 形式的中間結(jié)果,再交給對應(yīng)的 Reduce 進(jìn)行處理。
5) Reduce 以一系列 <key, value-list> 中間結(jié)果作為輸入,執(zhí)行用戶定義的邏輯,輸出結(jié)果給 OutputFormat 模塊。
6) OutputFormat 模塊會驗證輸出目錄是否存在以及輸出結(jié)果類型是否符合配置文件中的配置類型,如果都滿足,就輸出 Reduce 的結(jié)果到分布式文件系統(tǒng)。
☆☆☆ 3. Shuffle 過程是 MapReduce 過程的核心,也被稱為奇跡發(fā)生的地方,試分析 Shuffle 過程的作用。(答案不全,看書 P135)
對 Map 任務(wù)輸出結(jié)果進(jìn)行分區(qū)、排序、合并、歸并等處理并交給 Reduce 的過程,減少磁盤 I/O 的讀寫次數(shù),并減小從 Map 到 Reduce 之間的數(shù)據(jù)傳遞量。
4. 早期版本的 HDFS,其默認(rèn)塊(Block)大小為 64MB,而較新的版本默認(rèn)為 128MB,采用較大的塊有什么影響和優(yōu)缺點。
采用較大的塊說明分片的數(shù)量較小,那么 Map 任務(wù)也較少,導(dǎo)致任務(wù)的并行化程度不高,不能充分利用集群資源,拖慢作業(yè)運行速度。
采用較小的塊,說明 Map 任務(wù)較多,而創(chuàng)建多個 Map 任務(wù)進(jìn)程需要耗費大量時間。
塊的大小設(shè)置主要從以下考慮:減少磁盤尋道時間、減少 NameNode 內(nèi)存消耗、Map 崩潰問題、監(jiān)管時間問題、問題分解問題、約束 Map 輸出。
第八章 Hadoop 再探討
1. 請描述 HDFS HA 架構(gòu)組成組件及其具體功能。
在一個典型的 HA 集群中,一般設(shè)置兩個名稱節(jié)點,其中一個名稱節(jié)點處于 “ 活躍 ” 狀態(tài),另一個處于 “ 待命 ” 狀態(tài)。處于活躍狀態(tài)的名稱節(jié)點負(fù)責(zé)對外處理所有客戶端的請求,處于待命狀態(tài)的名稱節(jié)點則作為備用節(jié)點,保存足夠多的系統(tǒng)元數(shù)據(jù),當(dāng)名稱節(jié)點出現(xiàn)故障時提供快速恢復(fù)能力。也就是說,在 HDFS HA 中,處于待命狀態(tài)的名稱節(jié)點提供了 “ 熱備份 ”,一旦活躍名稱節(jié)點出現(xiàn)故障,就可以立即切換到待命名稱節(jié)點,不會影響到系統(tǒng)的正常對外服務(wù)。
2. 請分析 HDFS HA 架構(gòu)中數(shù)據(jù)節(jié)點如何和名稱節(jié)點保持通信。
在 HDFS 聯(lián)邦中,所有名稱節(jié)點會共享底層的數(shù)據(jù)節(jié)點存儲資源。每個數(shù)據(jù)節(jié)點要向集群中所有的名稱節(jié)點注冊,并周期性地向名稱節(jié)點發(fā)送 “ 心跳 ” 和塊信息,報告自己的狀態(tài),同時也會處理來自名稱節(jié)點的指令。
3. 請闡述 MapReduce 1.0 體系結(jié)構(gòu)中存在的問題。
1)存在單點故障問題。
2)JobTracker “ 大包大攬 ” 導(dǎo)致任務(wù)過重。
3)容易出現(xiàn)內(nèi)存溢出。
4)資源劃分不合理。
總結(jié)
以上是生活随笔為你收集整理的大数据技术原理与应用(最后三天备考!!!)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 相机标定(二)深入理解四大坐标系与其变换
- 下一篇: 相机标定(三) —— 畸变校正