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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

大数据技术原理与应用-林子雨课后(部分习题答案)

發(fā)布時(shí)間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据技术原理与应用-林子雨课后(部分习题答案) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一章
2.試述數(shù)據(jù)產(chǎn)生經(jīng)歷的幾個(gè)階段
答:3個(gè)階段
1.運(yùn)營式系統(tǒng)階段
人類社會(huì)最早大規(guī)模管理和使用數(shù)據(jù),是從數(shù)據(jù)庫的誕生開始的。大型零售超市銷售系統(tǒng)、銀行交韓系統(tǒng)、股市交易系統(tǒng)、醫(yī)院醫(yī)療系統(tǒng)、企業(yè)客戶管理系統(tǒng)等大量運(yùn)營式系統(tǒng),都是建立在數(shù)據(jù)庫基礎(chǔ)之上的,數(shù)據(jù)庫中保存了大量結(jié)構(gòu)化的企業(yè)關(guān)鍵信息,用來滿足企業(yè)各種業(yè)務(wù)需求,在這個(gè)階段,數(shù)據(jù)的產(chǎn)生方式是被動(dòng)的,只有當(dāng)實(shí)際的企業(yè)業(yè)務(wù)發(fā)生時(shí),才會(huì)產(chǎn)生新的記錄并存人數(shù)據(jù)庫。比如,對(duì)于股市交易系統(tǒng)而言,只有當(dāng)發(fā)生一筆股票交易時(shí),才會(huì)有相關(guān)記錄生成。
2. 用戶原創(chuàng)內(nèi)容階段
互聯(lián)網(wǎng)的出現(xiàn),使得數(shù)據(jù)傳播更加快捷,不需要借助于磁盤、磁帶等物理存儲(chǔ)介質(zhì)傳播數(shù)據(jù),網(wǎng)頁的出現(xiàn)進(jìn)一步加速了大量網(wǎng)絡(luò)內(nèi)容的產(chǎn)生,從而使得人類社會(huì)數(shù)據(jù)量開始呈現(xiàn)“井噴式”增長。但是,互聯(lián)網(wǎng)真正的數(shù)據(jù)爆發(fā)產(chǎn)生于以“用戶原創(chuàng)內(nèi)容"為特征的Web 2.0時(shí)代。Web 1.0時(shí)代主要以門戶網(wǎng)站為代表,強(qiáng)調(diào)內(nèi)容的組織與提供,大量上網(wǎng)用戶本身并不參與內(nèi)容的產(chǎn)生。而Web 2.0技術(shù)以Wiki.博客、微博、微信等自服務(wù)模式為主,強(qiáng)調(diào)自服務(wù),大量上網(wǎng)用戶本身就是內(nèi)容的生成者,尤其是隨著移動(dòng)互聯(lián)網(wǎng)和智能手機(jī)終端的普及,人們更是可以隨時(shí)隨地使用手機(jī)發(fā)微博、傳照片,數(shù)據(jù)量開始急劇增加。
3.感知式系統(tǒng)階段
物聯(lián)網(wǎng)的發(fā)展最終導(dǎo)致了人類社會(huì)數(shù)據(jù)量的第三次躍升。 物聯(lián)網(wǎng)中包含大量傳感器,如溫度作感烈。福度傳感器、壓力傳感器、位移傳感器、光電傳感器等, 此外, 視頻監(jiān)控?cái)z像頭也是物聯(lián)網(wǎng)的重要組成部分,物聯(lián)網(wǎng)中的這些設(shè)備, 每時(shí)每刻都在自動(dòng)產(chǎn)生大量數(shù)據(jù),與Web 2.0時(shí)代數(shù)據(jù),使得人類社會(huì)迅速步人“大數(shù)據(jù)時(shí)代”。的人工教據(jù)產(chǎn)生方式相比,物聯(lián)網(wǎng)中的自動(dòng)數(shù)據(jù)產(chǎn)生方式,將在超時(shí)間內(nèi)生成更密集、更大量的數(shù)據(jù),使得人類社會(huì)迅速進(jìn)入“大數(shù)據(jù)時(shí)代”。
3.試述大數(shù)據(jù)的4個(gè)基本特征
答:數(shù)據(jù)量大、數(shù)據(jù)類型繁多、處理速度快和價(jià)值密度低。
5.數(shù)據(jù)研究經(jīng)歷了哪4個(gè)階段?
答:人類自古以來在科學(xué)研究上先后歷經(jīng)了實(shí)驗(yàn)、理論、計(jì)算、和數(shù)據(jù)四種范式。

