大數據技術導論課后習題及答案_第1頁
大數據技術導論課后習題及答案_第2頁
大數據技術導論課后習題及答案_第3頁
大數據技術導論課后習題及答案_第4頁
大數據技術導論課后習題及答案_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目一

1.大數據的特性有哪些?

答:Volume(數據量大)、Variety(數據類型繁多)、Velocity(處理

速度快)、Value(價值密度低)、Online(在線)。

2.大數據時代產生的原因有哪些?

答:外部原因:(1)存儲設備容量不斷增加。(2)CPU處理能力大幅提升。

(3)網絡帶寬不斷增加。根本原因:數據產生方式的巨大變化是大數據時

代產生的本質原因。

3.一般情況下,大數據處理流程分為哪幾個階段?

答:大數據處理流程分為五步,分別是數據采集、數據預處理、數據存儲

和數據計算、數據分析、數據可視化。

4.谷歌公司在大數據的發(fā)展中起了重要作用,谷歌“三架馬車”指的是

什么?

答:在2003年,谷歌公司發(fā)表了谷歌分布式文件系統(tǒng)(GoogleFileSystem,

GFS)的論文。在2004年,谷歌又發(fā)表了谷歌大數據分布式計算框架

MapReduce的論文。在2006年,谷歌又發(fā)表了大表BigTable的論文。這

三篇論文是大數據技術發(fā)展史上重要的里程碑,史稱谷歌大數據的“三架

馬車”。

5.請結合自己的專業(yè)談談如何利用大數據技術解決具體問題。

答:略

項目二

1,敘述大數據處理和傳統(tǒng)數據處理有什么不同?

答:傳統(tǒng)數據處理平臺在大數據時代將面臨嚴重挑戰(zhàn)。主要在以下幾個方

面:

(1)由于傳統(tǒng)數據處理平臺多部署于單機環(huán)境下,用于處理結構化數據。

計算數據量也較小,數據存儲大多采用關系型數據庫。數據計算效率依賴單

機的性能,數據處理速度方面存在瓶頸,對于大數據量的處理無法達到實時

性要求。

(2)傳統(tǒng)的數據處理方法以計算為中心,所有數據必須匯總傳輸到一臺

機器進行計算,計算完畢后再返回,增加了數據傳輸時間。隨著數據量的增

加,處理速度會越來越慢。

(3)傳統(tǒng)數據處理平臺數據來源單一,多用于處理結構化數據,對于非

結構化數據和半結構化數據無能為力。

大數據處理平臺具有以下特點。

(1)分布式數據計算

(2)動態(tài)擴展性

(3)容錯性強

(4)I/O傳輸速度快

2.Hadoop的設計思想是什么?

答:Hadoop的設計思想如下。

(1)能夠大幅度降低高性能計算成本

用戶可以通過家庭或者工作中普通的PC機組成大數據服務集群,集群節(jié)

點數量根據機器性能可以達到數千個。不必花費高昂的代價去購買集群服務

器用于環(huán)境搭建。使高性能計算實現(xiàn)成本降低,適用面更廣泛。

(2)具有良好的穩(wěn)定性和可靠性

爭對集群中單個或多個服務器節(jié)點失效問題,Hadoop具有自動維護數據

的多份復本,同時在任務失敗后能夠重新部署計算任務的機制,從而保障了

服務器集群的穩(wěn)定性和可靠性。

(3)能夠大幅度提高數據計算和存儲效率

Hadoop采用并行數據處理機制,把海量數據分割成多個小型的數據塊,

并通過數據分發(fā)機制,把數據分發(fā)給集群上面的其他節(jié)點進行處理,減少了

系統(tǒng)對于海量數據存儲和處理的時間。

(4)以數據為中心

秉承機柜內數據傳輸速度大于機柜間傳輸速度的思想(即移動計算比移

動數據更高效),對于海量數據采用“一次寫,多次讀”的方式,使文件不

會被頻繁寫入和修改,保證了集群各個節(jié)點的數據處理的高效性。

3.大數據有幾種計算模式?代表技術分別是什么?

答:

計算模式應用場景實時代表技術

批處理計算模大規(guī)模數據的不高MapReduce>Spark>Flink

式離線批量處理等

