大數(shù)據(jù)技術(shù)原理與應(yīng)用-林子雨版-課后習(xí)題答案_第1頁
大數(shù)據(jù)技術(shù)原理與應(yīng)用-林子雨版-課后習(xí)題答案_第2頁
大數(shù)據(jù)技術(shù)原理與應(yīng)用-林子雨版-課后習(xí)題答案_第3頁
大數(shù)據(jù)技術(shù)原理與應(yīng)用-林子雨版-課后習(xí)題答案_第4頁
大數(shù)據(jù)技術(shù)原理與應(yīng)用-林子雨版-課后習(xí)題答案_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章1.試述信息技術(shù)發(fā)展史上的3次信息化浪潮及具體內(nèi)容。信息化浪潮發(fā)生時間標志解決問題代表公司第一次浪潮1980年前后個人計算機信息處理Intel、AMD、IBM、蘋果、微軟、聯(lián)想、戴爾、惠普等第二次浪潮1995年前后互聯(lián)網(wǎng)信息傳輸雅虎、谷歌、阿里巴巴、百度、騰訊等第三次浪潮2010年前后物理網(wǎng)、云計算和大數(shù)據(jù)信息爆炸將涌現(xiàn)出一批新的市場標桿企業(yè)試述數(shù)據(jù)產(chǎn)生方式經(jīng)歷的幾個階段答:運營式系統(tǒng)階段,用戶原創(chuàng)內(nèi)容階段,感知式系統(tǒng)階段。試述大數(shù)據(jù)的4個基本特征答:數(shù)據(jù)量大、數(shù)據(jù)類型繁多、處理速度快和價值密度低。試述大數(shù)據(jù)時代的“數(shù)據(jù)爆炸”的特性答:大數(shù)據(jù)時代的“數(shù)據(jù)爆炸”的特性是,人類社會產(chǎn)生的數(shù)據(jù)一致都以每年50%的速度增長,也就是說,每兩年增加一倍。數(shù)據(jù)研究經(jīng)歷了哪4個階段?答:人類自古以來在科學(xué)研究上先后歷經(jīng)了實驗、理論、計算、和數(shù)據(jù)四種范式。試述大數(shù)據(jù)對思維方式的重要影響答:大數(shù)據(jù)時代對思維方式的重要影響是三種思維的轉(zhuǎn)變:全樣而非抽樣,效率而非精確,相關(guān)而非因果。大數(shù)據(jù)決策與傳統(tǒng)的基于數(shù)據(jù)倉庫的決策有什么區(qū)別答:數(shù)據(jù)倉庫具備批量和周期性的數(shù)據(jù)加載以及數(shù)據(jù)變化的實時探測、傳播和加載能力,能結(jié)合歷史數(shù)據(jù)和實時數(shù)據(jù)實現(xiàn)查詢分析和自動規(guī)則觸發(fā),從而提供對戰(zhàn)略決策和戰(zhàn)術(shù)決策。大數(shù)據(jù)決策可以面向類型繁多的、非結(jié)構(gòu)化的海量數(shù)據(jù)進行決策分析。舉例說明大數(shù)據(jù)的基本應(yīng)用答:領(lǐng)域大數(shù)據(jù)的應(yīng)用金融行業(yè)大數(shù)據(jù)在高頻交易、社區(qū)情緒分析和信貸風(fēng)險分析三大金融創(chuàng)新領(lǐng)域發(fā)揮重要作用。汽車行業(yè)利用大數(shù)據(jù)和物聯(lián)網(wǎng)技術(shù)的五人駕駛汽車,在不遠的未來將走進我們的日常生活互聯(lián)網(wǎng)行業(yè)借助于大數(shù)據(jù)技術(shù),可以分析客戶行為,進行商品推薦和有針對性廣告投放個人生活大數(shù)據(jù)還可以應(yīng)用于個人生活,利用與每個人相關(guān)聯(lián)的“個人大數(shù)據(jù)”,分析個人生活行為習(xí)慣,為其提供更加周全的個性化服務(wù)。舉例說明大數(shù)據(jù)的關(guān)鍵技術(shù)CommonAvroCommeon是為Hadoop其他子項目提供支持的常用工具,主要包括文件系統(tǒng)、RPC和串行化庫Avro是為Hadoop的子項目,用于數(shù)據(jù)序列化的系統(tǒng),提供了豐富的數(shù)據(jù)結(jié)構(gòu)類型、快速可壓縮的二進制數(shù)據(jù)格式、存儲持續(xù)性數(shù)據(jù)的文件集、遠程調(diào)用的功能和簡單的動態(tài)語言集成功能。HDFS是Hadoop項目的兩個核心之一,它是針對谷歌文件系統(tǒng)的開源實現(xiàn)。HBase是一個提高可靠性、高性能、可伸縮、實時讀寫、分布式的列式數(shù)據(jù)庫,一般采用HDFS作為其底層數(shù)據(jù)存儲。MapReduce是針對谷歌MapReduce的開源實現(xiàn),用于大規(guī)模數(shù)據(jù)集的并行運算。Zoookepper是針對谷歌Chubby的一個開源實現(xiàn),是高效和可靠的協(xié)同工作系統(tǒng),提供分布式鎖之類的基本服務(wù),用于構(gòu)建分布式應(yīng)用,減輕分布式應(yīng)用程序所承擔的協(xié)調(diào)任務(wù)。Hive是一個基于Hadoop的數(shù)據(jù)倉庫工具,可以用于對Hadoop文件中的數(shù)據(jù)集進行數(shù)據(jù)整理、特殊查詢和分布存儲。Pig是一種數(shù)據(jù)流語言和運行環(huán)境,適合于使用Hadoop和MapReducce平臺上查詢大型半結(jié)構(gòu)化數(shù)據(jù)集。Sqoop可以改進數(shù)據(jù)的互操作性,主要用來在H大哦哦哦配合關(guān)系數(shù)據(jù)庫之間交換數(shù)據(jù)。Chukwa是一個開源的、用于監(jiān)控大型分布式系統(tǒng)的數(shù)據(jù)收集系統(tǒng),可以將各種類型的數(shù)據(jù)收集成適合Hadoop處理的文件,并保存在HDFS中供Hadoop進行各種MapReduce操作。第三章試述分布式文件系統(tǒng)設(shè)計的需求。設(shè)計需求含義HDFS的實現(xiàn)情況透明性具備訪問透明性、位置透明性、性能、和伸縮透明性只能提供一定程度的訪問透明性,完全支持位置透明性、性能和伸縮透明性并發(fā)控制客戶端對于文件的讀寫不應(yīng)該影響其他客戶端對同一個文件的讀寫機制非常簡單,任何時候都只允許有一個程序?qū)懭肽硞€文件文件復(fù)制一個文件可以擁有不同位置的多個副本HDFS采用了多副本機制硬件和操作系統(tǒng)的異構(gòu)性可以在不同的操作系統(tǒng)和計算機上實現(xiàn)同樣的客戶端和服務(wù)端程序采用Java語言開發(fā),具有很好的跨平臺能力可伸縮性支持節(jié)點的動態(tài)加入或退出建立在大規(guī)模廉價機器上的分布式文件系統(tǒng)集群,具有很好的伸縮性容錯保證文件服務(wù)在客戶端或者服務(wù)端出現(xiàn)問題的時候能正常使用具有多副本機制和故障自動檢測、恢復(fù)機制安全保證系統(tǒng)的安全性安全性較弱分布式文件系統(tǒng)是如何實現(xiàn)較高水平擴展的?分布式文件系統(tǒng)在物理結(jié)構(gòu)上是由計算機集群中的多個節(jié)點構(gòu)成的,這些節(jié)點分為兩類,一類叫“主節(jié)點”(MasterNode)或者也被稱為“名稱結(jié)點”(NameNode),另一類叫“從節(jié)點”(SlaveNode)或者也被稱為“數(shù)據(jù)節(jié)點”(DataNode)試述HDFS中的塊和普通文件系統(tǒng)中的塊的區(qū)別。答:在傳統(tǒng)的文件系統(tǒng)中,為了提高磁盤讀寫效率,一般以數(shù)據(jù)塊為單位,惡如不是以字節(jié)為單位。HDFS中的塊,默認一個塊大小為64MB,而HDFS中的文件會被拆分成多個塊,每個塊作為獨立的單元進行存儲。HDFS在塊的大小的設(shè)計上明顯要大于普通文件系統(tǒng)。試述HDFS中的名稱節(jié)點和數(shù)據(jù)節(jié)點的具體功能。答:名稱節(jié)點負責(zé)管理分布式文件系統(tǒng)系統(tǒng)的命名空間,記錄分布式文件系統(tǒng)中的每個文件中各個塊所在的數(shù)據(jù)節(jié)點的位置信息;數(shù)據(jù)節(jié)點是分布式文件系統(tǒng)HDFS的工作節(jié)點,負責(zé)數(shù)據(jù)的存儲和讀取,會根據(jù)客戶端或者是名稱節(jié)點的調(diào)度來進行數(shù)據(jù)的存儲和檢索,并向名稱節(jié)點定期發(fā)送自己所存儲的塊的列表。hadoopfs-ls<path>顯示<path>指定的文件的詳細信息hadoopfs-cat<path>將<path>指定的文件的內(nèi)容輸出到標準輸出hadoopfs-mkdir<path>創(chuàng)建<path>指定的文件夾hadoopfs-get[-ignorecrc][-crc]<src><localdst>復(fù)制<src>指定的文件到本地文件系統(tǒng)<localdst>指定的文件或文件夾。-ignorecrc選項復(fù)制CRC校驗失敗的文件。使用-crc選項復(fù)制文件以及CRC信息。hadoopfs-put<localsrc><dst>從本地文件系統(tǒng)中復(fù)制<localsrc>指定的單個或多個源文件到<dst>指定的目標文件系統(tǒng)中。也支持從標準輸入(stdin)中讀取輸入寫入目標文件系統(tǒng)。hadoopfs-rmr<path>刪除<path>指定的文件夾及其的所有文件第四章試述在Hadoop體系架構(gòu)中HBase與其他組成部分的相互關(guān)系。答:HBase利用HadoopMapReduce來處理HBase中的海量數(shù)據(jù),實現(xiàn)高性能計算;利用Zookeeper作為協(xié)同服務(wù),實現(xiàn)穩(wěn)定服務(wù)和失敗恢復(fù);使用HDFS作為高可靠的底層存儲,利用廉價集群提供海量數(shù)據(jù)存儲能力;Sqoop為HBase的底層數(shù)據(jù)導(dǎo)入功能,Pig和Hive為HBase提供了高層語言支持,HBase是BigTable的開源實現(xiàn)。請闡述HBase和BigTable的底層技術(shù)的對應(yīng)關(guān)系答:項目BigTableHBase文件存儲系統(tǒng)GFSHDFS海量數(shù)據(jù)處理MapReduceHadoopMapReduce協(xié)同服務(wù)管理ChubbyZookeeper請闡述HBase和傳統(tǒng)關(guān)系數(shù)據(jù)庫的區(qū)別答:區(qū)別傳統(tǒng)關(guān)系數(shù)據(jù)庫HBase數(shù)據(jù)類型關(guān)系模型數(shù)據(jù)模型數(shù)據(jù)操作插入、刪除、更新、查詢、多表連接插入、查詢、刪除、清空,無法實現(xiàn)表與表之間關(guān)聯(lián)存儲模式基于行模式存儲,元組或行會被連續(xù)地存儲在磁盤也中基于列存儲,每個列族都由幾個文件保存,不同列族的文件是分離的數(shù)據(jù)索引針對不同列構(gòu)建復(fù)雜的多個索引只有一個行鍵索引數(shù)據(jù)維護用最新的當前值去替換記錄中原來的舊值更新操作不會刪除數(shù)據(jù)舊的版本,而是生成一個新的版本可伸縮性很難實現(xiàn)橫向擴展,縱向擴展的空間也比較有限輕易地通過在集群中增加或者減少硬件數(shù)量來實現(xiàn)性能的伸縮HBase有哪些類型的訪問接口?答:HBase提供了NativeJavaAPI,HBaseShell,ThriftGateway,RESTGateWay,Pig,Hive等訪問接口。請以實例說明HBase數(shù)據(jù)模型。列限定符列族列限定符列族答:InfoNameMajorEmail201505001LuoMinMathLuo@201505002LiuJunMathliu@201505003XieYouMathxie@you@163.com行鍵單元格單元格有兩個時間戳行鍵單元格單元格有兩個時間戳ts1和ts2每個時間戳對應(yīng)一個數(shù)據(jù)版本分別解釋HBase中行鍵、列鍵和時間戳的概念行鍵是唯一的,在一個表里只出現(xiàn)一次,否則就是在更新同一行,行鍵可以是任意的字節(jié)數(shù)組。列族需要在創(chuàng)建表的時候就定義好,數(shù)量也不宜過多。列族名必須由可打印字符組成,創(chuàng)建表的時候不需要定義好列。時間戳,默認由系統(tǒng)指定,用戶也可以顯示設(shè)置。使用不同的時間戳來區(qū)分不同的版本。請舉個實例來闡述HBase的概念視圖和物理視圖的不同HBase數(shù)據(jù)概念視圖行鍵時間戳列族contents列族anchor“n.www”T5Anchor:=”CNN”T3Anchor:my.look.ca=”CNN”“n.www”T3Content:html=”<html>...”T2Content:html=”<html>...”T1Content:html=”<html>...”HBase數(shù)據(jù)物理視圖行鍵時間戳列族anchor“n.www”T5Anchor:=”CNN”T4Anchor:my.look.ca=”CNN”行鍵時間戳列族contents“n.www”T3Content:html=”<html>...”T2Content:html=”<html>...”T1Content:html=”<html>...”在HBase的概念視圖中,一個表可以視為一個稀疏、多維的映射關(guān)系。在物理視圖中,一個表會按照屬于同一列族的數(shù)據(jù)保存在一起試述HBase各功能組建及其作用(1)庫函數(shù):鏈接到每個客戶端;(2)一個Master主服務(wù)器:主服務(wù)器Master主要負責(zé)表和Region的管理工作;(3)許多個Region服務(wù)器:Region服務(wù)器是HBase中最核心的模塊,負責(zé)維護分配給自己的Region,并響應(yīng)用戶的讀寫請求請闡述HBase的數(shù)據(jù)分區(qū)機制。答:HBase采用分區(qū)存儲,一個大的表會被分拆許多個Region,這些Region會被分發(fā)到不同的服務(wù)器上實現(xiàn)分布式存儲。HBase中的分區(qū)是如何定位的。通過構(gòu)建的映射表的每個條目包含兩項內(nèi)容,一個是Regionde標識符,另一個是Region服務(wù)器標識,這個條目就標識Region和Region服務(wù)器之間的對應(yīng)關(guān)系,從而就可以知道某個Region被保存在哪個Region服務(wù)器中。試述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位置信息請闡述HBase的三層結(jié)構(gòu)下,客戶端是如何訪問到數(shù)據(jù)的。答:首先訪問Zookeeper,獲取-ROOT表的位置信息,然后訪問-Root-表,獲得.MATA.表的信息,接著訪問.MATA.表,找到所需的Region具體位于哪個Region服務(wù)器,最后才會到該Region服務(wù)器讀取數(shù)據(jù)。試述HBase系統(tǒng)基本架構(gòu)以及每個組成部分的作用。(1)客戶端客戶端包含訪問HBase的接口,同時在緩存中維護著已經(jīng)訪問過的Region位置信息,用來加快后續(xù)數(shù)據(jù)訪問過程(2)Zookeeper服務(wù)器Zookeeper可以幫助選舉出一個Master作為集群的總管,并保證在任何時刻總有唯一一個Master在運行,這就避免了Master的“單點失效”問題(3)Master主服務(wù)器Master主要負責(zé)表和Region的管理工作:管理用戶對表的增加、刪除、修改、查詢等操作;實現(xiàn)不同Region服務(wù)器之間的負載均衡;在Region分裂或合并后,負責(zé)重新調(diào)整Region的分布;對發(fā)生故障失效的Region服務(wù)器上的Region進行遷移(4)Region服務(wù)器Region服務(wù)器是HBase中最核心的模塊,負責(zé)維護分配給自己的Region,并響應(yīng)用戶的讀寫請求請闡述Region服務(wù)器向HDFS文件系統(tǒng)中讀寫數(shù)據(jù)的基本原理Region服務(wù)器內(nèi)部管理一系列Region對象和一個HLog文件,其中,HLog是磁盤上面的記錄文件,它記錄著所有的更新操作。每個Region對象又是由多個Store組成的,每個Store對象了表中的一個列族的存儲。每個Store又包含了MemStore和若干個StoreFile,其中,MemStore是在內(nèi)存中的緩存。試述HStore的工作原理每個Store對應(yīng)了表中的一個列族的存儲。每個Store包括一個MenStore緩存和若干個StoreFile文件。MenStore是排序的內(nèi)存緩沖區(qū),當用戶寫入數(shù)據(jù)時,系統(tǒng)首先把數(shù)據(jù)放入MenStore緩存,當MemStore緩存滿時,就會刷新到磁盤中的一個StoreFile文件中,當單個StoreFile文件大小超過一定閾值時,就會觸發(fā)文件分裂操作。試述HLog的工作原理答:HBase系統(tǒng)為每個Region服務(wù)器配置了一個HLog文件,它是一種預(yù)寫式日志(WriteAheadLog),用戶更新數(shù)據(jù)必須首先寫入日志后,才能寫入MemStore緩存,并且,直到MemStore緩存內(nèi)容對應(yīng)的日志已經(jīng)寫入磁盤,該緩存內(nèi)容才能被刷寫到磁盤。在HBase中,每個Region服務(wù)器維護一個HLog,而不是為每個Region都單獨維護一個HLog。請說明這種做法的優(yōu)缺點。優(yōu)點: 多個Region對象的更新操作所發(fā)生的日志修改,只需要不斷把日志記錄追加到單個日志文件中,不需要同時打開、寫入到多個日志文件中。缺點:如果一個Region服務(wù)器發(fā)生故障,為了恢復(fù)其上次的Region對象,需要將Region服務(wù)器上的對象,需要將Region服務(wù)器上的HLog按照其所屬的Region對象進行拆分,然后分發(fā)到其他Region服務(wù)器上執(zhí)行恢復(fù)操作。當一臺Region服務(wù)器意外終止時,Master如何發(fā)現(xiàn)這種意外終止情況?為了恢復(fù)這臺發(fā)生意外的Region服務(wù)器上的Region,Master應(yīng)該做出哪些處理(包括如何使用HLog進行恢復(fù))?Zookeeper會實時監(jiān)測每個Region服務(wù)器的狀態(tài),當某個Region服務(wù)器發(fā)生故障時,Zookeeper會通知Master。Master首先會處理該故障Region服務(wù)器上面遺留的HLog文件,這個遺留的HLog文件中包含了來自多個Region對象的日志記錄。系統(tǒng)會根據(jù)每條日志記錄所屬的Region對象對HLog數(shù)據(jù)進行拆分,分別放到相應(yīng)Region對象的目錄下,然后,再將失效的Region重新分配到可用的Region服務(wù)器中,并把與該Region對象相關(guān)的HLog日志記錄也發(fā)送給相應(yīng)的Region服務(wù)器。Region服務(wù)器領(lǐng)取到分配給自己的Region對象以及與之相關(guān)的HLog日志記錄以后,會重新做一遍日志記錄中的各種操作,把日志記錄中的數(shù)據(jù)寫入到MemStore緩存中,然后,刷新到磁盤的StoreFile文件中,完成數(shù)據(jù)恢復(fù)。第五章如何準確理解NoSQL的含義?NoSQL是一種不同于關(guān)系數(shù)據(jù)庫的數(shù)據(jù)庫管理系統(tǒng)設(shè)計方式,是對非關(guān)系型數(shù)據(jù)庫的一類統(tǒng)稱,它采用的數(shù)據(jù)模型并非傳統(tǒng)關(guān)系數(shù)據(jù)庫的關(guān)系模型,而是類似鍵/值、列族、文檔等非關(guān)系模型。試述關(guān)系數(shù)據(jù)庫在哪些方面無法滿族Web2.0應(yīng)用的需求。 關(guān)系數(shù)據(jù)庫已經(jīng)無法滿足Web2.0的需求。主要表現(xiàn)在以下幾個方面:(1)無法滿足海量數(shù)據(jù)的管理需求(2)無法滿足數(shù)據(jù)高并發(fā)的需求(3)無法滿足高可擴展性和高可用性的需求請比較NoSQL數(shù)據(jù)庫和關(guān)系數(shù)據(jù)庫的優(yōu)缺點。比較標準RDBMSNoSQL備注數(shù)據(jù)庫原理完全支持部分支持RDBMS有關(guān)系代數(shù)理論作為基礎(chǔ)NoSQL沒有統(tǒng)一的理論基礎(chǔ)數(shù)據(jù)規(guī)模大超大RDBMS很難實現(xiàn)橫向擴展,縱向擴展的空間也比較有限,性能會隨著數(shù)據(jù)規(guī)模的增大而降低NoSQL可以很容易通過添加更多設(shè)備來支持更大規(guī)模的數(shù)據(jù)數(shù)據(jù)庫模式固定靈活RDBMS需要定義數(shù)據(jù)庫模式,嚴格遵守數(shù)據(jù)定義和相關(guān)約束條件NoSQL不存在數(shù)據(jù)庫模式,可以自由靈活定義并存儲各種不同類型的數(shù)據(jù)查詢效率快可以實現(xiàn)高效的簡單查詢,但是不具備高度結(jié)構(gòu)化查詢等特性,復(fù)雜查詢的性能不盡人意RDBMS借助于索引機制可以實現(xiàn)快速查詢(包括記錄查詢和范圍查詢)很多NoSQL數(shù)據(jù)庫沒有面向復(fù)雜查詢的索引,雖然NoSQL可以使用MapReduce來加速查詢,但是,在復(fù)雜查詢方面的性能仍然不如RDBMS一致性強一致性弱一致性RDBMS嚴格遵守事務(wù)ACID模型,可以保證事務(wù)強一致性很多NoSQL數(shù)據(jù)庫放松了對事務(wù)ACID四性的要求,而是遵守BASE模型,只能保證最終一致性數(shù)據(jù)完整性容易實現(xiàn)很難實現(xiàn)任何一個RDBMS都可以很容易實現(xiàn)數(shù)據(jù)完整性,比如通過主鍵或者非空約束來實現(xiàn)實體完整性,通過主鍵、外鍵來實現(xiàn)參照完整性,通過約束或者觸發(fā)器來實現(xiàn)用戶自定義完整性但是,在NoSQL數(shù)據(jù)庫卻無法實現(xiàn)擴展性一般好RDBMS很難實現(xiàn)橫向擴展,縱向擴展的空間也比較有限NoSQL在設(shè)計之初就充分考慮了橫向擴展的需求,可以很容易通過添加廉價設(shè)備實現(xiàn)擴展可用性好很好RDBMS在任何時候都以保證數(shù)據(jù)一致性為優(yōu)先目標,其次才是優(yōu)化系統(tǒng)性能,隨著數(shù)據(jù)規(guī)模的增大,RDBMS為了保證嚴格的一致性,只能提供相對較弱的可用性大多數(shù)NoSQL都能提供較高的可用性標準化是否RDBMS已經(jīng)標準化(SQL)NoSQL還沒有行業(yè)標準,不同的NoSQL數(shù)據(jù)庫都有自己的查詢語言,很難規(guī)范應(yīng)用程序接口StoneBraker認為:NoSQL缺乏統(tǒng)一查詢語言,將會拖慢NoSQL發(fā)展技術(shù)支持高低RDBMS經(jīng)過幾十年的發(fā)展,已經(jīng)非常成熟,Oracle等大型廠商都可以提供很好的技術(shù)支持NoSQL在技術(shù)支持方面仍然處于起步階段,還不成熟,缺乏有力的技術(shù)支持可維護性復(fù)雜復(fù)雜RDBMS需要專門的數(shù)據(jù)庫管理員(DBA)維護NoSQL數(shù)據(jù)庫雖然沒有DBMS復(fù)雜,也難以維護5.試述NoSQL數(shù)據(jù)庫的四大類型答:鍵值數(shù)據(jù)庫、列族數(shù)據(jù)庫、文檔數(shù)據(jù)庫和圖數(shù)據(jù)庫6.試述鍵值數(shù)據(jù)庫、列族數(shù)據(jù)庫、文檔數(shù)據(jù)庫和圖數(shù)據(jù)庫的適用場合和優(yōu)缺點。數(shù)據(jù)庫適用場合優(yōu)點缺點鍵值數(shù)據(jù)庫通過鍵而是通過值來查的業(yè)務(wù)擴展性好,靈活性好,大量寫操作時性能高無法存儲結(jié)構(gòu)化信息,條件查詢效率較低列族數(shù)據(jù)庫不需要ACID事務(wù)支持的情形查找速度快,可擴展性強,容易進行分布式擴展,復(fù)雜性低功能較少,大都不支持強事務(wù)一致性文檔數(shù)據(jù)庫只在相同的文檔上添加事務(wù)性能好(高并發(fā)),靈活性高,復(fù)雜性低,數(shù)據(jù)結(jié)構(gòu)靈活提供嵌入式文檔功能,將經(jīng)常查詢的數(shù)據(jù)存儲在同一個文檔中既可以根據(jù)鍵來構(gòu)建索引,也可以根據(jù)內(nèi)容構(gòu)建索引缺乏統(tǒng)一的查詢語法圖形數(shù)據(jù)庫具有高度相互關(guān)聯(lián)關(guān)系的數(shù)據(jù)靈活性高,支持復(fù)雜的圖形算法,可用于構(gòu)建復(fù)雜的關(guān)系圖譜復(fù)雜性高,只能支持一定的數(shù)據(jù)規(guī)模7.試述CAP理論的具體含義。答:所謂的CAP指的是:C(Consistency):一致性,是指任何一個讀操作總是能夠讀到之前完成的寫操作的結(jié)果,也就是在分布式環(huán)境中,多點的數(shù)據(jù)是一致的,或者說,所有節(jié)點在同一時間具有相同的數(shù)據(jù)A:(Availability):可用性,是指快速獲取數(shù)據(jù),可以在確定的時間內(nèi)返回操作結(jié)果,保證每個請求不管成功或者失敗都有響應(yīng);P(ToleranceofNetworkPartition):分區(qū)容忍性,是指當出現(xiàn)網(wǎng)絡(luò)分區(qū)的情況時(即系統(tǒng)中的一部分節(jié)點無法和其他節(jié)點進行通信),分離的系統(tǒng)也能夠正常運行,也就是說,系統(tǒng)中任意信息的丟失或失敗不會影響系統(tǒng)的繼續(xù)運作。8.請舉例說明不同產(chǎn)品在設(shè)計時是如何運用CAP理論的。9.試述數(shù)據(jù)庫的ACID四性的含義1.原子性(Atomicity)指事務(wù)必須是原子工作單元,對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。2.一致性(consistency)指事務(wù)在完成時,必須使所有的數(shù)據(jù)都保持一致狀態(tài)。隔離性(Isolation)指并發(fā)事務(wù)所做的修改必須與其他并發(fā)事務(wù)所做的修改隔離。持久性(Durability)指事務(wù)完成之后,它對于系統(tǒng)的影響是永久性的,該修改即使出現(xiàn)致命的系統(tǒng)故障也將一直保持。10.試述BASE的具體含義BASE的基本含義是基本可用(BasicallyAvailble)、軟狀態(tài)(Soft-state)和最終一致性(Eventualconsistency)11.請解釋軟狀態(tài)、無狀態(tài)、硬狀態(tài)的具體含義?!败洜顟B(tài)(soft-state)”是與“硬狀態(tài)(hard-state)”相對應(yīng)的一種提法。數(shù)據(jù)庫保存的數(shù)據(jù)是“硬狀態(tài)”時,可以保證數(shù)據(jù)一致性,即保證數(shù)據(jù)一直是正確的。“軟狀態(tài)”是指狀態(tài)可以有一段時間不同步,具有一定的滯后性。12.什么是最終一致性?最終一致性根據(jù)更新數(shù)據(jù)后各進程訪問到數(shù)據(jù)的時間和方式的不同,又可以區(qū)分為:會話一致性:它把訪問存儲系統(tǒng)的進程放到會話(session)的上下文中,只要會話還存在,系統(tǒng)就保證“讀己之所寫”一致性。如果由于某些失敗情形令會話終止,就要建立新的會話,而且系統(tǒng)保證不會延續(xù)到新的會話;單調(diào)寫一致性:系統(tǒng)保證來自同一個進程的寫操作順序執(zhí)行。系統(tǒng)必須保證這種程度的一致性,否則就非常難以編程了單調(diào)讀一致性:如果進程已經(jīng)看到過數(shù)據(jù)對象的某個值,那么任何后續(xù)訪問都不會返回在那個值之前的值因果一致性:如果進程A通知進程B它已更新了一個數(shù)據(jù)項,那么進程B的后續(xù)訪問將獲得A寫入的最新值。而與進程A無因果關(guān)系的進程C的訪問,仍然遵守一般的最終一致性規(guī)則“讀己之所寫”一致性:可以視為因果一致性的一個特例。當進程A自己執(zhí)行一個更新操作之后,它自己總是可以訪問到更新過的值,絕不會看到舊值試述不一致性窗口的含義。所有后續(xù)的訪問都可以讀取到操作OP寫入的最新值。從OP操作完成到后續(xù)訪問可以最終讀取到OP寫入的最新值,這之間的時間間隔稱為“不一致性窗口”。14最終一致性根據(jù)更新數(shù)據(jù)后各進程訪問到數(shù)據(jù)的時間和方式的不同,又可以分為哪些不同類型的一致性?會話一致性、單調(diào)寫一致性、單調(diào)寫一致性、因果一致性和“讀己之所寫”一致性。什么是NewSQL數(shù)據(jù)庫?NewSQL是對各種新的可擴展、高性能數(shù)據(jù)庫的簡稱,這類數(shù)據(jù)庫不僅具有NoSQL對海量數(shù)據(jù)的存儲管理能力,還保持了傳統(tǒng)數(shù)據(jù)庫支持ACID和SQL特性。第六章1.試述云數(shù)據(jù)庫的概念。答:云數(shù)據(jù)庫是部署和虛擬化在云計算環(huán)境中的數(shù)據(jù)庫。云數(shù)據(jù)庫是在云計算的大背景下發(fā)展起來的一種新興的共享基礎(chǔ)架構(gòu)的方法,它極大地增強了數(shù)據(jù)庫的存儲能力,消除了人員、硬件、軟件的重復(fù)配置,讓軟、硬件升級變得更加容易,同時,也虛擬化了許多后端功能。云數(shù)據(jù)庫具有高可擴展性、高可用性、采用多租形式和支持資源有效分發(fā)等特點。

