Hadoop+HBase技術(shù)項(xiàng)目教程 課后習(xí)題答案_第1頁
Hadoop+HBase技術(shù)項(xiàng)目教程 課后習(xí)題答案_第2頁
Hadoop+HBase技術(shù)項(xiàng)目教程 課后習(xí)題答案_第3頁
Hadoop+HBase技術(shù)項(xiàng)目教程 課后習(xí)題答案_第4頁
Hadoop+HBase技術(shù)項(xiàng)目教程 課后習(xí)題答案_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

【課后練習(xí)答案】

項(xiàng)目1:

一、選擇題

l.A2.C3.D4.C5.A

二、判斷題

l.T2.T3.F4.F

三、簡(jiǎn)答題

1.簡(jiǎn)述大數(shù)據(jù)研究的意義。

研究大數(shù)據(jù),最重要的意義是預(yù)測(cè)。因?yàn)閿?shù)據(jù)從根本上講,是對(duì)過去和現(xiàn)在

的歸納和總結(jié),其本身不具備趨勢(shì)和方向性的特征,但是我們可以應(yīng)用大數(shù)據(jù)去

了解事物發(fā)展的客觀規(guī)律、了解人類行為,并且能夠幫助我們改變過去的思維方

式,建立新的數(shù)據(jù)思維模型,從而對(duì)未來進(jìn)行預(yù)測(cè)和推測(cè)。比如,商業(yè)公司對(duì)消

費(fèi)者日常的購買行為和使用商品習(xí)慣進(jìn)行匯總和分析,了解到消費(fèi)者的需求,從

而改進(jìn)己有商品并適時(shí)推出新的商品,消費(fèi)者的購買欲將會(huì)提高。知名互聯(lián)網(wǎng)公

司谷歌對(duì)其用戶每天頻繁搜索的詞匯進(jìn)行數(shù)據(jù)挖掘,從而進(jìn)行相關(guān)的廣告推廣和

商業(yè)研究。

2.簡(jiǎn)述Hadoop版本區(qū)別。

Hadoopl.0和2.0的主要區(qū)別:

1.新增yarn,1.0時(shí)mr的運(yùn)行環(huán)境為JobTracker和TaskTracker,2.0

則取消了JobTracker和TaskTracker,使用yarn作為mr的資源調(diào)度調(diào)度器

2.解決了hadoopl.0中NN的單點(diǎn)故障,可以使用NN的Ha

3.Hadoop2.x默認(rèn)的block大小是128MB,Hadoop1.x默認(rèn)的block

大小是64MB

項(xiàng)目2:

一、選擇題

l.D2.D3.B4.C5.B6.B

二、判斷題

l.T2.F3.F4.F

三、問答題:

1.啟動(dòng)Hadoop系統(tǒng),當(dāng)使用bin/start-all.sh命令啟動(dòng)時(shí),請(qǐng)給出集群

各進(jìn)程啟動(dòng)順序。

啟動(dòng)順序:

namenode->datanode->secondarynamenode->resourcemanager->nodemanager

2.列出Hadoop的進(jìn)程名,作用分別是什么?

Namenode進(jìn)程:HDFS的守護(hù)進(jìn)程,負(fù)責(zé)維護(hù)整個(gè)文件系統(tǒng),存儲(chǔ)著整個(gè)文

件系統(tǒng)的元數(shù)據(jù)信息,有image+editlognamenode不會(huì)持久化存儲(chǔ)這些數(shù)據(jù),

而是在啟動(dòng)時(shí)重建這些數(shù)據(jù)。

Datanode進(jìn)程:具體文件系統(tǒng)的工作節(jié)點(diǎn),當(dāng)我們需要某個(gè)數(shù)據(jù),namenode

告訴我們?nèi)ツ睦镎?,就直接和那個(gè)DataNode對(duì)應(yīng)的服務(wù)器的后臺(tái)進(jìn)程進(jìn)行通信,