流計算模式流數據的在線高Storm>FIink>

實時計算Spark-Streaming>S4等

圖計算大規(guī)模圖結構不高Pregel>Giraph>GraphX

數據的處理等

交互查詢分析大規(guī)模數據的較高Hive>Impala等

模式交互查詢分析

4.敘述大數據處理平臺5種主流架構和各自的特點?

答:

(1)傳統(tǒng)大數據架構

傳統(tǒng)大數據架構主要為了解決傳統(tǒng)BI的問題,傳統(tǒng)BI經過長期的發(fā)展

已經形成了一套成熟和穩(wěn)定的系統(tǒng),但是隨著大數據時代的到來,傳統(tǒng)BI系

統(tǒng)遇到諸多挑戰(zhàn)。由于傳統(tǒng)BI系統(tǒng)處理數據量較少,且多為結構化數據的處

理。在大數據時代面對大規(guī)模的結構化數據和文件、圖片、視頻等非結構化

數據的沖擊,傳統(tǒng)BI遇到性能瓶頸問題。因此,我們必須對傳統(tǒng)BI系統(tǒng)進

行升級改造,引入大數據處理技術搭建架構,稱之為傳統(tǒng)大數據架構。傳統(tǒng)

大數據架構與傳統(tǒng)BI相比,在數據分析的業(yè)務上沒有發(fā)生任何變化,僅僅是

為了增加系統(tǒng)的結構化和非結構化數據的處理能力,提升了系統(tǒng)性能。由于

傳統(tǒng)BI業(yè)務數據多為離線批處理,對實時性要求不高。所以傳統(tǒng)大數據架構

也以批處理為主,不具備實時性,一般采用MapReduce、Spark等技術進行批

處理。這種架構主要應用在以BI為主的業(yè)務需求上,不過僅用于數據處理性

能遇到瓶頸問題時的系統(tǒng)改造上。

(2)流式架構

隨著大數據時代的發(fā)展和傳感器的廣泛應用,出現(xiàn)了越來越多的實時處

理數據需求,比如實時監(jiān)控預警,實時路徑規(guī)劃,實時在線報表等。傳統(tǒng)大

數據架構為批量數據處理,無法滿足實時性的需求。這時就需要搭建能夠對

數據進行實時處理,時延小的系統(tǒng)架構,這就是流式架構。流式架構,顧名

思義就是整個架構只具備對數據的實時流計算功能,而不具備對數據的批量

處理功能。在流式架構中,數據全程以流的形式處理,沒有ETL過程。經過

流處理加工后的數據,被直接推送顯示出來。流式架構僅以窗口的形式進行

存儲,本身不支持歷史數據的重演和統(tǒng)計分析,不過我們可以根據實際需求,

在數據直接實時推送顯示出來時,把符合我們預設條件的,有價值的數據存

入數據庫中,以便后續(xù)數據分析和應用。流式架構數據處理一般采用的流計

算框架比如SparkStreaming、Storm、Flink等。流式架構多用于實時預警,實

時監(jiān)控等對數據處理實時性要求比較高,同時又不需要支持歷史數據統(tǒng)計分

析和重演的系統(tǒng)。

(3)Lambda架構

Lambda架構是現(xiàn)今企業(yè)用的最多的主流大數據架構。很多企業(yè)大數據架

構基本都是Lambda架構或者其變種。Lambda架構主要運用于同時需要實時

流處理和離線批量處理的場景。為了保證數據的實時處理和批量處理二者并

存,Lambda架構的數據通道分為兩條:實時流和離線。實時流依照流式架構

處理,進行實時在線流計算,以增量計算為主。而離線則主要為數據批量處

理,以全量計算為主保障數據一致性。

(4)Kappa架構

Lambda架構運用非常廣泛,也能解決大多數業(yè)務場景的實時和批量處理

需求。但是Lambda架構也有其自身不足。Lambda查詢結果來自于批處理層

和快速計算層。而批處理層多用MapReduce、Spark等批處理技術,而快速計

算層多用Flink、SparkStreaming和Storm等流計算技術。系統(tǒng)開發(fā)時就需要

開發(fā)兩種完全不同的代碼,這非常不方便。因此,在Lambda架構的基礎上