2.與傳統(tǒng)的軟件使用方式相比,云計算這種模式具有哪些明顯的優(yōu)勢?3.云數(shù)據(jù)庫有哪些特性?答:1)動態(tài)可擴展 2)高可用性 3)較低的使用代價4)易用性 5)高性能 6)免維護 7)安全4.試述云數(shù)據(jù)庫的影響。答:

在大數(shù)據(jù)時代,每個企業(yè)幾乎每天都在不斷產(chǎn)生大量的數(shù)據(jù)。企業(yè)類型不同,對于存儲的需求也千差萬別,而云數(shù)據(jù)庫可以很好地滿足不同企業(yè)的個性化存儲需求。

首先,云數(shù)據(jù)庫可以滿足大企業(yè)的海量數(shù)據(jù)存儲需求。云數(shù)據(jù)庫在當前數(shù)據(jù)爆炸的大數(shù)據(jù)時代具有廣闊的應(yīng)用前景。傳統(tǒng)的關(guān)系數(shù)據(jù)庫難以水平擴展,相本無法存儲如此海量的數(shù)據(jù)。因此,具有高可擴展性的云數(shù)據(jù)庫就成為企業(yè)海量數(shù)據(jù)存儲管理的很好選擇。

其次,云數(shù)據(jù)庫可以滿足中小企業(yè)的低成本數(shù)據(jù)存儲需求。中小企業(yè)在IT

