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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

大数据技术原理与应用(最后三天备考!!!)

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

大數(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ù)技術(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)系

區(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 具有哪些特性。

  • 高可靠性。采用冗余數(shù)據(jù)存儲方式,即使一個副本發(fā)生故障,其他副本也可以保證正常對外提供服務(wù)。
  • 高效性。作為并行分布式計算平臺,Hadoop 采用分布式存儲和分布式處理兩大核心技術(shù)能夠高效地處理 PB 級數(shù)據(jù)。
  • 高可擴(kuò)展性。Hadoop 的設(shè)計目標(biāo)是可以高效穩(wěn)定地運行在廉價的計算機(jī)集群上,可以擴(kuò)展到數(shù)以千計的計算機(jī)節(jié)點上。
  • 高容錯性。采用冗余數(shù)據(jù)存儲方式,自動保存數(shù)據(jù)的多個副本,并且能夠自動將失敗的任務(wù)進(jìn)行重新分配。
  • 成本低。Hadoop 采用廉價的計算機(jī)集群,成本比較低,普通用戶也很容易用自己的 PC 搭建 Hadoop 運行環(huán)境。
  • 運行在 Linux 操作系統(tǒng)上。Hadoop 是基于 Java 開發(fā)的,可以較好的運行在 Linux 系統(tǒng)上。
  • 支持多種編程語言。Hadoop 上的應(yīng)用程序也可以使用其他語言編寫,如 C++。
  • 2. 試述 Hadoop 的項目結(jié)構(gòu)以及每個部分的具體功能。

  • HDFS 是 Hadoop 項目的兩個核心之一,它是針對谷歌文件系統(tǒng)的開源實現(xiàn)。
  • HBase 是一個提供高可靠性、高性能、可伸縮、實時讀寫、分布式的列式數(shù)據(jù)庫,一般采用 HDFS 作為其底層數(shù)據(jù)存儲系統(tǒng)。
  • Hadoop MapReduce 是針對谷歌 MapReduce 的開源實現(xiàn)。MapReduce 是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于 1 TB)的并行運算。
  • Hive 是一個基于 Hadoop 的數(shù)據(jù)倉庫工具,可以用于對 Hadoop 文件中的數(shù)據(jù)集進(jìn)行數(shù)據(jù)整理、特殊查詢和分析存儲。
  • Pig 是一種數(shù)據(jù)流語言和運行環(huán)境,適合于使用 Hadoop 和 MapReducce 平臺上查詢大型半結(jié)構(gòu)化數(shù)據(jù)集。
  • ZooKeeper 是針對谷歌 Chubby 的一個開源實現(xiàn),是高效和可靠的協(xié)同工作系統(tǒng),提供分布式鎖之類的基本服務(wù),用于構(gòu)建分布式應(yīng)用,減輕分布式應(yīng)用程序所承擔(dān)的協(xié)調(diào)任務(wù)。
  • Sqoop 主要用來在 Hadoop 和關(guān)系數(shù)據(jù)庫之間交換數(shù)據(jù),可以改進(jìn)數(shù)據(jù)的互操作性。
  • 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)在哪些方面。

  • 命名空間的限制。名稱節(jié)點是保存在內(nèi)存中的,因此名稱節(jié)點能夠容納對象(文件、塊)的個數(shù)會受到內(nèi)存空間大小的限制。
  • 性能的瓶頸。整個分布式文件系統(tǒng)的吞吐量受限于單個名稱節(jié)點的吞吐量。
  • 隔離問題。由于集群中只有一個名稱節(jié)點,只有一個命名空間,因此無法對不同的應(yīng)用程序進(jìn)行隔離。
  • 集群的可用性。一旦這個唯一的名稱節(jié)點發(fā)生故障,會導(dǎo)致整個集群變得不可用。
  • 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ū)別。

    主要區(qū)別HBase傳統(tǒng)關(guān)系數(shù)據(jù)庫
    數(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)缺點。

    數(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ù)庫類型優(yōu)點缺點場合產(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)容,希望文章能夠幫你解決所遇到的問題。

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