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

下載本文檔

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

文檔簡介

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

項目1:

一、選擇題

l.A2.C3.D4.C5.A

二、判斷題

l.T2.T3.F4.F

三、簡答題

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

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

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

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

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

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

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

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

商業(yè)研究。

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

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

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

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

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

3.Hadoop2.x默認的block大小是128MB,Hadoop1.x默認的block

大小是64MB

項目2:

一、選擇題

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

二、判斷題

l.T2.F3.F4.F

三、問答題:

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

各進程啟動順序。

啟動順序:

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

2.列出Hadoop的進程名,作用分別是什么?

Namenode進程:HDFS的守護進程,負責(zé)維護整個文件系統(tǒng),存儲著整個文

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

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

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

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

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

Secondarynamenode進程:一個冗余的守護進程,相當(dāng)于一個namenode的

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

和edits進行合并,可以作為namenode的備份使用

Resourcemanager進程:yarn平臺的守護進程,負責(zé)所有資源的分配與調(diào)度,

client的請求由此負責(zé),監(jiān)控nodemanager

nodemanager進程:單個節(jié)點的資源管理,執(zhí)行來自resourcemanager的具

體任務(wù)和命令

項目3:

一、選擇題

1.A2.C3.C4.D5.C

二、填空題

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

5.hadoopfs、hadoopdfs、hdfsdfs

三、問答題:

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

(1)分片冗余,本地校驗。傳統(tǒng)的分布式的文件系統(tǒng)會因為分布后的結(jié)構(gòu)不

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

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

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

服務(wù)器去校驗。

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

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

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

(3)彈性好。傳統(tǒng)分布式文件系統(tǒng)有個無法回避的問題,因為文件不在一個

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

化的,可能會以高時間延時為代價。但萬幸的是,HDFS是具有很高彈性,可以

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

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

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

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

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

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

傳輸一個由多個塊組成的文件的時間取決于磁盤傳輸速率。

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

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

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

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

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

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

比較慢。

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

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

副木二,不同機架中的節(jié)點上

副本三:同第二個副本的機架中的另一個節(jié)點上

其他副本:隨機挑選

項目4:

一、填空題:

Map;Reduce

Copy;Merge;Sort;Reduce;Write

Shuffle

二、判斷題:

1、正確2、錯誤3、正確

三、單選題:

1、A2、D3、B

四、簡答題

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

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

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

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

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

MapReduce存在以下4個獨立的實體。

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

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

分配和監(jiān)控。

(2)JobTracker:運行于namenode,負責(zé)接收JobClient提交的Job,

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

敗的task就重新運行它。

(3)TaskTracker:運行于datanode,負責(zé)主動與JobTracker通信,接

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

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

項目5:

一、填空題:

1.Combiner

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

寫入文件

3.將key均勻分布在ReduceTask上

二、判斷題:

1、正確2、正確3、錯誤

三、單選題:

1、B2、B3、C

四、簡答題

1.為什么要進行Combiner操作?

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

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

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

功能。

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

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

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

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

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

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

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

ReduceTask的目的。

項目6:

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

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

將數(shù)據(jù)源內(nèi)容存儲到集群中/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;

項目7:

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

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

S_NoNameSexAge

2015001Zhangsanmale23

2015002Maryfemale22

2015003Lisimale24

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

過程:

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

S_Nofl

namesexage

201500Zhangsanmale23

1

201500Maryfemale22

2

201500Lisimale24

3

用HBaseshell命令實現(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編程實現(xiàn)建表及數(shù)據(jù)的增/刪除/改操作。

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

3)要求能用HBaseshell命令實現(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)

多條記錄查詢

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

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

倒序掃描整個表。

hbase>scan*student?,{

溫馨提示

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

最新文檔

評論

0/150

提交評論