基礎(chǔ)設(shè)施方面的投人比較有限,非??释麖牡谌椒奖恪⒖旖?、廉價地獲得數(shù)據(jù)庫服務(wù)。云數(shù)據(jù)庫采用多租戶方式同時為多個用戶提供服務(wù),降低了單個用戶的使用成本,而且用戶使用云數(shù)據(jù)庫服務(wù)通常按需付費,不會浪費資源造成額外支出,因此,云數(shù)據(jù)庫使用成本很低,對于中小企業(yè)而言可以大大降低企業(yè)的信息化門檻,讓企業(yè)在付出較低成本的同時,獲得優(yōu)質(zhì)的專業(yè)級數(shù)據(jù)庫服務(wù),從而有效提升企業(yè)信息化水平。

另外,云數(shù)據(jù)庫可以滿足企業(yè)動態(tài)變化的數(shù)據(jù)存儲需求。企業(yè)在不同時期需要存儲的數(shù)據(jù)量是不斷變化的,有時增加,有時減少。在小規(guī)模應(yīng)用的情況下,系統(tǒng)負載的變化可以由系統(tǒng)空閑的多余資源來處理,但是,在大規(guī)模應(yīng)用的情況下,傳統(tǒng)的關(guān)系數(shù)據(jù)庫由于其伸縮性較差,不僅無法滿足應(yīng)用需求,而且會給企業(yè)帶來高昂的存儲成本和管理開銷。而云數(shù)據(jù)庫的良好伸縮性,可以讓企業(yè)在需求增加時立即獲得數(shù)據(jù)庫能力的提升,在需求減少時立即釋放多余的數(shù)據(jù)庫能力,較好地滿足企業(yè)的動態(tài)數(shù)據(jù)存儲需求。