8.舉例說明大數(shù)據(jù)的基本應(yīng)用
答:
領(lǐng)域:大數(shù)據(jù)的應(yīng)用
金融行業(yè):大數(shù)據(jù)在高頻交易、社區(qū)情緒分析和信貸風(fēng)險(xiǎn)分析三大金融創(chuàng)新領(lǐng)域發(fā)揮重要作用。
汽車行業(yè):利用大數(shù)據(jù)和物聯(lián)網(wǎng)技術(shù)的五人駕駛汽車,在不遠(yuǎn)的未來將走進(jìn)我們的日常生活
互聯(lián)網(wǎng)行業(yè):借助于大數(shù)據(jù)技術(shù),可以分析客戶行為,進(jìn)行商品推薦和有針對(duì)性廣告投放
個(gè)人生活:大數(shù)據(jù)還可以應(yīng)用于個(gè)人生活,利用與每個(gè)人相關(guān)聯(lián)的“個(gè)人大數(shù)據(jù)”,分析個(gè)人生活行為習(xí)慣,為其提供更加周全的個(gè)性化服務(wù)。

9.舉例說明大數(shù)據(jù)的關(guān)鍵技術(shù)
答:批處理計(jì)算,流計(jì)算,圖計(jì)算,查詢分析計(jì)算

11.定義并解釋以下術(shù)語:云計(jì)算、物聯(lián)網(wǎng)
答:
云計(jì)算:
云計(jì)算就是實(shí)現(xiàn)了通過網(wǎng)絡(luò)提供可伸縮的、廉價(jià)的分布式計(jì)算機(jī)能力,用戶只需要在具備網(wǎng)絡(luò)接入條件的地方,就可以隨時(shí)隨地獲得所需的各種IT資源。
物聯(lián)網(wǎng):
物物相連的互聯(lián)網(wǎng),是互聯(lián)網(wǎng)的延伸,它利用局部網(wǎng)絡(luò)或互聯(lián)網(wǎng)等通信技術(shù)把傳感器、控制器、機(jī)器、人類和物等通過新的方式連在一起,形成人與物、物與物相連,實(shí)現(xiàn)信息化和遠(yuǎn)程管理控制。

12.詳細(xì)闡述大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)三者之間的區(qū)別與聯(lián)系。
答:
大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)的區(qū)別:
大數(shù)據(jù)側(cè)重于海量數(shù)據(jù)的存儲(chǔ)、處理與分析,海量數(shù)據(jù)中發(fā)現(xiàn)價(jià)值,服務(wù)于生產(chǎn)和生活;云計(jì)算本質(zhì)上皆在整合和優(yōu)化各種IT資源并通過網(wǎng)絡(luò)已服務(wù)的方法,廉價(jià)地提供給用戶;物聯(lián)網(wǎng)的發(fā)展目標(biāo)是實(shí)現(xiàn)物物相連,應(yīng)用創(chuàng)新是物聯(lián)網(wǎng)的核心

大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)的聯(lián)系:
從整體來看,大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)這三者是相輔相成的。大數(shù)據(jù)根植于云計(jì)算,大數(shù)據(jù)分析的很多技術(shù)都來自于云計(jì)算,云計(jì)算的分布式存儲(chǔ)和管理系統(tǒng)提供了海量數(shù)據(jù)的存儲(chǔ)和管理能力,沒有這些云計(jì)算技術(shù)作為支撐,大數(shù)據(jù)分析就無從談起。物聯(lián)網(wǎng)的傳感器源源不斷的產(chǎn)生大量數(shù)據(jù),構(gòu)成了大數(shù)據(jù)的重要數(shù)據(jù)來源,物聯(lián)網(wǎng)需要借助于云計(jì)算和大數(shù)據(jù)技術(shù),實(shí)現(xiàn)物聯(lián)網(wǎng)大數(shù)據(jù)的存儲(chǔ)、分析和處理。

第二章
1.試述hadoop和谷歌的mapreduce、gfs等技術(shù)之間的關(guān)系
答:Hadoop的核心是分布式文件系統(tǒng)HDFS和MapReduce,HDFS是谷歌文件系統(tǒng)GFS的開源實(shí)現(xiàn),MapReduces是針對(duì)谷歌MapReduce的開源實(shí)現(xiàn)。

2.試述Hadoop具有哪些特性。
答:高可靠性,高效性,高可擴(kuò)展性,高容錯(cuò)性,成本低,運(yùn)行在Linux平臺(tái),支持多種編程語言

4.試述Hadoop的項(xiàng)目結(jié)構(gòu)以及每個(gè)部分的具體功能。
答:

Commeon是為Hadoop其他子項(xiàng)目提供支持的常用工具,主要包括文件系統(tǒng)、RPC和串行化庫。
Avro是為Hadoop的子項(xiàng)目,用于數(shù)據(jù)序列化的系統(tǒng),提供了豐富的數(shù)據(jù)結(jié)構(gòu)類型、快速可壓縮的二進(jìn)制數(shù)據(jù)格式、存儲(chǔ)持續(xù)性數(shù)據(jù)的文件集、遠(yuǎn)程調(diào)用的功能和簡(jiǎn)單的動(dòng)態(tài)語言集成功能。
HDFS是Hadoop項(xiàng)目的兩個(gè)核心之一,它是針對(duì)谷歌文件系統(tǒng)的開源實(shí)現(xiàn)。
HBase是一個(gè)提高可靠性、高性能、可伸縮、實(shí)時(shí)讀寫、分布式的列式數(shù)據(jù)庫,一般采用HDFS作為其底層數(shù)據(jù)存儲(chǔ)。
MapReduce是針對(duì)谷歌MapReduce的開源實(shí)現(xiàn),用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算。
Zoookepper是針對(duì)谷歌Chubby的一個(gè)開源實(shí)現(xiàn),是高效和可靠的協(xié)同工作系統(tǒng),提供分布式鎖之類的基本服務(wù),用于構(gòu)建分布式應(yīng)用,減輕分布式應(yīng)用程序所承擔(dān)的協(xié)調(diào)任務(wù)。
Hive是一個(gè)基于Hadoop的數(shù)據(jù)倉庫工具,可以用于對(duì)Hadoop文件中的數(shù)據(jù)集進(jìn)行數(shù)據(jù)整理、特殊查詢和分布存儲(chǔ)。
Pig是一種數(shù)據(jù)流語言和運(yùn)行環(huán)境,適合于使用Hadoop和MapReducce平臺(tái)上查詢大型半結(jié)構(gòu)化數(shù)據(jù)集。
Sqoop可以改進(jìn)數(shù)據(jù)的互操作性,主要用來在hadoop配合關(guān)系數(shù)據(jù)庫之間交換數(shù)據(jù)。
Chukwa是一個(gè)開源的、用于監(jiān)控大型分布式系統(tǒng)的數(shù)據(jù)收集系統(tǒng),可以將各種類型的數(shù)據(jù)收集成適合Hadoop處理的文件,并保存在HDFS中供Hadoop進(jìn)行各種 MapReduce操作。

5.配置Hadoop時(shí),java的路徑JAVA_HOME是在哪一個(gè)配置文件中進(jìn)行設(shè)置的
答:
hadoop目錄下的etc/hadoop/hadoop-env.sh文件

6.所有節(jié)點(diǎn)的HDFS路徑是通過fs.default.name來設(shè)置的,請(qǐng)問他是在哪個(gè)配置文件中設(shè)置的
答:core-site.xml

8.Hadoop偽分布式運(yùn)行啟動(dòng)后所具有的進(jìn)程都有哪些?
答:
1)NameNode它是hadoop中的主服務(wù)器,管理文件系統(tǒng)名稱空間和對(duì)集群中存儲(chǔ)的文件的訪問,保存有metadate。
2)SecondaryNameNode它不是namenode的冗余守護(hù)進(jìn)程,而是提供周期檢查點(diǎn)和清理任務(wù)。幫助NN合并editslog,減少NN啟動(dòng)時(shí)間。
3)DataNode它負(fù)責(zé)管理連接到節(jié)點(diǎn)的存儲(chǔ)(一個(gè)集群中可以有多個(gè)節(jié)點(diǎn))。每個(gè)存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn)運(yùn)行一個(gè)datanode守護(hù)進(jìn)程。
4)ResourceManager(JobTracker)JobTracker負(fù)責(zé)調(diào)度DataNode上的工作。每個(gè)DataNode有一個(gè)TaskTracker,它們執(zhí)行實(shí)際工作。
5)NodeManager(TaskTracker)執(zhí)行任務(wù)
6)DFSZKFailoverController高可用時(shí)它負(fù)責(zé)監(jiān)控NN的狀態(tài),并及時(shí)的把狀態(tài)信息寫入ZK。它通過一個(gè)獨(dú)立線程周期性的調(diào)用NN上的一個(gè)特定接口來獲取NN的健康狀態(tài)。FC也有選擇誰作為Active NN的權(quán)利,因?yàn)樽疃嘀挥袃蓚€(gè)節(jié)點(diǎn),目前選擇策略還比較簡(jiǎn)單(先到先得,輪換)。
7)JournalNode 高可用情況下存放namenode的editlog文件

第三章
1.試述分布式文件系統(tǒng)設(shè)計(jì)的需求。
答:

4.試述HDFS中的名稱節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)的具體功能。
答:
名稱節(jié)點(diǎn)負(fù)責(zé)管理分布式文件系統(tǒng)系統(tǒng)的命名空間,記錄分布式文件系統(tǒng)中的每個(gè)文件中各個(gè)塊所在的數(shù)據(jù)節(jié)點(diǎn)的位置信息;
數(shù)據(jù)節(jié)點(diǎn)是分布式文件系統(tǒng)HDFS的工作節(jié)點(diǎn),負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和讀取,會(huì)根據(jù)客戶端或者是名稱節(jié)點(diǎn)的調(diào)度來進(jìn)行數(shù)據(jù)的存儲(chǔ)和檢索,并向名稱節(jié)點(diǎn)定期發(fā)送自己所存儲(chǔ)的塊的列表。
hadoop fs -ls 顯示指定的文件的詳細(xì)信息
hadoop fs -cat 將指定的文件的內(nèi)容輸出到標(biāo)準(zhǔn)輸出
hadoop fs -mkdir 創(chuàng)建指定的文件夾
hadoop fs -get [-ignorecrc] [-crc] 復(fù)制指定的文件到本地文件系統(tǒng)指定的文件或文件夾。-ignorecrc選項(xiàng)復(fù)制CRC校驗(yàn)失敗的文件。使用-crc選項(xiàng)復(fù)制文件以及CRC信息。
hadoop fs -put 從本地文件系統(tǒng)中復(fù)制指定的單個(gè)或多個(gè)源文件到指定的目標(biāo)文件系統(tǒng)中。也支持從標(biāo)準(zhǔn)輸入(stdin)中讀取輸入寫入目標(biāo)文件系統(tǒng)。
hadoop fs -rmr 刪除指定的文件夾及其的所有文件