又提出了Kappa架構。Kappa架構的變革就是,在批處理層不再使用批處理

技術,而也使用快速處理層的流計算技術。這樣一來,批處理層和快速處理

層都是使用了相同的流處理邏輯,實現(xiàn)框架統(tǒng)一化,從而簡化了系統(tǒng)開發(fā)工

作。

(5)Unifield架構

在傳統(tǒng)Lambda架構下,理論上快速處理層的輸出結果與批處理層的輸

出結果在業(yè)務意義上是完全相同,如果我們分別用兩張數據庫的表來存儲批

處理層和快速處理層的計算結果,那么這兩張數據庫表的表結構應該是相同

的。只是數據記錄不一樣。但在實際應用中我們需要根據自己的需求對快速

處理層做出改動。Unifield架構就是以Lambda架構為基礎,對其進行進一步

改造,在快速處理層新增了機器學習模型。

5.Hadoop生態(tài)系統(tǒng)組件有哪些,各自的作用是什么?

(1)底層

底層結構包括HDFS,MapReduce和Zookeeper。其中,HDFS是Hadoop

分布式文件存儲系統(tǒng)。MapReduce是Hadoop的分布式并行運算框架。

Zookeeper是一種基于HDFS和HBase的開源的分布式協(xié)調服務組件,由

Facebook貢獻給Apache基金會。Zookeeper對Hadoop集群提供分布式鎖服

務,用于解決多個進程同步控制問題,防止“臟數據”,保證分布式任務執(zhí)

行的一致性。

(2)數據收集處理轉換層

數據收集處理轉換層結構包括HBase>HivePigMahoutSqoop和Flume。

HBase(分布式列存數據庫)是一個針對結構化數據的可伸縮、高可靠、

高性能、分布式和面向列的動態(tài)模式數據庫。和傳統(tǒng)關系數據庫不同,HBase

采用了BigTable的數據模型,即增強的稀疏排序映射表(Key/Value)。在

HBase中,數據的鍵由行關鍵字、列關鍵字和時間戳構成。HBase提供了對

大規(guī)模數據的隨機、實時讀寫訪問,同時,HBase中保存的數據可以使用

MapReduce來處理。

Hive是一種基于平面文件而構建的分布式數據倉庫,主要用于數據展示,

Hive提供了基于SQL的數據庫查詢語言,簡化了MapReduce編程難度。利

用Hive,用戶只需寫SQL語句,而不需要編寫復雜的MapReduce程序就能

運行MapReduce任務。

Pig是一種基于大數據集的批量數據處理平臺,用于提供數據流處理的語

言和運行環(huán)境,Pig提供一種專用的語言PigLatin。Pig主要用于數據準備階

段,提供數據加載、合并、過濾排序等數據操作功能。

Sqoop是一個數據接口,主要用來對HDFS和傳統(tǒng)關系數據庫中的數據

進行數據傳輸。在數據傳輸過程中,也可以利用Sqoop來做數據清洗。

Flume是一種分布式海量日志采集和傳輸的系統(tǒng)。用于對日志數據的收

集和簡單的處理。它將數據從產生、傳輸、處理并最終寫入目標的路徑的過

程抽象為一條數據流,在數據流中,數據源是數據發(fā)送方,F(xiàn)lume支持收集

各種不同協(xié)議數據源數據。收集完數據后,F(xiàn)lume數據流能夠對日志數據進

行簡單處理,例如過濾、格式轉換等。隨后,F(xiàn)lume數據流能夠將處理好的

數據寫往各種數據庫。總的來說,F(xiàn)lume是一個可擴展、適合復雜環(huán)境的海

量日志收集工具。

(3)數據挖掘層

數據挖掘層主要是利用數據挖掘組件Mahout執(zhí)行數據挖掘任務。Mahout

是Apache旗下的一個開源算法庫,主要用來做數據挖掘和機器學習,Mahout

中包含許多已實現(xiàn)的算法,例如分類、回歸、聚類、協(xié)同過濾等。傳統(tǒng)的Mahout

是提供的是Java的API,用戶應用會編譯成MapReduce的工作任務,運行在

MapReduce的框架上,計算效率低?,F(xiàn)在,Spark的出現(xiàn)基本替代了