5.舉例說明云數(shù)據(jù)庫廠商及其代表性產(chǎn)品。答:云數(shù)據(jù)庫供應(yīng)商主要分為三類。傳統(tǒng)的數(shù)據(jù)庫廠商,如Teradata、Oracle、IBMDB2和MicrosoftSQL

Server等。涉足數(shù)據(jù)庫市場的云供應(yīng)商,如Amazon、Google.Yahoo!、阿里、百度、騰訊等。新興廠商,如IVertica.LongJump

和EnterpriseDB等。7.試述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ù)庫連接,當MySQL實例發(fā)生故障時,系統(tǒng)必須自動執(zhí)行故障恢復(fù),所有故障處理過程對于用戶而言是透明的,用戶不會感知到后臺發(fā)生的一切。

為了實現(xiàn)容災(zāi),UMP系統(tǒng)會為每個用戶創(chuàng)建兩個MySQL實例,一個是主庫,一個是從庫,而且,這兩個MySQL

實例之間互相把對方設(shè)置為備份機,任意一個MySQL實例上面發(fā)生的更新都會復(fù)制到對方。同時,Proxy服務(wù)器可以保證只向主庫寫人數(shù)據(jù)。

2.讀寫分離

由于每個用戶都有兩個MySQL實例,即主庫和從庫,因此,可以充分利用主從庫實現(xiàn)用戶讀寫操作的分離,實現(xiàn)負載均衡。UMP系統(tǒng)實現(xiàn)了對于用戶透明的讀寫分離功能,當整個功能被開啟時,負責(zé)向用戶提供訪問MySQL數(shù)據(jù)庫服務(wù)的Proxy

服務(wù)器,就會對用戶發(fā)起的SQL

語句進行解析,如果屬于寫操作,就直接發(fā)送到主庫,如果是讀操作,就會被均衡地發(fā)送到主庫和從庫上執(zhí)行。

3.分庫分表

UMP支持對用戶透明的分庫分表(Shard/Horizontal

Partition)。但是,用戶在創(chuàng)建賬號的時候需要指定類型為多實例,并且設(shè)置實例的個數(shù),系統(tǒng)會根據(jù)用戶設(shè)置來創(chuàng)建多組MySQL實例。除此以外,用戶還需要自己設(shè)定分庫分表規(guī)則,如需要確定分區(qū)字段,也就是根據(jù)哪個字段進行分庫分表,還要確定分區(qū)字段里的值如何映射到不同的MySQL

實例上。

4.資源管理

UMP系統(tǒng)采用資源池機制來管理數(shù)據(jù)庫服務(wù)器上的CPU、內(nèi)存、磁盤等計算資源,所有的計算資源都放在資源池內(nèi)進行統(tǒng)一分配,資源池是為MySQL

實例分配資源的基本單位。整個集群中的所有服務(wù)器會根據(jù)其機型、所在機房等因素被劃分為多個資源池,每臺服務(wù)器會被加人到相應(yīng)的資源池。在資源池劃分的基礎(chǔ)上,UMP還在每臺服務(wù)器內(nèi)部采用Cgroup將資源進一步地細化,從而可以限制每個進程組使用資源的上限,同時保證進程組之間相互隔離。

5.資源調(diào)度

UMP系統(tǒng)中有3種規(guī)格的用戶,分別是數(shù)據(jù)量和流量比較小的用戶、中等規(guī)模用戶以及需要分庫分表的用戶。多個小規(guī)模用戶可以共享同一個MySQL實例。對于中等規(guī)模的用戶,每個用戶獨占個MySQL

實例。用戶可以根據(jù)自己的需求來調(diào)整內(nèi)存空間和磁盤空間,如果用戶需要更多的資源,就可以遷移到資源有空閑或者具有更高配置的服務(wù)器上對于分庫分表的用戶,會占有多個獨立的MySQL

實例,這些實例既可以共存在同一臺物理機上,也可以每個實例獨占一臺物理機。

UMP通過MySQL實例的遷移來實現(xiàn)資源調(diào)度。借助于阿里集團中間件團隊開發(fā)的愚公系統(tǒng),UMP

可以實現(xiàn)在不停機的情況下動態(tài)擴容、縮容和遷移。

6.資源隔離

當多個用戶共享同一個MySQL

實例或者多個MySQL