由DataNode進(jìn)行數(shù)據(jù)的檢索,然后進(jìn)行具體的讀/寫操作

Secondarynamenode進(jìn)程:一個(gè)冗余的守護(hù)進(jìn)程,相當(dāng)于一個(gè)namenode的

元數(shù)據(jù)的備份機(jī)制,定期的更新,和namenode進(jìn)行通信,將namenode上的image

和edits進(jìn)行合并,可以作為namenode的備份使用

Resourcemanager進(jìn)程:yarn平臺(tái)的守護(hù)進(jìn)程,負(fù)責(zé)所有資源的分配與調(diào)度,

client的請(qǐng)求由此負(fù)責(zé),監(jiān)控nodemanager

nodemanager進(jìn)程:?jiǎn)蝹€(gè)節(jié)點(diǎn)的資源管理,執(zhí)行來自resourcemanager的具

體任務(wù)和命令

項(xiàng)目3:

一、選擇題

1.A2.C3.C4.D5.C

二、填空題

1.DataNode2.hdfsversion3.一次寫入,多次讀取4.DataNode

5.hadoopfs、hadoopdfs、hdfsdfs

三、問答題:

1.HDFS和傳統(tǒng)的分布式文件系統(tǒng)相比較,有哪些獨(dú)特的特性?

(1)分片冗余,本地校驗(yàn)。傳統(tǒng)的分布式的文件系統(tǒng)會(huì)因?yàn)榉植己蟮慕Y(jié)構(gòu)不

完整,導(dǎo)致系統(tǒng)復(fù)雜度加大,并且引入的網(wǎng)絡(luò)編程,同樣導(dǎo)致分布式文件系統(tǒng)更

加復(fù)雜。而HDFS采用分片冗余,本地校驗(yàn)的方法很好的解決了傳統(tǒng)分布式的文

件系統(tǒng)的這一問題。數(shù)據(jù)冗余式存儲(chǔ),直接將多份的分片文件交給分片后的存儲(chǔ)

服務(wù)器去校驗(yàn)。

(2)準(zhǔn)確性高。冗余后的分片文件還有個(gè)額外功能,只要冗余的分片文件中

有一份是完整的,經(jīng)過多次協(xié)同調(diào)整后,其他分片文件也將完整。經(jīng)過協(xié)調(diào)校驗(yàn),

無論是傳輸錯(cuò)誤,I/O錯(cuò)誤,還是個(gè)別服務(wù)錯(cuò)宕機(jī),整個(gè)系統(tǒng)里的文件是完整的

(3)彈性好。傳統(tǒng)分布式文件系統(tǒng)有個(gè)無法回避的問題,因?yàn)槲募辉谝粋€(gè)

磁盤導(dǎo)致讀取訪問操作的延時(shí),而現(xiàn)階段,HDFS的配置是按照高數(shù)據(jù)吞吐量?jī)?yōu)

化的,可能會(huì)以高時(shí)間延時(shí)為代價(jià)。但萬幸的是,HDFS是具有很高彈性,可以

針對(duì)具體應(yīng)用再優(yōu)化。

(4)優(yōu)化的副本存放策略。HDFS采用一種稱為機(jī)架感知的策略來改進(jìn)數(shù)據(jù)的

可靠性、可用性和網(wǎng)絡(luò)帶寬的利用率。

2.為什么HDFS的塊如此之大?

HDFS的塊比磁盤塊大,其目的是為了最小化尋址開銷。如果塊設(shè)置得足夠

大,從磁盤傳輸數(shù)據(jù)的時(shí)間可以明顯大于定位這個(gè)塊開始位置所需的時(shí)間。這樣,

傳輸一個(gè)由多個(gè)塊組成的文件的時(shí)間取決于磁盤傳輸速率。

我們來做一個(gè)速算,如果尋址時(shí)間為10ms左右,而傳輸速率為100MB/S,