6.HDFS只設(shè)置唯一一個(gè)名稱節(jié)點(diǎn),在簡(jiǎn)化系統(tǒng)設(shè)計(jì)的同時(shí)也帶來了一些明顯的局限性,請(qǐng)闡述局限性具體表現(xiàn)在那些方面。
答:
(1) 命名空間的限制:名稱節(jié)點(diǎn)是保存在內(nèi)存中的,因此,名稱節(jié)點(diǎn)能夠容納的
對(duì)象(文件、塊)的個(gè)數(shù)會(huì)受到內(nèi)存空間大小的限制。
(2) 性能的瓶頸:整個(gè)分布式文件系統(tǒng)的吞吐量,受限于單個(gè)名稱節(jié)點(diǎn)的吞吐量。
(3) 隔離問題:由于集群中只有一個(gè)名稱節(jié)點(diǎn),只有一個(gè)命名空間,因此,無法
對(duì)不同應(yīng)用程序進(jìn)行隔離。
(4) 集群的可用性:一旦這個(gè)唯一的名稱節(jié)點(diǎn)發(fā)生故障,會(huì)導(dǎo)致整個(gè)集群變得不
可用。

7.試述HDFS的冗余數(shù)據(jù)保存策略。
答:
1).第一個(gè)副本:放置在上傳文件的數(shù)據(jù)節(jié)點(diǎn);如果是集群外提交,則隨機(jī)挑選一臺(tái)磁盤不太滿、CPU不太忙的節(jié)點(diǎn)
? 2).第二個(gè)副本:放置在與第一個(gè)副本不同的機(jī)架的節(jié)點(diǎn)上
? 3).第三個(gè)副本:與第一個(gè)副本相同機(jī)架的其他節(jié)點(diǎn)上
? 4).更多副本:隨機(jī)節(jié)點(diǎn)