實例共存在同一個物理機上時,為了保護用戶應(yīng)用和數(shù)據(jù)的安全,必須實現(xiàn)資源隔離,否則,某個用戶過多消耗系統(tǒng)資源會嚴重影響到其他用戶的操作性能。7.數(shù)據(jù)安全

數(shù)據(jù)安全是讓用戶放心使用云數(shù)據(jù)庫產(chǎn)品的關(guān)鍵,尤其是企業(yè)用戶,數(shù)據(jù)庫中存放了很多業(yè)務(wù)數(shù)據(jù),有些屬于商業(yè)機密,一旦泄露,會給企業(yè)造成損失。UMP

系統(tǒng)設(shè)計了多種機制來保證數(shù)據(jù)安全。SSL

數(shù)據(jù)庫連接。

數(shù)據(jù)訪問IP

白名單。記錄用戶操作日志。

SQL攔截。

13.

UMP

系統(tǒng)是如何保障數(shù)據(jù)安全的?答:SSL

數(shù)據(jù)庫連接。

SSL(SecureSocketsLayer)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議,它在傳輸層對網(wǎng)絡(luò)連接進行加密。Proxy服務(wù)器實現(xiàn)了完整的MySQL客戶端服務(wù)器協(xié)議,可以與客戶端之間建立SSL數(shù)據(jù)庫連接。數(shù)據(jù)訪問IP

白名單。可以把允許訪問云數(shù)據(jù)庫的IP地址放入“白名單”,只有白名單內(nèi)的IP地址才能訪問,其他IP地址的訪問都會被拒絕,從而進一步保證賬戶安全。記錄用戶操作日志。

用戶的所有操作記錄都會被記錄到日志分析服務(wù)器,通過檢查用戶操作記錄,可以發(fā)現(xiàn)隱藏的安全漏洞。SQL攔截。Proxy服務(wù)器可以根據(jù)要求攔截多種類型的SQL語句,比如全表掃描語句"select*”。15.

簡述RDS

中實例與數(shù)據(jù)庫的概念。答:

RDS實例或簡稱“實例”,是用戶購買RDS服務(wù)的基本單位。在實例中可以創(chuàng)建多個數(shù)據(jù)庫,可以使用常見的數(shù)據(jù)庫客戶端連接、管理及使用數(shù)據(jù)庫??梢酝ㄟ^RDS管理控制臺或OPEN

API來創(chuàng)建、修改和刪除數(shù)據(jù)庫。各實例之間相互獨立、資源隔離,相互之間不存在CPU、內(nèi)存、IOPS等搶占問題。但是,同一實例中的不同數(shù)據(jù)庫之間是資源共享的。每個實例擁有其自己的特性,如數(shù)據(jù)庫類型、版本等,系統(tǒng)有相應(yīng)的參數(shù)來控制實例行為。用戶所購買RDS實例的性能,取決于購買RDS實例時所選擇的配置,可供用戶選擇的硬件配置項為內(nèi)存和磁盤容量。 RDS數(shù)據(jù)庫或簡稱“數(shù)據(jù)庫”,是用戶在一個實例下創(chuàng)建的邏輯單元,一個實例可以創(chuàng)建多個數(shù)據(jù)庫,在實例內(nèi)數(shù)據(jù)庫命名唯一,所有數(shù)據(jù)庫都會共享該實例下的資源,如CPU、內(nèi)存、磁盤容量等。RDS不支持使用標準的SQL

語句或客戶端工具創(chuàng)建數(shù)據(jù)庫,必須使用OPEN

API或RDS管理控制臺進行操作。

16.

列舉連接RDS

for

MySQL

數(shù)據(jù)庫的4

種方法。答:

方法1:

使用客戶端MySQL-Front訪問。使用客戶端MySQL-Front,在連接Host

框中輸人數(shù)據(jù)實例鏈接地址、端口(默認3306)、數(shù)據(jù)庫用戶名和數(shù)據(jù)庫密碼后,單擊“確定”按鈕即可。

方法2:使用數(shù)據(jù)庫管理T

具Navicat

MySQL。Navicat_MySQL

是一套專為MySQL

設(shè)計的強大的數(shù)據(jù)庫管理及開發(fā)工具,可以在連接輸人框中輸人數(shù)據(jù)實例地址、端口(默認3306

)、數(shù)據(jù)庫用戶名和數(shù)據(jù)庫密碼后,單擊“確定”按鈕即可。

方法3:

使用MySQL

命令登錄。用戶安裝MySQL

客戶端后,可進人命令行方式連接數(shù)據(jù)庫。命令格式如下。

mysql-u

user_name-h-P3306-pxxxx

其中,-u指定的是用戶名,-h指定的是主機名,-P指定的是端口,-p指定的是密碼。

方法4:

使用阿里云控制臺iDB

Cloud訪問。阿里云控制臺iDB

Cloud的頁面如圖6-7

所示,RDS

連接地址以及端口不需要再輸人,只需在“用戶名”中輸人數(shù)據(jù)庫的賬號,在“密碼”欄中輸人數(shù)據(jù)庫賬號的密碼,便可以登錄RDS進行數(shù)據(jù)操作了。

第七章1.試述MapReduce和Hadoop的關(guān)系。答:

谷歌公司最先提出了分布式并行編程模型MapReduce,HadoopMapReduce是它的開源實現(xiàn)。谷歌的MapReduce運行在分布式文件系統(tǒng)GFS上,與谷歌類似,HadoopMapReduce運行在分布式文件系統(tǒng)HDFS上。相對而言,HadoopMapReduce

要比谷歌MapReduce

的使用門檻低很多,程序員即使沒有任何分布式程序開發(fā)經(jīng)驗,也可以很輕松地開發(fā)出分布式程序并部署到計算機集群中。

2.MapReduce

是處理大數(shù)據(jù)的有力工具,但不是每個任務(wù)都可以使用MapReduce

來進行處理。試述適合用MapReduce來處理的任務(wù)或者數(shù)據(jù)集需滿足怎樣的要求。答:

適合用MapReduce來處理的數(shù)據(jù)集,需要滿足一個前提條件:

待處理的數(shù)據(jù)集可以分解成許多小的數(shù)據(jù)集,而且每一個小數(shù)據(jù)集都可以完全并行地進行處理。

3.MapReduce模型采用Master(JobTracker)-Slave(TaskTracker)結(jié)構(gòu),試描述JobTracker和TasKTracker的功能。

答:

MapReduce

框架采用了Master/Slave

架構(gòu),包括一個Master

和若干個Slave。Master

上運行JobTracker,Slave

上運行TaskTrackero

用戶提交的每個計算作業(yè),會被劃分成若千個任務(wù)。JobTracker

負責(zé)作業(yè)和任務(wù)的調(diào)度,監(jiān)控它們的執(zhí)行,并重新調(diào)度已經(jīng)失敗的任務(wù)。TaskTracker負責(zé)執(zhí)行由JobTracker指派的任務(wù)。

6.試述MapReduce的工作流程(需包括提交任務(wù)、Map、Shuffle、Reduce的過程)。

9.MapReduce中有這樣一個原則:移動計算比移動數(shù)據(jù)更經(jīng)濟。試述什么是本地計算,并分析為何要采用本地計算。答:

MapReduce設(shè)計的一個理念就是“計算向數(shù)據(jù)靠攏”,而不是“數(shù)據(jù)向計算靠攏”,因為移動數(shù)據(jù)需要大量的網(wǎng)絡(luò)傳輸開銷,尤其是在大規(guī)模數(shù)據(jù)環(huán)境下,這種開銷尤為驚人,所以,移動計算要比移動數(shù)據(jù)更加經(jīng)濟。本地計算:在一個集群中,只要有可能,MapReduce框架就會將Map程序就近地在HDFS數(shù)據(jù)所在的節(jié)點運行,即將計算節(jié)點和存儲節(jié)點放在一起運行,從而減少了節(jié)點間的數(shù)據(jù)移動開銷。

10.試說明一個MapReduce程序在運行期間,所啟動的Map任務(wù)數(shù)量和Reduce

任務(wù)數(shù)量各是由什么因素決定的。

11.是否所有的MapReduce程序都需要經(jīng)過Map和Reduce這兩個過程?如果不是,請舉例說明。

答:不是。對于關(guān)系的選擇運算,只需要Map過程就能實現(xiàn),對于關(guān)系R

中的每個元組t,檢測是否是滿足條件的所需元組,如果滿足條件,則輸出鍵值對<,>,也就是說,鍵和值都是t。這時的Reduce函數(shù)就只是一個恒等式,對輸入不做任何變換就直接輸出。

12.試分析為何采用Combiner可以減少數(shù)據(jù)傳輸量?是否所有的MapReduce程序都可以采用Combiner?為什么?答:

對于每個分區(qū)內(nèi)的所有鍵值對,后臺線程會根據(jù)key

對它們進行內(nèi)存排序(Sort

),排序是MapReduce

的默認操作。排序結(jié)束后,還包含一個可選的合并(Combine

)操作。如果用戶事先沒有定義Combiner

函數(shù),就不用進行合并操作。如果用戶事先定義了Combiner

函數(shù),則這個時候會執(zhí)行合并操作,從而減少需要溢寫到磁盤的數(shù)據(jù)量。

所謂“合并”,是指將那些具有相同key

的<key,value>的value

加起來,比如,有兩個鍵值對<*xmu",1>和<*xmu",1>,經(jīng)過合并操作以后就可以得到一個鍵值對<*xmu",2>,減少了鍵值對的數(shù)量。 不過,并非所有場合都可以使用Combiner,因為,Combiner的輸出是Reduce任務(wù)的輸人,Combiner絕不能改變Reduce任務(wù)最終的計算結(jié)果,一般而言,累加、最大值等場景可以使用合并操作。