為了使尋址時(shí)間僅占傳輸時(shí)間的1%,我們需要設(shè)置塊大小為100MB左右。而默

認(rèn)的塊大小實(shí)際為64MB,但是很多情況下HDFS使用128MB的塊設(shè)置。以后隨著

新一代磁盤驅(qū)動(dòng)器傳輸速率的提升,塊的大小將被設(shè)置得更大。

但是該參數(shù)也不會(huì)設(shè)置得過大。M卯Reduce中的map任務(wù)通常一次處理一個(gè)

塊中的數(shù)據(jù),因此任務(wù)數(shù)太少(少于集群中的節(jié)點(diǎn)數(shù)量),作業(yè)的運(yùn)行速度就會(huì)

比較慢。

3.HDFS中數(shù)據(jù)副本的存放策略是什么?

副本一:同Client的節(jié)點(diǎn)上

副木二,不同機(jī)架中的節(jié)點(diǎn)上

副本三:同第二個(gè)副本的機(jī)架中的另一個(gè)節(jié)點(diǎn)上

其他副本:隨機(jī)挑選

項(xiàng)目4:

一、填空題:

Map;Reduce

Copy;Merge;Sort;Reduce;Write

Shuffle

二、判斷題:

1、正確2、錯(cuò)誤3、正確

三、單選題:

1、A2、D3、B

四、簡(jiǎn)答題

1.MapReduce的核心思想是什么?

MapReduce的核心思想就是“分而治之”。也就是說把一個(gè)復(fù)雜的問題,按

照一定的“分解”方法分為等價(jià)的規(guī)模較小的若干部分,然后逐個(gè)解決,分別找

出各個(gè)部分的結(jié)果,把各部分的結(jié)果組成整個(gè)問題的結(jié)果。

2.簡(jiǎn)述MapReduce的執(zhí)行過程。

MapReduce存在以下4個(gè)獨(dú)立的實(shí)體。

(1)JobClient:運(yùn)行于clientnode,負(fù)責(zé)將MapReduce程序打成Jar包

存儲(chǔ)到HDFS,并把Jar包的路徑提交到Jobtracker,由Jobtracker進(jìn)行任務(wù)的

分配和監(jiān)控。

(2)JobTracker:運(yùn)行于namenode,負(fù)責(zé)接收J(rèn)obClient提交的Job,

調(diào)度Job的每一個(gè)子task運(yùn)行于TaskTracker上,并監(jiān)控它們,如果發(fā)現(xiàn)有失

敗的task就重新運(yùn)行它。

(3)TaskTracker:運(yùn)行于datanode,負(fù)責(zé)主動(dòng)與JobTracker通信,接

收作業(yè),并直接執(zhí)行每一個(gè)任務(wù)。

(4)HDFS:用來與其它實(shí)體間共享作業(yè)文件。

項(xiàng)目5:

一、填空題:

1.Combiner

2.分片;格式化數(shù)據(jù)源;執(zhí)行MapTask;執(zhí)行Shuffle過程;執(zhí)行ReduceTask;

寫入文件

3.將key均勻分布在ReduceTask上

二、判斷題:

1、正確2、正確3、錯(cuò)誤

三、單選題:

1、B2、B3、C

四、簡(jiǎn)答題

1.為什么要進(jìn)行Combiner操作?

每一個(gè)map可能會(huì)產(chǎn)生大量的輸出,combiner的作用就是在map端對(duì)輸出

先做一次合并,以減少傳輸?shù)絩educer的數(shù)據(jù)量。

combiner最基本是實(shí)現(xiàn)本地key的歸并,combiner具有類似本地的reduce

功能。

如果不用combiner,那么,所有的結(jié)果都是reduce完成,效率會(huì)相對(duì)低下。

使用combiner,先完成的map會(huì)在本地聚合,提升速度。

2.MapReduce是如何進(jìn)行Partitioner分區(qū)的?