MapReduce,Mahout也已經停止接受新的MapReduce算法了,轉向支持Spark。

(4)監(jiān)控和運維層

監(jiān)控和運維層主要是利用監(jiān)控和運維組件對整個集群資源調度和任務運

行進行監(jiān)控。在MRvl中一般使用Ambari來對集群進行監(jiān)控。Ambari是一

款Hadoop集群監(jiān)控工具,提供對Hadoop集群進行部署,配置,升級和監(jiān)控

的服務。

HadoopMRv2版本生態(tài)系統(tǒng)在MRvl的基礎上引入了Yarn框架進行集群

的資源管理調度。因為MapReduce本質上是一個大數據批處理平臺。隨著社

會的發(fā)展,批處理框架也越來越多,例如Spark、Flink等。同時,數據在線

實時處理需求大幅增加。而MRvl不擅長處理實時數據,同時還有一些機器

學習類的任務也不太適合用MRvl執(zhí)行。所以,Strom、Flink和SparkStreaming

等實時計算框架應運而生,

6.敘述實時計算和批量計算的定義和區(qū)別。

答:批量計算指大規(guī)模數據的離線批量計算,計算數據量大,實時性要求不

高,時延一般為小時級。實時計算指數據的在線實時計算,數據計算量較大,

但是實時要求非常高,時延一般為秒級或毫秒級。

7.畫出Hadoop2.x生態(tài)系統(tǒng)架構圖

Ambari

(安裝部署工具)

Oozie

作業(yè)流調度系統(tǒng)

(PigHive2

J雷

do黑

o忘MapReduceTez

&情

o(離線計算)(DAG計算)(內存計算)

zo田

)YAERN

(分布式計算框架)(

oEf昱

n櫛

z巴

HDFS

(分布式存儲礴)

項目三

l.Hadoop開發(fā)環(huán)境單機、偽分布式、完全分布式的差別是什么?

答:單機模式下Hadoop運行只有一個Java進程,單機模式Hadoop只

能讀取系統(tǒng)目錄下的本地文件。偽分布式配置Hadoop進程運行包含多個

Java進程,節(jié)點既作為NameNode,也作為DataNode,偽分布式配置Hadoop

可以讀取本地文件也可以讀取HDFS文件。完全分布式配置Hadoop進程運

行包含多個Java進程,NameNode和DataNode節(jié)點由不同的機器擔任,完

全分布式配置Hadoop可以讀取本地文件也可以讀取HDFS文件。

2.Hadoop偽分布式環(huán)境為什么要設置免密碼登錄?

答:Hadoop集群運行時,NameNode要遠程啟動DataNode守護進程,

NameNode和DataNode之間需要遠程SSH通信。所以我們需要安裝SSH。但

是Hadoop沒有區(qū)分完全分布式和偽分布式,對于偽分布式Hadoop仍然會采

用與集群相同的處理方式,按次序啟動DataNode進程,只不過在偽分布式中

NameNode和DataNode者B為localhost,所以對于偽分布式,也必須要安裝SSH。

3.Hadoop偽分布式core-site.xml需要配置哪些屬性,每個屬性的作用是

什么?

答:<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/hadoop//hadoop-2.7.1/tmp</value>

〈description〉設置hadoop默認配置目錄〈/description〉

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

〈description,設置hdfs集群訪問路徑〈/description〉

</property>

</configuration>

hadoop.tmp.dir用于設置hadoop默認配置目錄,fs.defaultFS用于設置hdfs

集群訪問路徑。

4.Hadoop偽分布式hdfs-site.xml需要配置哪些屬性,每個屬性的作用是

什么?

答:<configuration>

<property>

<name>dfs.replication</name>

<value>l</value>

</property>

<property>

<name>.dir</name>

<value>file:/usr/local/hadoop/hadoop-2.7.1/tmp/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/usr/local/hadoop/hadoop-2.7.1/tmp/dfs/data</value>

</property>

</configuration>

dfs.replication用于設置文件備份副本數,.dir是保存

Fslmage鏡像的目錄,作用是存放hadoop的名稱節(jié)點namenode里的metadata;

dfs.datanode.data.dir是存放HDFS文件系統(tǒng)數據文件的目錄,作用是存放

hadoop的數據節(jié)點datanode里的多個數據塊。

5.使用HDFS命令進行如下操作:在HDFS上創(chuàng)建一個文件夾test,本地

上傳一個文件到test目錄下,瀏覽該文件的內容。

答:可以參考如下格式

hdfsdfs-mkdir/test

hdfsdfs-put./test.txt/test

hdfsdfs-cat/test/test.txt

項目四

1.常用的大數據采集工具有哪些?

答:Flume和Kafka,scribe等。

2.數據預處理的作用是什么,有哪幾種數據預處理的方法?

答:從數據源采集的原始數據一般都是“臟”的,所謂“臟”就是數據

不正常,會影響后續(xù)數據存儲和處理過程,甚至數據分析的準確性。常見的

“臟”數據有數據缺失、數據值異常、數據格式不合要求等,這時候就需要

我們對原始數據進行數據預處理操作,保證數據采集的數據質量,以便后續(xù)

步驟的順利進行。

一般數據預處理主要分為以下幾個方面數據清洗,數據轉換,數據集成,

數據規(guī)約。

3.什么是爬蟲,爬蟲的作用是什么?

答:網絡爬蟲是一個模擬人類請求網站行為的程序或腳本。網絡爬蟲可

以自動請求網頁并使用一定的規(guī)則把我們所需要的有價并值的數據抓取下

來。

4.網頁的基本結構包含哪些?

答:網頁一般由三部分組成,分別是HTML(超文本標記語言)、CSS(層

疊樣式表)和JavaScript(活動腳本語言)。其中,HTML是整個網頁的框

架。整個網頁由一些成對出現(xiàn)的HTML標簽組成。一個網頁一般分為有head

和body兩部分,body內部可以包含一些HTML標簽,HTML標簽里填充具體

的網頁內容,同時HTML標簽可以具有屬性,比如href屬性用于設置該標簽

被點擊時進行超鏈接跳轉。CSS主要負責定義網頁的外觀樣式,比如長,寬,

顏色等等。

5.爬蟲程序如何進行數據爬???

答:爬蟲爬取網頁數據的基本過程類似于我們?yōu)g覽網頁的過程。主要分