13.MapReduce程序的輸入文件、輸出文件都存儲在HDFS中,而在Map任務(wù)完成時的中間結(jié)果則存儲在本地磁盤中。試分析中間結(jié)果存儲在本地磁盤而不是HDFS上有何優(yōu)缺點。

答:

第八章試述在Hadoop推出之后其優(yōu)化與發(fā)展主要體現(xiàn)在哪兩個方面。答:Hadoop對MapReduce和GDFS的許多方面做了有針對性的改進提升。試述HDFS1.0中只包含一個名稱節(jié)點會帶來哪些問題。答:HDFS1.0采用單點名稱節(jié)點的設(shè)計,不僅會帶來單點故障問題,還存在可擴展性、性能和隔離性等問題。在可擴展性方面,名稱節(jié)點把整個HDFS文件系統(tǒng)中的元數(shù)據(jù)信息都保存在自己的內(nèi)存中,HDFS1.0中只有一個名稱節(jié)點,不可以水平擴展,而單個名稱節(jié)點的內(nèi)存空間是由上限的,這限制了系統(tǒng)中數(shù)據(jù)塊、文件和目錄的數(shù)目。在系統(tǒng)整體性能方面,整個HDFS文件系統(tǒng)的性能會受限于單個名稱節(jié)點的吞吐量。在隔離性方面,單個名稱節(jié)點難以提供不同程序之間的隔離性,一個程序可能會影響會影響其他運行的程序。請描述HDFSHA架構(gòu)組成組建及其具體功能。答:在一個典型的HA集群中,一般設(shè)置兩個名稱節(jié)點,其中一個名稱節(jié)點處于“活躍”狀態(tài),另一個處于“待命”狀態(tài)。處于活躍狀態(tài)的名稱節(jié)點負責(zé)對外處理所有客戶端的請求,而處于待命狀態(tài)的名稱節(jié)點則作為備用節(jié)點,保存了足夠多的系統(tǒng)元數(shù)據(jù),當名稱節(jié)點出現(xiàn)故障時提供快速回復(fù)能力也就是說,在HDFSHA中,處于待命狀態(tài)的名稱節(jié)點提供了“熱備份”,一旦活躍名稱節(jié)點出現(xiàn)故障,就可以立即切換到待命名稱節(jié)點,不會影響到系統(tǒng)的正常對外服務(wù)。請分析HDFSHA架構(gòu)中數(shù)據(jù)節(jié)點如何和名稱節(jié)點保持通信。答:在HDFS聯(lián)邦中,所有名稱節(jié)點會共享底層的數(shù)據(jù)節(jié)點存儲資源。每個數(shù)據(jù)節(jié)點要向集群中所有的名稱節(jié)點注冊,并周期性地向名稱節(jié)點發(fā)送“心跳”和塊信息,報告自己的狀態(tài),同時也會處理來自名稱節(jié)點的指令。6、請描述HDFS聯(lián)邦中“塊池”的概念,并分析為什么HDFS聯(lián)邦中的一個名稱節(jié)點失效,也不會影響到與它相關(guān)的數(shù)據(jù)節(jié)點繼續(xù)為其他名稱節(jié)點提供服務(wù)。答:HDFS聯(lián)邦擁有多個獨立的命名空間,其中,每一個命名空間管理屬于自己的一組塊,這些屬于同一個命名空間的塊構(gòu)成一個“塊池”。每個數(shù)據(jù)節(jié)點會為多個塊池提供塊的存儲??梢钥闯?,數(shù)據(jù)節(jié)點是一個物理邏輯,而塊池則屬于邏輯概念,一個塊池是一組塊的邏輯集合,塊池中的各個塊實際上是存儲在各個不同的數(shù)據(jù)節(jié)點中的。因此HDFS聯(lián)邦中的一個名稱節(jié)點失效,也不會影響到與它相關(guān)的數(shù)據(jù)節(jié)點繼續(xù)為其他名稱節(jié)點提供服務(wù)。請闡述MapReduce1.0體系結(jié)構(gòu)中存在的問題。答:(1)存在單點故障;JobTracker“大包大攬”導(dǎo)致任務(wù)過重;容易出現(xiàn)內(nèi)存溢出;資源劃分不合理。請描述YARN架構(gòu)中各組件的功能。答:組件功能ResourceManager①處理客戶端請求②啟動/監(jiān)控ApplicationMaster③監(jiān)控NodeManager④資源分配與調(diào)度ApplicationMaster①為應(yīng)用程序申請資源,并分配給內(nèi)部任務(wù)②任務(wù)調(diào)度、監(jiān)控與容錯NodeManager①單個節(jié)點上的資源管理②處理來自ResourceManager的命令③處理來自ApplicationMaster的命令請描述在YARN框架中執(zhí)行一個MapReduce程序時,從提交到完成需要經(jīng)歷的具體步驟。答:①用戶編寫客戶端應(yīng)用程序,向YARN提交應(yīng)用程序,提交的內(nèi)容包括ApplicationMaster程序、啟動ApplicationMaster的命令、用戶程序等。②YARN中的ResourceManager負責(zé)接收和處理來自客戶端的請求。接到客戶端應(yīng)用程序請求后,ResourceManager里面的調(diào)度器會為應(yīng)用程序分配一個容器。同時,ResourceManager的應(yīng)用程序管理器會與該容器所在的NodeManager通信,為該應(yīng)用程序在該容器中啟動一個ApplicationMaster③ApplicationMaster被創(chuàng)建后會首先向ResourceManager注冊,從而使得用戶可以通過ResourceManager來直接查看應(yīng)用程序的運行狀態(tài)④ApplicationMaster采用輪詢的方式通過RPC協(xié)議向ResourceManager申請資源。⑤ResourceManager以“容器”的形式向提出申請的ApplicationMaster分配資源,一旦ApplicationMaster申請到資源后,就會與該容器所在的NodeManager進行通信,要求它啟動任務(wù)。⑥當ApplicationMaster要求容器啟動任務(wù)時,它會為任務(wù)設(shè)置好運行環(huán)境(包括環(huán)境變量、JAR包、二進制程序等),然后將任務(wù)啟動命令寫到一個腳本中,最后通過在容器中運行該腳本來啟動任務(wù)。⑦各個任務(wù)通過某個RPC協(xié)議向ApplicationMaster匯報自己的狀態(tài)和進度,讓ApplicationMaster可以隨時掌握各個任務(wù)的運行狀態(tài),從而可以在任務(wù)失敗時重啟任務(wù)。⑧應(yīng)用程序運行完成后,ApplicationMaster向ResourceManager的應(yīng)用程序管理器注銷并關(guān)閉自己。若ApplicationMaster因故失敗,ResourceManager中的應(yīng)用程序管理器會監(jiān)測到失敗的情形,然后將其重新啟動,直到所有任務(wù)執(zhí)行完畢。請對YARN和MapReduce1.0框架進行優(yōu)劣勢對比分析。答:(1)大大減少了承擔中心服務(wù)功能的ResourceManager的資源消耗。MapReduce1.0中的JobTracker需要同時承擔資源管理、任務(wù)調(diào)度和任務(wù)監(jiān)控等三大功能,而YARN中的ResourceManager只需要負責(zé)資源管理,需要消耗大量資源的任務(wù)調(diào)度和監(jiān)控重啟工作則交由ApplicationMaster來完成。由于每個作業(yè)都有與之關(guān)聯(lián)的獨立的ApplicationMaster,所以,系統(tǒng)中存在多個作業(yè)時,就會同時存在多個ApplicationMaster,這就實現(xiàn)了監(jiān)控任務(wù)的分布化,不再像MapReduce1.0那樣監(jiān)控任務(wù)只集中在一個JobTracker上。MapReduce1.0既是一個計算框架,又是一個資源管理調(diào)度框架,但是只能支持MapReduce編程模型。而YARN則是一個純粹的資源調(diào)度管理框架,在它上面可以運行包括MapReduce在內(nèi)的不同類型的計算框架,默認類型是MapReduce。因為,YARN中的ApplicationMaster是可變更的,針對不同的計算框架,用戶可以采用任何編程語言自己編寫服務(wù)于該計算框架的ApplicationMaster。比如,可以編寫一個面向MapReduce計算框架的ApplicationMaster,從而使得MapReduce計算框架可以運行在YARN框架之上。同理,還可以編寫面向Spark、Storm等計算框架的ApplicationMaster,從而使得Spark、Storm等計算框架也可以運行在YARN框架之上。YARN中的資源管理比MapReduce1.0更加高效。YARN采用容器為單位進行資源管理和分配,而不是以槽為單位,避免了MapReduce1.0中槽的閑置浪費情況,大大提高了資源的利用率。請分別描述Pig、Tez和Kafka的功能。答:①Pig是Hadoop生態(tài)系統(tǒng)的一個組件,提供了類似SQL的PigLatin語言(包含F(xiàn)ilter、GroupBy、Join、OrderBy等操作,同時也支持用戶自定義函數(shù)),允許用戶通過編寫簡單的腳本來實現(xiàn)復(fù)雜的數(shù)據(jù)分析,而不需要編寫復(fù)雜的MapReduce應(yīng)用程序,Pig會自動把用戶編寫的腳本轉(zhuǎn)換成MapReduce作業(yè)在Hadoop集群上運行,而且具備對生成的MapReduce程序進行自動優(yōu)化的功能,所以用戶在編寫Pig程序的時候,不需要關(guān)心程序的運行效率,這就大大減少了用戶編程時間。②Tez是Apache開源的支持DAG作業(yè)的計算框架,直接源于MapReduce框架,核心思想是將Map和Reduce兩個操作進一步進行拆分,即Map被拆分成Input、Processor、Sort、Merge和Output,Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,經(jīng)過分解后的這些元操作可以進行自由任意組合產(chǎn)生新的操作,經(jīng)過一些控制程序組裝后就可形成一個大的DAG作業(yè)。通過DAG作業(yè)的方式運行MapReduce作業(yè),提供了程序運行的整體處理邏輯,就可以去除工作流當中多余的Map階段,減少不必要的操作,提升數(shù)據(jù)處理的性能。Hortonworks把Tez應(yīng)用到數(shù)據(jù)倉庫Hive的優(yōu)化中,使得性能提升了約100倍。③Kafka是由LinkedIn公司開發(fā)的一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),用戶通過Kafka系統(tǒng)可以發(fā)布大量的消息,同時也能實時訂閱消費消息。Kafka設(shè)計的初衷是構(gòu)建一個可以處理海量日志、用戶行為和網(wǎng)站運營統(tǒng)計等的數(shù)據(jù)處理框架。第九章Spark是基于內(nèi)存計算的大數(shù)據(jù)計算平臺,試述Spark的主要特點。答:Spark具有如下4個主要特點:①運行速度快;②容易使用;③通用性;④運行模式多樣。Spark的出現(xiàn)是為了解決HadoopMapReduce的不足,試列舉HadoopMapReduce的幾個缺陷,并說明Spark具備哪些優(yōu)點。答:(1)Hadoop存在以下缺點:①表達能力有限;②磁盤IO開銷大;③延遲高Spark主要有如下優(yōu)點:①Spark的計算模式也屬于MapReduce,但不局限于Map和Reduce操作,還提供了多種數(shù)據(jù)集操作類型,編程模型比MapReduce更靈活;②Spark提供了內(nèi)存計算,中間結(jié)果直接存放內(nèi)存中,帶來更高的迭代運算效率;③Spark基于DAG的任務(wù)調(diào)度執(zhí)行機制,要優(yōu)于MapReduce的迭代執(zhí)行機制。美國加州大學(xué)伯克利分校提出的數(shù)據(jù)分析的軟件棧BDAS認為目前的大數(shù)據(jù)處理可以分為哪三個類型?答:①復(fù)雜的批量數(shù)據(jù)處理:時間跨度通常在數(shù)十分鐘到數(shù)小時之間;②基于歷史數(shù)據(jù)的交互式查詢:時間跨度通常在數(shù)十秒到數(shù)分鐘之間;③基于實時數(shù)據(jù)流的數(shù)據(jù)處理:時間跨度通常在數(shù)百毫秒到數(shù)秒之間。Spark已打造出結(jié)構(gòu)一體化,功能多樣化的大數(shù)據(jù)生態(tài)系統(tǒng),試述Spark的生態(tài)系統(tǒng)。答:Spark的設(shè)計遵循“一個軟件棧滿足不同應(yīng)用場景”的理念,逐漸形成一套完整生態(tài)系統(tǒng),既能夠提供內(nèi)存計算框架,也可以支持SQL即席查詢、實時流式計算、機器學(xué)習(xí)和圖計算等。Spark可以部署在資源管理器YARN之上,提供一站式的大數(shù)據(jù)解決方案。因此,Spark所提供的生態(tài)系統(tǒng)同時支持批處理、交互式查詢和流數(shù)據(jù)處理。從Hadoop+Storm架構(gòu)轉(zhuǎn)向Spark架構(gòu)可帶來哪些好處?答:(1)實現(xiàn)一鍵式安裝和配置、線程級別的任務(wù)監(jiān)控和告警;(2)降低硬件集群、軟件維護、任務(wù)監(jiān)控和應(yīng)用開發(fā)的難度;便于做成統(tǒng)一的硬件、計算平臺資源池。試述“SparkonYARN”的概念。答:Spark可以運行與YARN之上,與Hadoop進行統(tǒng)一部署,即“SparkonYARN”,其架構(gòu)如圖所示,資源管理和調(diào)度以來YARN,分布式存儲則以來HDFS。試述如下Spark的幾個主要概念:RDD、DAG、階段、分區(qū)、窄依賴、寬依賴。答:①RDD:是彈性分布式數(shù)據(jù)集(ResilientDistributedDataset)的英文縮寫,是分布式內(nèi)存的一個抽象概念,提供了一種高度受限的共享內(nèi)存模型。②DAG:是DirectedAcyclicGraph(有向無環(huán)圖)的英文縮寫,反映RDD之間的依賴關(guān)系。③階段:是作業(yè)的基本調(diào)度單位,一個作業(yè)會分為多組任務(wù),每組任務(wù)被稱為“階段”,或者也被稱為“任務(wù)集”。④分區(qū):一個RDD就是一個分布式對象集合,本質(zhì)上是一個只讀的分區(qū)記錄集合,每個RDD可以分成多個分區(qū),每個分區(qū)就是一個數(shù)據(jù)集片段。⑤窄依賴:父RDD的一個分區(qū)只被一個子RDD的一個分區(qū)所使用就是窄依賴。⑥寬依賴:父RDD的一個分區(qū)被一個子RDD的多個分區(qū)所使用就是寬依賴。Spark對RDD的操作主要分為行動(Action)和轉(zhuǎn)換(Transformation)兩種類型,兩種類型操作的區(qū)別是什么?答:行動(Action):在數(shù)據(jù)集上進行運算,返回計算值。轉(zhuǎn)換(Transformation):基于現(xiàn)有的數(shù)據(jù)集創(chuàng)建一個新的數(shù)據(jù)集。第十章1試述流數(shù)據(jù)的概念流數(shù)據(jù),即數(shù)據(jù)以大量、快速、時變的流形式持續(xù)到達2試述流數(shù)據(jù)的特點流數(shù)據(jù)具有如下特征:數(shù)據(jù)快速持續(xù)到達,潛在大小也許是無窮無盡的數(shù)據(jù)來源眾多,格式復(fù)雜數(shù)據(jù)量大,但是不十分關(guān)注存儲,一旦經(jīng)過處理,要么被丟棄,要么被歸檔存儲注重數(shù)據(jù)的整體價值,不過分關(guān)注個別數(shù)據(jù)數(shù)據(jù)順序顛倒,或者不完整,系統(tǒng)無法控制將要處理的新到達的數(shù)據(jù)元素的順序4試述流計算的需求對于一個流計算系統(tǒng)來說,它應(yīng)達到如下需求:高性能:處理大數(shù)據(jù)的基本要求,如每秒處理幾十萬條數(shù)據(jù)海量式:支持TB級甚至是PB級的數(shù)據(jù)規(guī)模實時性:保證較低的延遲時間,達到秒級別,甚至是毫秒級別分布式:支持大數(shù)據(jù)的基本架構(gòu),必須能夠平滑擴展易用性:能夠快速進行開發(fā)和部署可靠性:能可靠地處理流數(shù)據(jù)7列舉幾個常見的流計算框架目前有三類常見的流計算框架和平臺:商業(yè)級的流計算平臺、開源流計算框架、公司為支持自身業(yè)務(wù)開發(fā)的流計算框架1商業(yè)級:IBMInfoSphereStreams和IBMStreamBase2較為常見的是開源流計算框架,代表如下:TwitterStorm:免費、開源的分布式實時計算系統(tǒng),可簡單、高效、可靠地處理大量的流數(shù)據(jù)Yahoo!S4(SimpleScalableStreamingSystem):開源流計算平臺,是通用的、分布式的、可擴展的、分區(qū)容錯的、可插拔的流式系統(tǒng)3公司為支持自身業(yè)務(wù)開發(fā)的流計算框架:FacebookPumaDstream(百度)銀河流數(shù)據(jù)處理平臺(淘寶)8試述流計算的一般處理流程流計算的處理流程一般包含三個階段:數(shù)據(jù)實時采集、數(shù)據(jù)實時計算、實時查詢服務(wù)流計算處理流程示意圖20試列舉幾個Storm框架的應(yīng)用領(lǐng)域Storm框架可以方便地與數(shù)據(jù)庫系統(tǒng)進行整合,從而開發(fā)出強大的實時計算系統(tǒng)Storm可用于許多領(lǐng)域中,如實時分析、在線機器學(xué)習(xí)、持續(xù)計算、遠程RPC、數(shù)據(jù)提取加載轉(zhuǎn)換等21Storm的主要術(shù)語包括Streams,Spouts、Bolts、Topology和StreamGroupings,請分別簡要描述這幾個術(shù)語Streams:Storm將流數(shù)據(jù)Stream描述成一個無限的Tuple序列,這些Tuple序列會以分布式的方式并行地創(chuàng)建和處理Storm框架可以方便地與數(shù)據(jù)庫系統(tǒng)進行整合,從而開發(fā)出強大的實時計算系統(tǒng)Bolt:Storm將Streams的狀態(tài)轉(zhuǎn)換過程抽象為Bolt。Bolt即可以處理Tuple,也可以將處理后的Tuple作為新的Streams發(fā)送給其他BoltTopology:Storm將Spouts和Bolts組成的網(wǎng)絡(luò)抽象成Topology,它可以被提交到Storm集群執(zhí)行。Topology可視為流轉(zhuǎn)換圖,圖中節(jié)點是一個Spout或Bolt,邊則表示Bolt訂閱了哪個Stream。當Spout或者Bolt發(fā)送元組時,它會把元組發(fā)送到每個訂閱了該Stream的Bolt上進行處理Topology:Storm將Spouts和Bolts組成的網(wǎng)絡(luò)抽象成Topology,它可以被提交到Storm集群執(zhí)行。Topology可視為流轉(zhuǎn)換圖,圖中節(jié)點是一個Spout或Bolt,邊則表示Bolt訂閱了哪個Stream。當Spout或者Bolt發(fā)送元組時,它會把元組發(fā)送到每個訂閱了該Stream的Bolt上進行處理22一個Topolog由哪些組件組成?Topology里面的每個處理組件(Spout或Bolt)都包含處理邏輯,而組件之間的連接則表示數(shù)據(jù)流動的方向27Storm集群中的Master節(jié)點和Work節(jié)點各自運行什么后臺進程?這些進程又分別負責(zé)什么工作?Storm集群采用“Master—Worker”的節(jié)點方式:Master節(jié)點運行名為“Nimbus”的后臺程序(類似Hadoop中的“JobTracker”),負責(zé)在集群范圍內(nèi)分發(fā)代碼、為Worker分配任務(wù)和監(jiān)測故障Worker節(jié)點運行名為“Supervisor”的后臺程序,負責(zé)監(jiān)聽分配給它所在機器的工作,即根據(jù)Nimbus分配的任務(wù)來決定啟動或停止Worker進程,一個Worker節(jié)點上同時運行若干個Worker進程28試述Zookeeper在Storm框架中的作用Storm使用Zookeeper來作為分布式協(xié)調(diào)組件,負責(zé)Nimbus和多個Supervisor之間的所有協(xié)調(diào)工作。借助于Zookeeper,若Nimbus進程或Supervisor進程意外終止,重啟時也能讀取、恢復(fù)之前的狀態(tài)并繼續(xù)工作,使得Storm極其穩(wěn)定31試述Storm框架的工作流程Storm的工作流程如下圖所示:所有Topology任務(wù)的提交必須在Storm客戶端節(jié)點上進行,提交后,由Nimbus節(jié)點分配給其他Supervisor節(jié)點進行處理Nimbus節(jié)點首先將提交的Topology進行分片,分成一個個Task,分配給相應(yīng)的Supervisor,并將Task和Supervisor相關(guān)的信息提交到Zookeeper集群上Supervisor會去Zookeeper集群上認領(lǐng)自己的Task,通知自己的Worker進程進行Task的處理說明:在提交了一個Topology之后,Storm就會創(chuàng)建Spout/Bolt實例并進行序列化。之后,將序列化的組件發(fā)送給所有的任務(wù)所在的機器(即Supervisor節(jié)點),在每一個任務(wù)上反序列化組件第11章試述BSP模型中的超步的3個組件及具體含義。答:①局部通信。每個參與的處理器都有自身的計算任務(wù),它們只讀取存儲在本地內(nèi)存中的值,不同處理器的計算任務(wù)都是異步并且獨立的。②通信。處理器群相互交換數(shù)據(jù),交換的形式是,由一方發(fā)起推送(Put)和獲?。℅et)操作③柵欄同步。當一個處理器遇到“路障”(或柵欄),會等其他所有的處理器完成它們的計算步驟;每一次同步也是一個超步的完成和下一個超步的開始。Pregel為什么選擇一種純消息傳遞模型?答:采用這種做法主要基于以下兩個原因。①消息傳遞具有足夠的表達能力,沒有必要使用遠程讀取或共享內(nèi)存的方式。②有助于提升系統(tǒng)整體性能。大型圖計算通常是由一個集群完成的,集群環(huán)境中執(zhí)行遠程數(shù)據(jù)讀取會有較高的時間延遲;Pregel的消息模式采用異步和批量的方式傳遞消息,因此可以緩解遠程讀取的延遲。4、請簡述Aggregator的作用,并以具體Aggregator的作用,并以具體Aggregator的例子做說明。答:Aggregator提供了一種全局通信、監(jiān)控和數(shù)據(jù)查看的機制。Aggregator的聚合功能,允許在整型和字符串類型上執(zhí)行最大值、最小值、求和操作,比如可以定義一個“Sum”Aggregator來統(tǒng)計每個頂點的出射邊數(shù)量,最后相加可以得到整個圖的邊的數(shù)量。Aggregator還可以實現(xiàn)全局協(xié)同的功能,比如當可以設(shè)計“and”Aggregator來決定在某個超步中Compute()函數(shù)是否執(zhí)行某些邏輯分支,只有當“and”Aggregator顯示所有頂點都滿足了某條件時,才去執(zhí)行這些邏輯分支。簡述Pregel的執(zhí)行過程。答:(1)選擇集群中的多臺機器執(zhí)行圖計算任務(wù),每臺機器上運行用戶程序的一個副本,其中,有一臺機器會被選為Master,其他機器作為Worker。(2)Master把一個圖分成多個分區(qū),并把分區(qū)分配到多個Worker。(3)Master會把用戶輸入劃分成多個部分,通常是基于文件邊界進行劃分。(4)Master向每個Worker發(fā)送指令,Worker收到指令后,開始運行一個超步。當完成以后,Worker會通知Master,并把自己在下一個超步還處于“活躍”狀態(tài)的頂點的數(shù)量報告給Master。上述步驟會被不斷重復(fù),直到所有頂點都不再活躍并且系統(tǒng)中不會有任何消息在傳輸,這時,執(zhí)行過程才會結(jié)束。(5)計算過程結(jié)束后,Master會給所有的Worker發(fā)送指令,通知每個Worker對自己的計算結(jié)果進行持久化存儲。8、試述Worker和Master的作用。答:Worker的作用:借助于名稱服務(wù)系統(tǒng)定位到Master的位置,并向Master發(fā)送自己的注冊信息,Master會為每個Worker分配一個唯一的ID。在一個Worker中,它所管轄的分區(qū)狀態(tài)信息被保存在內(nèi)存。在每個超步中,Worker會對自己所管轄分區(qū)中的每個頂點進行遍歷,并調(diào)用頂點上的Compute()函數(shù)。Master的作用:Pregel采用檢查點(CheckPoint)機制來實現(xiàn)容錯。在每個超步的開始,Master會通知所有的Worker把自己管轄的分區(qū)的狀態(tài)寫入持久化存儲設(shè)備。Master周期地ping每個Worker,Worker收到ping消息后向Master反饋消息。如果在指定的時間間隔內(nèi)沒有收到某個Worker的反饋,Master就會將它標為“失效”,并啟動恢復(fù)模式。第12章試述數(shù)據(jù)可視化的概念。答:數(shù)據(jù)可視化是指將大型數(shù)據(jù)集中的數(shù)據(jù)以圖形圖像形式表示,并利用數(shù)據(jù)分析和開發(fā)工具發(fā)現(xiàn)其中未知信息的處理過程。數(shù)據(jù)可視化技術(shù)的基本思想是將數(shù)據(jù)庫中每一個數(shù)據(jù)項作為單個圖元素表示,大量的數(shù)據(jù)集構(gòu)成數(shù)據(jù)圖像,同時將數(shù)據(jù)的各個屬性值以多維數(shù)據(jù)的形式表示,可以從不同的維度觀察數(shù)據(jù),從而對數(shù)據(jù)進行更深入的觀察和分析。試述數(shù)據(jù)可視化的重要作用。答:①觀測、跟蹤數(shù)據(jù)。利用變化的數(shù)據(jù)生成實時變化的可視化圖表,可以讓人們一眼看出各種參數(shù)的動態(tài)變化過程,有效跟蹤各種參數(shù)值。②分析數(shù)據(jù)。利用可視化技術(shù),實時呈現(xiàn)當前分析結(jié)果,引導(dǎo)用戶參與分析過程,根據(jù)用戶反饋信息執(zhí)行后續(xù)分析操作,完成用戶與分析算法的全程交互,實現(xiàn)數(shù)據(jù)分析算法與用戶領(lǐng)域知識的完美結(jié)合。③輔助理解數(shù)據(jù)。幫助普通用戶更快、更準確地理解數(shù)據(jù)背后的定義。④增強數(shù)據(jù)吸引力??菰锏臄?shù)據(jù)被制成具有強大視覺沖擊力和說服力的圖像,可以大大增強讀者的閱讀興趣??梢暬ぞ咧饕男╊愋停扛髯缘拇懋a(chǎn)品有哪些?答:主要包括入門級工具(Excel)、信息圖表工具(GoogleChartAPI、D3、Visual.ly、Raphael、Flot、Tableau、大數(shù)據(jù)魔鏡)、地圖工具(ModestMaps、Leaflet、PolyMaps、OpenLayers、Kartography、GoogleFushionTables、QuanumGIS)、時間線工具(Timetoast、Xtimeline、Timeslide、Dipity)和高級分析工具(Processing、NodeBox、R、Weka和Gephi)等。第十三章試分析推薦系統(tǒng)的動機以及所能解決的問題。答:為了讓用戶從海量信息中高效地獲得自己所需的信息,推薦系統(tǒng)應(yīng)運而生。推薦系統(tǒng)是大數(shù)據(jù)在互聯(lián)網(wǎng)領(lǐng)域的典型應(yīng)用,它可以通過分析用戶的歷史記錄來了解用戶的喜好,從而主動為用戶推薦其感興趣的信息,滿足用戶的個性化推薦需求推薦系統(tǒng)是自動聯(lián)系用戶和物品的一種工具,和搜索引擎相比,推薦系統(tǒng)通過研究用戶的興趣偏好,進行個性化計算。推薦系統(tǒng)可發(fā)現(xiàn)用戶的興趣點,幫助用戶從海量信息中去發(fā)掘自己潛在的需求試列舉幾種推薦算法,并進行簡要描述答:基于用戶的協(xié)同過濾(UserCF),基于物品的協(xié)同過濾(ItemCF)UserCF算法的實現(xiàn)主要包括找到和目標用戶興趣相似的用戶集合和找到該集合中的用戶所喜歡的、且目標用戶沒有聽說

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論