定義一個(gè)Partitioner組件,需要繼承Partitioner類,并重寫

getPartition()方法。在重寫getPartition()方法時(shí),通常的做法是使用hash

函數(shù)對(duì)文件數(shù)量進(jìn)行分區(qū),即通過hash操作,獲得一個(gè)非負(fù)整數(shù)的hash碼,然

后用當(dāng)前作業(yè)的reduce節(jié)點(diǎn)數(shù)進(jìn)行取模運(yùn)算,從而實(shí)現(xiàn)數(shù)據(jù)均勻分布在

ReduceTask的目的。

項(xiàng)目6:

答案:本題為設(shè)計(jì)類題,設(shè)計(jì)答案不唯一,給出部分答案

1)按字段創(chuàng)建表vistor。

將數(shù)據(jù)源內(nèi)容存儲(chǔ)到集群中/usr/local/src/datas/user.txtr下。

創(chuàng)建表

hive>createdatabasevistorData;

hive>usevistorData;

hive>createtableifnotexistsvistor(useidint,name

string,umonthint,numint)

rowformatdelimitedfieldsterminatedby'\t'

storedastextfile

locationJ/usr/local/src/user,;

2)導(dǎo)入數(shù)據(jù)源到表中。

向普通表vistor中利用loaddata方式導(dǎo)入數(shù)據(jù)。

hive>loaddatalocalinpath*/usr/local/src/datas/user.txtJinto

tablevistor;

項(xiàng)目7:

以表7-5為例進(jìn)行部分答案說明,本題為設(shè)計(jì)類題,設(shè)計(jì)答案不唯一

表7-5學(xué)生表(Student)

S_NoNameSexAge

2015001Zhangsanmale23

2015002Maryfemale22

2015003Lisimale24

1)要求用HBaseshell命令實(shí)現(xiàn)建表及數(shù)據(jù)的增/刪除/改操作。

過程:

轉(zhuǎn)換成HBase的邏輯表。

S_Nofl

namesexage

201500Zhangsanmale23

1

201500Maryfemale22

2

201500Lisimale24

3

用HBaseshell命令實(shí)現(xiàn)建表

hbase>create'student,,'fT

數(shù)據(jù)的增/刪除/改操作。

增加數(shù)據(jù):

hbase>putstudent*,'201500T,'fl:name,,'Zhangsan'

hbase>putstudent','2015001','fl:dex',male'

hbase>putstudent','2015001','fl:age',‘23'

hbase>putstudent'2015002',,fl:name,,,Mary

hbase>putstudent'2015002','fl:dcx',*female'

hbase>putstudent'2015002','fl:age','22'

hbase>putstudent'2015003',,fl:name,,,Lisi

hbase>putstudent1,'2015003','fl:dex',,male

hbase>putstudent*,'2015003',,fl:age,,'24'

修改數(shù)據(jù):將2015002的age值改為23

hbase>put'student','2015002,,'f1rage*,'23

刪除數(shù)據(jù):將2015002的age值刪除

hbase>delete'student'2015002','fl:age'

2)要求用HBaseJavaAPI編程實(shí)現(xiàn)建表及數(shù)據(jù)的增/刪除/改操作。

大家查看前面教材中相關(guān)內(nèi)容,自行編寫相關(guān)代碼。

3)要求能用HBaseshell命令實(shí)現(xiàn)單條/多條記錄查詢。

單條記錄查詢

查詢student中2015002的age列的值。

hbase>get'student','rkOOl','2015002','fl:age,

利用ValueFilter屬性,查詢2015002中2015002行中值是23的數(shù)據(jù)。

hbase>get'student','2015002,,{FILTER

ValueFilter(=,Jbinary:23,)w)

多條記錄查詢

掃描整個(gè)表列族為fl的數(shù)據(jù)。

hbase>scan'student',{COLUMN=>'fl'}

倒序掃描整個(gè)表。

hbase>scan*student?,{

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論