為兩個步驟。

(1)Http-Request

在Http-Request階段,爬蟲程序對需要爬取數據的網頁服務器發(fā)送Http

請求,并等待網頁服務器的Http響應。

(2)Http-Response

在Http-Response階段,網頁服務器接收到請求后,驗證請求的合法性,

然后將爬蟲程序請求的網頁數據封裝好,發(fā)送Http響應。爬蟲程序接收網頁

服務器響應,經過程序代碼的解析處理,獲取需要爬取的網頁內容。

項目五

1.大數據計算框架的類別有哪些?常見的大數據計算框架有哪些?

2.畫出HDFS架構圖。

3.什么叫NoSQL數據庫,NoSQL數據庫的作用是什么?

答:非關系(NoSQL)數據庫是一種易擴展、大數據量、高性能和靈活

數據模型的數據庫。NoSQL數據庫主要用于存儲非結構化數據和半結構化數

據。

4.HBase數據庫前身是什么?

答:谷歌bigtableo

5.HBase數據庫是哪種NoSQL數據庫?HBase如何標識每條數據?

答:HBase是基于Hadoop的面向列的NoSQL數據庫。HBase的數據存

儲在數據單元中,每個數據單元通過行鍵、列簇、列限定符和時間戳共同

組成的索引來標識的。

6.敘述HBase數據庫如何進行數據存儲。

答:假設有一張表,HBase會根據行鍵的值對該表中的行進行分區(qū),每個

行區(qū)間構成一個分區(qū)(Region),分區(qū)內包含了位于這個行區(qū)間內的所有

數據。默認一張表的初始分區(qū)數為2個,隨著表中數據不斷增加,Region

不斷增大,當增大到超過閾值的時候,一個Region就會分為兩個Region。

表中的行越來越多,Region就越來越多。這么多Region需要一個“管家”

來管理,這個管家就是RegionServeroRegionServer的管理原則為每個

RegionServer負責管理一個或多個Regiono不同的Region可以分布在不

同的RegionServer_h,但一個Reg

溫馨提示

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

評論

0/150

提交評論