9.試述HDFS是如何探測(cè)錯(cuò)誤發(fā)生以及如何進(jìn)行恢復(fù)的。
答:

  • 名稱節(jié)點(diǎn)出錯(cuò)
    名稱節(jié)點(diǎn)保存了所有的元數(shù)據(jù)信息,其中最核心的兩大數(shù)據(jù)結(jié)構(gòu)是Fslmage和EilLog,如果這兩個(gè)文作發(fā)生根壞 那么管↑HOPS實(shí)例將失效Hap采用兩種機(jī)制來確保名整節(jié)點(diǎn)的安全單門,把不稱節(jié)點(diǎn)上的元數(shù)據(jù)信息同步存儲(chǔ)到其他文件系統(tǒng)( 比如遠(yuǎn)程掛載的網(wǎng)絡(luò)文件系統(tǒng)NFS)中:第二,運(yùn)行 個(gè)第二名稱節(jié)點(diǎn),當(dāng)名稱節(jié)點(diǎn)宕機(jī)以后,可以把第名稱節(jié)點(diǎn)作為一 種彌補(bǔ)措場(chǎng)利用站名稱節(jié)點(diǎn)中的元數(shù)據(jù)信息進(jìn)行系統(tǒng)恢復(fù), 但是從前面對(duì)第二名稱節(jié)點(diǎn)的介紹中可以看出,這樣做仍然會(huì)丟失部分?jǐn)?shù)據(jù)。因此,一般會(huì)把 上述兩種方式結(jié)合使用,當(dāng)名稱節(jié)點(diǎn)發(fā)生宕機(jī)時(shí)首先到遠(yuǎn)程掛載的網(wǎng)絡(luò)文件系統(tǒng)中獲取備份的元數(shù)據(jù)信息,放到第二名稱節(jié)點(diǎn)上進(jìn)行恢復(fù),并把第二名稱節(jié)點(diǎn)作為名稱節(jié)點(diǎn)來使用。
    2.數(shù)據(jù)節(jié)點(diǎn)出錯(cuò)
    每個(gè)數(shù)據(jù)節(jié)點(diǎn)會(huì)定期向名稱節(jié)點(diǎn)發(fā)送“心跳”信息,向名稱節(jié)點(diǎn)報(bào)告自己的狀態(tài)。當(dāng)數(shù)據(jù)節(jié)點(diǎn)發(fā)生故障,或者網(wǎng)絡(luò)發(fā)生斷網(wǎng)時(shí),名稱節(jié)點(diǎn)就無法收到來自一些數(shù)據(jù)節(jié)點(diǎn)的“心跳”信息,這時(shí)這些數(shù)據(jù)節(jié)點(diǎn)就會(huì)被標(biāo)記為“宕機(jī)”,節(jié)點(diǎn)上面的所有數(shù)據(jù)都會(huì)被標(biāo)記為“不可讀”,名稱節(jié)點(diǎn)不會(huì)再給它們發(fā)送任何IO請(qǐng)求。這時(shí),有可能出現(xiàn)一種情形,即由于一些數(shù)據(jù)節(jié)點(diǎn)的不可用,會(huì)導(dǎo)致一此數(shù)據(jù)塊的副本數(shù)量小于冗余因子。名稱節(jié)點(diǎn)會(huì)定期檢查這種情況,一旦發(fā)現(xiàn)某個(gè)數(shù)據(jù)塊的副本數(shù)量小于冗余因子,就會(huì)啟動(dòng)數(shù)據(jù)冗余復(fù)制,為它生成新的副本。HDFS與其他分布式文件系統(tǒng)的最大區(qū)別就是可以調(diào)整冗余數(shù)據(jù)的位置。
    3.數(shù)據(jù)出錯(cuò)
    網(wǎng)絡(luò)傳輸和磁盤錯(cuò)誤尊因素都會(huì)造成數(shù)據(jù)錯(cuò)誤。客戶端在讀取到數(shù)據(jù)后,會(huì)采用mds和shal對(duì)數(shù)據(jù)塊進(jìn)行校驗(yàn),以確定讀取到正確的數(shù)據(jù)。在文件被創(chuàng)建時(shí),客戶端就會(huì)對(duì)每- 個(gè)文件塊進(jìn)行信息摘錄,并把這些信息寫人同一個(gè)路徑的隱藏文件里面。當(dāng)客戶端讀取文件的時(shí)候,會(huì)先讀取該信息文件,然后利用該信息文件對(duì)每個(gè)讀取的數(shù)據(jù)塊進(jìn)行校驗(yàn),如果校驗(yàn)出錯(cuò),客戶端就會(huì)請(qǐng)求到另外一個(gè)數(shù)據(jù)節(jié)點(diǎn)讀取該文件塊,并且向名稱節(jié)點(diǎn)報(bào)告這個(gè)文件塊有錯(cuò)誤,名稱節(jié)點(diǎn)會(huì)定期檢查并且重新復(fù)制這個(gè)塊。
  • 10.請(qǐng)闡述HDFS在不發(fā)生故障的情況下讀文件的過程。
    答:
    (1)客戶端通過FlSysmeono打開文件相應(yīng)地,在HIDFS文件系統(tǒng)中DitbuedFieSstess具體實(shí)現(xiàn)了FileSystem。 因此,調(diào)用open()方法后,DisribedFilSyste 會(huì)創(chuàng)建輸人流FSDataInputStream.對(duì)于HDFS而言,具體的輸人流就是DFSInputSteam
    (2)在DFSInputStream的構(gòu)造函數(shù)中,輸人流通過ClientProtocal getBlockLocations0遠(yuǎn)程調(diào)用名稱節(jié)點(diǎn),獲得文件開始部分?jǐn)?shù)據(jù)塊的保存位置。對(duì)于該數(shù)據(jù)塊,名稱節(jié)點(diǎn)返回保存該數(shù)據(jù)塊的所有數(shù)據(jù)節(jié)點(diǎn)的地址,同時(shí)根據(jù)距離客戶端的遠(yuǎn)近對(duì)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行排序:然后,DistributedFileSystem會(huì)利用DFSInputStream來實(shí)例化FSDataInputSteam.返回給客戶端,同時(shí)返回了數(shù)據(jù)塊的數(shù)據(jù)節(jié)點(diǎn)地址。
    (3)獲得輸人流FDalnpulsreon后,客戶端調(diào)用cao雨數(shù)開始讀取數(shù)據(jù)。輸人流根據(jù)響
    面的排序結(jié)果,選擇距離客戶端最近的數(shù)據(jù)節(jié)點(diǎn)建立連接井讀取數(shù)據(jù)。(4)數(shù)據(jù)從該數(shù)據(jù)節(jié)點(diǎn)讀到客戶端:當(dāng)該數(shù)據(jù)塊讀取完畢時(shí),FDsapulsrcor關(guān)閉和該數(shù)星節(jié)點(diǎn)的連接。
    (5)輸人流通過getBlockLocations()方法查找下一個(gè)數(shù)據(jù)塊(如果客戶端緩存中已經(jīng)包含了數(shù)據(jù)塊的位置信息,就不需要調(diào)用該方法)。
    (6)找到該數(shù)據(jù)塊的最佳數(shù)據(jù)節(jié)點(diǎn),讀取數(shù)據(jù)。
    (7)當(dāng)客戶端讀取完畢數(shù)據(jù)的時(shí)候,調(diào)用FSDataInputStream的close()函數(shù),關(guān)閉輸入流,需要注意的是,在讀取數(shù)據(jù)的過程中,如果客戶端與數(shù)據(jù)節(jié)點(diǎn)通信時(shí)出現(xiàn)錯(cuò)誤,就會(huì)嘗試連接包含此數(shù)據(jù)塊的下一個(gè)數(shù)據(jù)節(jié)點(diǎn)。

    第四章
    3.請(qǐng)闡述HBase和傳統(tǒng)關(guān)系數(shù)據(jù)庫的區(qū)別
    答:

  • 分別解釋HBase中行鍵、列鍵和時(shí)間戳的概念
    答:
    行鍵是唯一的,在一個(gè)表里只出現(xiàn)一次,否則就是在更新同一行,行鍵可以是任意的字節(jié)數(shù)組。
    列族需要在創(chuàng)建表的時(shí)候就定義好,數(shù)量也不宜過多。列族名必須由可打印字符組成,創(chuàng)建表的時(shí)候不需要定義好列。
    時(shí)間戳,默認(rèn)由系統(tǒng)指定,用戶也可以顯示設(shè)置。使用不同的時(shí)間戳來區(qū)分不同的版本。
  • 7.請(qǐng)舉個(gè)實(shí)例來闡述HBase的概念視圖和物理視圖的不同
    答:
    HBase數(shù)據(jù)概念視圖

    HBase數(shù)據(jù)物理視圖


    在HBase的概念視圖中,一個(gè)表可以視為一個(gè)稀疏、多維的映射關(guān)系。
    在物理視圖中,一個(gè)表會(huì)按照屬于同一列族的數(shù)據(jù)保存在一起

    8.試述HBase各功能組建及其作用
    (1)庫函數(shù):鏈接到每個(gè)客戶端;
    (2)一個(gè)Master主服務(wù)器:主服務(wù)器Master主要負(fù)責(zé)表和Region的管理工作;
    (3)許多個(gè)Region服務(wù)器:Region服務(wù)器是HBase中最核心的模塊,負(fù)責(zé)維護(hù)分配給自己的Region,并響應(yīng)用戶的讀寫請(qǐng)求

    11.試述HBase的三層結(jié)構(gòu)中各層次的名稱和作用。

    15.試述HStore的工作原理
    答:每個(gè)Store對(duì)應(yīng)了表中的一個(gè)列族的存儲(chǔ)。每個(gè)Store包括一個(gè)MenStore緩存和若干個(gè)StoreFile文件。MenStore是排序的內(nèi)存緩沖區(qū),當(dāng)用戶寫入數(shù)據(jù)時(shí),系統(tǒng)首先把數(shù)據(jù)放入MenStore緩存,當(dāng)MemStore緩存滿時(shí),就會(huì)刷新到磁盤中的一個(gè)StoreFile文件中,當(dāng)單個(gè)StoreFile文件大小超過一定閾值時(shí),就會(huì)觸發(fā)文件分裂操作。

    19.請(qǐng)列舉幾個(gè)HBase常用命令,并說明其使用方法
    1.進(jìn)入hbase shell console
    $HBASE_HOME/bin/hbase shell
    如果有kerberos認(rèn)證,需要事先使用相應(yīng)的keytab進(jìn)行一下認(rèn)證(使用kinit命令),認(rèn)證成功之后再使用hbase shell進(jìn)入可以使用whoami命令可查看當(dāng)前用戶
    hbase(main)>
    whoami
    2.表的管理
    1)查看有哪些表
    hbase(main)>
    list
    2)創(chuàng)建表
    #語法:create

    , {NAME => , VERSIONS => }
    #例如:創(chuàng)建表t1,有兩個(gè)family name:f1,f2,且版本數(shù)均為2
    hbase(main)>
    create ‘t1’,{NAME
    => ‘f1’,
    VERSIONS => 2},{NAME => ‘f2’,
    VERSIONS => 2}
    3)刪除表
    分兩步:首先disable,然后drop
    例如:刪除表t1

    hbase(main)>
    disable ‘t1’
    hbase(main)>
    drop ‘t1’
    4)查看表的結(jié)構(gòu)
    #語法:describe


    #例如:查看表t1的結(jié)構(gòu)
    hbase(main)>
    describe ‘t1’
    5)修改表結(jié)構(gòu)
    修改表結(jié)構(gòu)必須先disable
    #語法:alter ‘t1’, {NAME => ‘f1’}, {NAME => ‘f2’, METHOD => ‘delete’}
    #例如:修改表test1的cf的TTL為180天
    hbase(main)>
    disable ‘test1’
    hbase(main)>
    alter ‘test1’,{NAME=>‘body’,TTL=>‘15552000’},{NAME=>‘meta’,
    TTL=>‘15552000’}
    hbase(main)>
    enable ‘test1’
    3.權(quán)限管理
    1)分配權(quán)限
    #語法 : grant
    參數(shù)后面用逗號(hào)分隔
    #權(quán)限用五個(gè)字母表示: “RWXCA”.
    #READ(‘R’), WRITE(‘W’), EXEC(‘X’), CREATE(‘C’), ADMIN(‘A’)
    #例如,給用戶‘test’分配對(duì)表t1有讀寫的權(quán)限,
    hbase(main)>
    grant ‘test’,‘RW’,‘t1’
    2)查看權(quán)限
    #語法:user_permission

    #例如,查看表t1的權(quán)限列表
    hbase(main)>
    user_permission ‘t1’
    3)收回權(quán)限
    #與分配權(quán)限類似,語法:revoke

    #例如,收回test用戶在表t1上的權(quán)限
    hbase(main)>
    revoke ‘test’,‘t1’
    4.表數(shù)據(jù)的增刪改查
    1)添加數(shù)據(jù)
    #語法:put
    ,, family:column,,
    #例如:給表t1的添加一行記錄:rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系統(tǒng)默認(rèn)
    hbase(main)>
    put ‘t1’,‘rowkey001’,‘f1:col1’,‘value01’
    用法比較單一。
    2)查詢數(shù)據(jù)
    a)查詢某行記錄
    #語法:get
    ,,[ family:column,…]
    #例如:查詢表t1,rowkey001中的f1下的col1的值
    hbase(main)>
    get ‘t1’,‘rowkey001’,
    ‘f1:col1’
    #或者:
    hbase(main)>
    get ‘t1’,‘rowkey001’,
    {COLUMN=>‘f1:col1’}
    #查詢表t1,rowke002中的f1下的所有列值
    hbase(main)>
    get ‘t1’,‘rowkey001’
    b)掃描表
    #語法:scan
    , {COLUMNS => [ family:column,… ], LIMIT => num}
    #另外,還可以添加STARTROW、TIMERANGE和FITLER等高級(jí)功能
    #例如:掃描表t1的前5條數(shù)據(jù)
    hbase(main)>
    scan ‘t1’,{LIMIT=>5}
    c)查詢表中的數(shù)據(jù)行數(shù)
    #語法:count
    , {INTERVAL => intervalNum, CACHE => cacheNum}
    #INTERVAL設(shè)置多少行顯示一次及對(duì)應(yīng)的rowkey,默認(rèn)1000;CACHE每次去取的緩存區(qū)大小,默認(rèn)是10,調(diào)整該參數(shù)可提高查詢速度
    #例如,查詢表t1中的行數(shù),每100條顯示一次,緩存區(qū)為500
    hbase(main)>
    count ‘t1’,
    {INTERVAL => 100, CACHE => 500}
    3)刪除數(shù)據(jù)
    a )刪除行中的某個(gè)列值
    #語法:delete
    , , family:column , ,必須指定列名
    #例如:刪除表t1,rowkey001中的f1:col1的數(shù)據(jù)
    hbase(main)>
    delete ‘t1’,‘rowkey001’,‘f1:col1’
    注:將刪除改行f1:col1列所有版本的數(shù)據(jù)
    b )刪除行
    #語法:deleteall
    , , family:column , ,可以不指定列名,刪除整行數(shù)據(jù)
    #例如:刪除表t1,rowk001的數(shù)據(jù)
    hbase(main)>
    deleteall ‘t1’,‘rowkey001’
    c)刪除表中的所有數(shù)據(jù)
    #語法: truncate

    #其具體過程是:disable table -> drop table -> create table
    #例如:刪除表t1的所有數(shù)據(jù)
    hbase(main)>
    truncate ‘t1’
    5.Region管理
    1)移動(dòng)region
    #語法:move ‘encodeRegionName’, ‘ServerName’
    #encodeRegionName指的regioName后面的編碼,ServerName指的是master-status的Region Servers列表
    #示例
    hbase(main)>move
    ‘4343995a58be8e5bbc739af1e91cd72d’,
    ‘db-41.xxx.xxx.org,60020,1390274516739’
    2)開啟/關(guān)閉region
    #語法:balance_switch true|false
    hbase(main)>
    balance_switch
    3)手動(dòng)split
    #語法:split ‘regionName’,‘splitKey’
    4)手動(dòng)觸發(fā)major compaction
    #語法:
    #Compact
    all regions in a table:
    #hbase>
    major_compact ‘t1’
    #Compact
    an entire region:
    #hbase>
    major_compact ‘r1’
    #Compact
    a single column family within a region:
    #hbase>
    major_compact ‘r1’, ‘c1’
    #Compact
    a single column family within a table:
    #hbase>
    major_compact ‘t1’, ‘c1’

    6.配置管理及節(jié)點(diǎn)重啟
    1)修改hdfs配置
    hdfs配置位置:/etc/hadoop/conf
    #同步hdfs配置
    cat /home/hadoop/slaves|xargs -i
    -t scp /etc/hadoop/conf/hdfs-site.xml
    hadoop@{}:/etc/hadoop/conf/hdfs-site.xml
    #關(guān)閉:
    cat /home/hadoop/slaves|xargs -i
    -t ssh hadoop@{}
    “sudo
    /home/hadoop/cdh4/hadoop-2.0.0-cdh4.2.1/sbin/hadoop-daemon.sh --config /etc/hadoop/conf stop datanode”
    #啟動(dòng):
    cat /home/hadoop/slaves|xargs -i
    -t ssh hadoop@{}
    “sudo
    /home/hadoop/cdh4/hadoop-2.0.0-cdh4.2.1/sbin/hadoop-daemon.sh --config /etc/hadoop/conf start datanode”
    2)修改hbase配置
    hbase配置位置:
    #同步hbase配置
    cat /home/hadoop/hbase/conf/regionservers|xargs -i
    -t scp /home/hadoop/hbase/conf/hbase-site.xml
    hadoop@{}:/home/hadoop/hbase/conf/hbase-site.xml
    #graceful重啟
    cd ~/hbase
    bin/graceful_stop.sh
    –restart --reload --debug inspurXXX.xxx.xxx.org

    第五章
    4.請(qǐng)比較NoSQL數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫的優(yōu)缺點(diǎn)




    5.試述NoSQL數(shù)據(jù)庫的四大類型
    答:鍵值數(shù)據(jù)庫、列族數(shù)據(jù)庫、文檔數(shù)據(jù)庫和圖數(shù)據(jù)庫
    6.試述鍵值數(shù)據(jù)庫、列族數(shù)據(jù)庫、文檔數(shù)據(jù)庫和圖數(shù)據(jù)庫的適用場(chǎng)合和優(yōu)缺點(diǎn)。
    答:

    7.試述CAP理論的具體含義。
    答:所謂的CAP指的是:
    C(Consistency):一致性,是指任何一個(gè)讀操作總是能夠讀到之前完成的寫操作的結(jié)果,也就是在分布式環(huán)境中,多點(diǎn)的數(shù)據(jù)是一致的,或者說,所有節(jié)點(diǎn)在同一時(shí)間具有相同的數(shù)據(jù)
    A:(Availability):可用性,是指快速獲取數(shù)據(jù),可以在確定的時(shí)間內(nèi)返回操作結(jié)果,保證每個(gè)請(qǐng)求不管成功或者失敗都有響應(yīng);
    P(Tolerance of Network Partition):分區(qū)容忍性,是指當(dāng)出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況時(shí)(即系統(tǒng)中的一部分節(jié)點(diǎn)無法和其他節(jié)點(diǎn)進(jìn)行通信),分離的系統(tǒng)也能夠正常運(yùn)行,也就是說,系統(tǒng)中任意信息的丟失或失敗不會(huì)影響系統(tǒng)的繼續(xù)運(yùn)作。

    11.請(qǐng)解釋軟狀態(tài)、無狀態(tài)、硬狀態(tài)的具體含義。
    答:“軟狀態(tài)(soft-state)”是與“硬狀態(tài)(hard-state)”相對(duì)應(yīng)的一種提法。數(shù)據(jù)庫保存的數(shù)據(jù)是“硬狀態(tài)”時(shí),可以保證數(shù)據(jù)一致性,即保證數(shù)據(jù)一直是正確的。“軟狀態(tài)”是指狀態(tài)可以有一段時(shí)間不同步,具有一定的滯后性。

    12.什么是最終一致性?
    答:
    最終一致性根據(jù)更新數(shù)據(jù)后各進(jìn)程訪問到數(shù)據(jù)的時(shí)間和方式的不同,又可以區(qū)分為:

  • 會(huì)話一致性:它把訪問存儲(chǔ)系統(tǒng)的進(jìn)程放到會(huì)話(session)的上下文中,只要會(huì)話還存在,系統(tǒng)就保證“讀己之所寫”一致性。如果由于某些失敗情形令會(huì)話終止,就要建立新的會(huì)話,而且系統(tǒng)保證不會(huì)延續(xù)到新的會(huì)話;
  • 單調(diào)寫一致性:系統(tǒng)保證來自同一個(gè)進(jìn)程的寫操作順序執(zhí)行。系統(tǒng)必須保證這種程度的一致性,否則就非常難以編程了
  • 單調(diào)讀一致性:如果進(jìn)程已經(jīng)看到過數(shù)據(jù)對(duì)象的某個(gè)值,那么任何后續(xù)訪問都不會(huì)返回在那個(gè)值之前的值
  • 因果一致性:如果進(jìn)程A通知進(jìn)程B它已更新了一個(gè)數(shù)據(jù)項(xiàng),那么進(jìn)程B的后續(xù)訪問將獲得A寫入的最新值。而與進(jìn)程A無因果關(guān)系的進(jìn)程C的訪問,仍然遵守一般的最終一致性規(guī)則
  • “讀己之所寫”一致性:可以視為因果一致性的一個(gè)特例。當(dāng)進(jìn)程A自己執(zhí)行一個(gè)更新操作之后,它自己總是可以訪問到更新過的值,絕不會(huì)看到舊值
  • 總結(jié)

    以上是生活随笔為你收集整理的大数据技术原理与应用-林子雨课后(部分习题答案)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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