《云計算與大數據技術理論及應用》習題解答參考_第1頁
《云計算與大數據技術理論及應用》習題解答參考_第2頁
《云計算與大數據技術理論及應用》習題解答參考_第3頁
《云計算與大數據技術理論及應用》習題解答參考_第4頁
《云計算與大數據技術理論及應用》習題解答參考_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、云計算與大數據技術理論及應用習題解答參考第 1 章 緒論一、 選擇題1, AB 2, D 3, B 4, ACD二、 簡答題1, 參考 1.1.1 和 1.1.2 節(jié)2, 參考 1. 2 節(jié)3, 答: CAP 定理是指對于一個分布式計算系統(tǒng)來說,不可能同時滿足一致性( C:Consistency)、可用性( A: Availability )和分區(qū)容錯性( P: Partition tolerance)這三個基本需求,最多只能同時滿足其中的兩項,不可能同時滿足三項。當 CAP 定理應用在分布式存儲系統(tǒng)中,最多只能實現上面的兩點。而由于當前的網絡硬件肯定 會出現延遲丟包等問題,所以分區(qū)容錯性是我

2、們必須需要實現的。所以,我們在設 計分布式系統(tǒng)時只能在一致性和可用性之間進行權衡。4, 參考 1. 2 節(jié)第 2 章 分布式計算編程基礎一、填空題1.數據包 socket,流式 socket2.無連接方式,面向連接方式3.RMI 基本應用, RMI 客戶回調應用, RMI 樁下載應用4.服務器,客戶端5.數據層,業(yè)務層,應用層6.迭代服務器和并發(fā)服務器;有狀態(tài)服務器和無狀態(tài)服務器二、問答題1. 無連接方式將以任意順序到達,而有連接方式則以發(fā)送順序按序到達2. setToTimeout 設置為 0 則表示永無超時,3. /*this example illustrates the basic m

3、ethod for receiving a datagram packet*/tryDatagramSocket mySocket = new DatagramSocket(port);System.out.println(Waiting for receiving the data!);/ instantiates a datagram socket for receiving the databyte buffer = new byte100;DatagramPacket datagram = new DatagramPacket(buffer, MAX_LEN);mySocket.set

4、SoTimeout(5000);catch(SocketTimeoutException e)System.out.println( “server response time out”);e.printStackTrace();4.參考解答如下:1) Draw a UML diagram to illustrate the relationship between the classes DatagramSocket ,MyDatagramSocket, Example2SenderReceiver, and Example2ReceiverSende. You need notsupply

5、 the attributes and methods of the DatagramSocket class.MyDatagramSocket DatagramSocketMAXLEN: intsendMessage( )receiveMessage( )Example2ReceiverSender Example2SenderReceiverreceiverHost: InetAddressmyPort: intreceiverPort: intmessage: StringmySocket: MyDatagramSocketmain( )receiverHost: InetAddress

6、myPort: intreceiverPort: intmessage: StringmySocket: MyDatagramSocketmain( )2) Compile the . java classes. Then start Example2ReceiverSender , thenExample2SenderReceiver . An example of the commands for running the programs is:java Example2ReceiverSender java Example2SenderReceiverlocalhost localhos

7、t10000200002000010000msg1msg2Describe the outcome. Why is the order of the execution of the two processes important?The ReceiverSender receives and displays msg2, the SenderReceiver receives anddisplay msg1.The order of executing the two processes is important because the receiver must beinitiated b

8、efore the senderReceiver sends its message. If the order is reversed, thereceiverSender will be blocked indefinitely for data that has already been sent and lost,and the senderReceiver will be blocked on a receive for data that now has no chance ofbeing sent. Thus a deadlock will result.3) Modify th

9、e code so that the senderReceiver sends then receives repeatedly, sleeping for 3 seconds between each iteration. Recompile and repeat the run. Do the same with the receiverSender. Compile and run the programs for a few minutes before terminating the programs (by entering the key stroke sequence cont

10、rol-C). Describe and explain the outcome.The ReceiverSender displays msg2 every 3 seconds, while the SenderReceiver displays msg1 every 3 seconds. The former receives msg2 from the SenderReciever then subsequently sends msg1 to it every 3 seconds, while the latter sends msg1 to the ReceiverSender th

11、en receives from it every 3 seconds.5. 略6. 略7. 支持并發(fā)功能8. 分布式應用最廣泛最流行的范型是客戶9. 分布式應用最基本的范型是消息傳遞模型10. P2P 應用有很多,例如 Napster,迅雷,11. 消息傳遞模式是最基本的分布式計算范型,-服務器范型PPS 網絡電視等適用于大多數應用; 客戶 -服務器范型是最流行的分布式計算范型,應用最為廣泛; P2P 范型又稱為對等結構范型,使得網絡以最有效率的方式運行,適用于各參與者地位平等的網絡;分布式對象范型,是抽象化的遠程 調用,適用于復雜的分布式計算應用等。第 3 章 云計算原理與技術略,參考各章

12、節(jié)內容。第 4 章云計算編程實踐1. 試說明基于 cloudsim 如何實現用戶自定義的虛擬機調度算法?答:對于用戶自定義的任務調度策略,可以通過修改 cloudsim 類或方法來實現用戶自定義的虛擬機調度算法(虛擬機到物理主機的映射) ,一般需要用戶重新實現 DatacenterBroker類的 bindCloudletsToVms() 方法。算法模擬過程為:初始化 cloudsim 環(huán)境,創(chuàng)建數據中心和代理,在創(chuàng)建數據中心函數中,需要用到主機列表, 主機列表又需要 pe 列表和虛擬機調度算法。 最后創(chuàng)建一個虛擬機列表,生成一系列虛擬機,提交到代理。2. 試說明基于 cloudsim 如何實

13、現用戶自定義的任務調度算法?答:對于用戶自定義的虛擬機調度策略,一般是需要用戶重新實現 VmScheduler 類和VmAllocationPolicy 類。另外 VmScheduler 調度類一般不用改,因為他們是用來決定虛擬機 的調度策略是時間還是空間共享的。3.編程題:編寫一個程序,創(chuàng)建一個包含兩臺主機的數據中心,每個臺主機擁有四個核,多 個虛擬機。提交 N 個任務,這些任務長度服從均勻分布,并打印任務長度與任務運行情況。思路: 比較簡單, 只有任務長度服從均勻分布需要思考一下, 其他都是基本的類的使用。均勻分布只需要用一個隨機函數產生某一范圍的均勻隨機數即可,因此想到用 Java 類庫

14、中的 Random 類。public class MySimExample private static final int NUM_CLOUDLET = 100; / 云任務的總數public static void main(String args) Log. printLine (Starting MySimExample. );try int num_user = 1;Calendar calendar = Calendar.getInstance();boolean trace_flag = false;CloudSim. init (num_user, calendar, trac

15、e_flag );/創(chuàng)建數據中心Datacenter datacenter0 = createDatacenter (Datacenter_0 );DatacenterBroker broker = createBroker ();int brokerId = broker .getId();/創(chuàng)建并提交虛擬機List vmlist = new ArrayList();int numVm = 8;vmlist .addAll( createVm(brokerId , numVm );broker .submitVmList( vmlist );/ 創(chuàng)建并提交任務List cloudletLis

16、t = new ArrayList();cloudletList .addAll( createCloudlet ( brokerId , NUM_CLOUDLET );broker .submitCloudletList( cloudletList );/啟動仿真CloudSim. startSimulation ();List newList = broker .getCloudletReceivedList();CloudSim. stopSimulation ();printCloudletList (newList );Log. printLine (MySimExample fin

17、ished! ); catch (Exception e) e.printStackTrace();Log. printLine (The simulation has been terminated due to an unexpectederror );private static Datacenter createDatacenter(String name) / 創(chuàng)建數據中心List hostList = new ArrayList();List peList = new ArrayList();/ 添加四個核芯int mips = 1000;int pesNumber = 4;for

18、 (int i = 0; i pesNumber; i+) peList1 .add( new Pe(i , new PeProvisionerSimple( mips);peList2 .add( new Pe(i , new PeProvisionerSimple( mips);int hostId = 0;int ram = 4096;long storage = 1000000;int bw = 10000;/ 添加兩臺主機hostList.add(new Host( hostId, new RamProvisionerSimple( ram),new BwProvisionerSim

19、ple( bw), storage, peList1 ,new VmSchedulerSpaceShared(peList1 );hostId+;hostList.add(new Host( hostId, new RamProvisionerSimple( ram),new BwProvisionerSimple( bw), storage, peList2 ,new VmSchedulerSpaceShared(peList2 );String arch = x86 ;String os = Linux ;String vmm = Xen ;double time_zone = 10.0;

20、double cost = 3.0;double costPerMem = 0.05;double costPerStorage = 0.001;double costPerBw = 0.0;LinkedList storageList = new LinkedList();DatacenterCharacteristics characteristics = new DatacenterCharacteristics(arch, os, vmm , hostList , time_zone, cost , costPerMem ,costPerStorage, costPerBw );Dat

21、acenter datacenter = null ;try datacenter = new Datacenter(name, characteristics,new VmAllocationPolicySimple( hostList ), storageList , 0); catch (Exception e) e.printStackTrace();return datacenter;private static List createVm( int brokerId , int numVm ) / 創(chuàng)建虛擬機List vmlist = new ArrayList();int vmi

22、d = 0;int mips = 1000;long size = 10000;int ram = 512;long bw = 1000;int pesNumber = 1;String vmm = Xen ;for (int i = 0; i numVm ; i+) Vm vm = new Vm( vmid + i , brokerId , mips , pesNumber, ram , bw , size,vmm , new CloudletSchedulerTimeShared();vmlist .add(vm );return vmlist ;/創(chuàng)建云任務private static

23、List createCloudlet( int brokerId , int numCloudlet ) List cloudletList = new ArrayList();double lambda = 0.1; / 指數分布的參數int id = 0;int pesNumber = 1;long length;long fileSize = 300;long outputSize = 300;UtilizationModel utilizationModel = new UtilizationModelFull();Cloudlet cloudlet = null ;for (int

24、 i = 0; i numCloudlet ; i +) length = ( long ) (2500 * randomInt (1,101); /250000 的 1%-100%cloudlet = new Cloudlet( id + i , length, pesNumber, fileSize ,outputSize , utilizationModel , utilizationModel ,utilizationModel );cloudlet .setUserId( brokerId );cloudletList .add(cloudlet );return cloudletL

25、ist ;private static DatacenterBroker createBroker() DatacenterBroker broker = null ;try broker = new DatacenterBroker( Broker ); catch (Exception e) e.printStackTrace();return null ;return broker;private static int randomInt( int min , int max) / randommin,max) 可取 min,不可取maxRandom random = new Rando

26、m();return random.nextInt( max) % (max - min + 1) + min ;private static void printCloudletList(List list ) int size = list .size();Cloudlet cloudlet ;String indent = ;Log. printLine (= OUTPUT = );Log. printLine (Cloudlet ID + indent + STATUS + indent+ Datacenter ID + indent + VM ID + indent + Length

27、+ indent + Time + indent + Start Time + indent+ Finish Time );DecimalFormat dft = new DecimalFormat( #.# );for ( int i = 0; i 文檔 集合 數據庫多個 Key-Value 對組織起來形成類似于 JSON 格式的文檔, 多個文檔組織成為一個集合,多個集合組織起來, 就形成了數據庫 (database)。 單個 MongoDB 實例可以使用多個數據庫, 每個數據庫都是獨立運作的, 可以有單獨的權限, 每個數據庫的數據被分開保存在不同的文 件里。適用范圍:適合實時的插入, 更新

28、與查詢, 并具備應用程序實時數據存儲所需的復制及高度伸縮性。適合作為信息基礎設施的持久化緩存層。適合由數十或數百臺服務器組成的數據庫。 因為 Mongo 已經包含對 MapReduce 引擎的內置支持。10. 名詞解釋: PRAM、 BSP、 LogP 與 MapReduce.PRAM :即并行隨機存取機 ,也稱之為 SIMD-SM( 共享存儲的單指令流多數據流 )模型 ,是一種應用于并行計算抽象模型 ?PRAM模型中 ,假設有一組有限或無限個獨立的至少擁有簡單算數計算能力和邏輯判斷能力的處理機,每個處理機擁有自己的本地存儲(即寄存器) 假定存在一個容量無限大的共享存儲器, 這個存儲器被切分成

29、特定大小的存儲單元。 時間內,每個處理機都能夠隨機地訪問任意存儲單元。并在單位BSP:整體同步并行計算模型 (Bulk Synchronous Parallel Computing Model) , 又名大同步模型或 BSP 模型。在一個超級步中,各處理器均執(zhí)行局部操作,并且可以通過選路器接收 和發(fā)送消息。LogP: LogP 模型是一種分布存儲器 ?點對點通信的多處理器模型 ?這個模型說明了由互連網絡連接起來的計算機集群的性能特點 ,但沒有描述網絡的結構 ?MapReduce:MapReduce 模型是一種并行編程技術。 它源自函數式編程理念, 并有 Google把它應用到在分布式計算環(huán)境上

30、的大規(guī)模數據處理中。11. 當今流行的大數據處理模型 MapReduce 的數據處理過程及其優(yōu)劣勢。MapReduce 的輸入和輸出都是是一系列的 key/value 對。 MapReduce 運行環(huán)境的用戶通過實現兩個函數 (Map 和 Reduce)來表達自己的算法。 Map 函數, 通過讀入一系列的 key/value對來輸出一系列的以 key/value 對為形式的中間結果。 MapReduce 運行環(huán)境會收集這些中間結果的 key/value 對,并根據 key 的值進行聚合和排序,并將這些 key/value 對有序地傳遞給Reduce 函數。同樣由用戶定義的 列表, 合并這些 v

31、alue 來生成對應 會產生一個或零個結果 value。Reduce 函數接收這些中間結果的 key 及與其對應的 value key 的更小的一個 value 集合。通常觸發(fā)一次 Reduce 函數MapReduce 的優(yōu)勢:1、移動計算而不是移動數據,避免了額外的網絡負載。2、任務之間相互獨立,讓局部故障可以更容易的處理,單個節(jié)點的故障的話只需要重 啟該節(jié)點任務即可。3、理想狀態(tài)下 MapReduce 模型是可線性擴展的。4、 MapReduce 模型結構簡單,終端用戶至少只需編寫6、 MapReduce 模型的擴展性曲線是平坦的。12. 實際操作搭建編程環(huán)境并編寫簡單的調用 HDFSHD

32、FS、 HBase 的 API 文檔。略Map 和 Reduce 函數。和 HBase API 的程序,可參考13. 實際操作搭建編程環(huán)境并編寫簡單的 文檔。略MapReduce 的程序,可參考 Hadoop 的 API14. 與 MapReduce 相比, Impala 的優(yōu)勢在哪里?為什么有效率方面的優(yōu)勢?Impala 的優(yōu)勢:1、較 MapReduce 而言, Impala 使用 HQL 作為查詢語言, 使用者學習的門檻更低。2、 Impala 對于 MapReduce 而言在處理 HQL 查詢是效率更高,官方數據時十倍以上。3、 Impala 采用類似 P2P 對等網的架構, 沒有 M

33、aster 與 Slave 之分, 即使若干個 Daemon故障也不會影響整個系統(tǒng)可用性,不會像 MapReduce 架構中的 JobTracker 以后存在單點故障的風險。Impala 處理 HQL 查詢在效率方面有優(yōu)勢的原因 :Impala 采用了 Linux 原生 C 語言作為基礎環(huán)境,更多地采用緩存機制,減少 ETL 的次數,提高了執(zhí)行效率。直接從本地文件系統(tǒng)讀取 Impala 是一個專門為 HQL 查詢處理的查詢引擎, 說,對于查詢有更多的優(yōu)化。HDFS 中的數據,提高了數據的本地行。相對于 MapReduce 這種通用的計算模型來15. HadoopDB 是否是對于 Hadoop

34、和 Hive 的修改?如果是,它大體上修改了哪些地方?是的。添加了一下組件:Databse Connector:作用:連接節(jié)點上的 實現方法:擴展 Hadoop Catalog :作用TaskTracker 數據庫。節(jié)點上的數據庫相當于于傳統(tǒng)的 InputFormat ,使 Hadoop 可以讀寫數據庫的內容。Hadoop 中的 HDFS。1.連接數據庫用到的參數的存儲,如數據庫位置,驅動類和證書;2.保存了一些元數據, 的 NameNode。實現保存于 HDFS 上的Data Loader如數據簇中的數據集,XML 配置文檔,副本的位置, 數據的劃分, 類似于 Hadoop作用將數據合理劃分

35、為數據塊,從 HDFS 轉移到節(jié)點中的本地文件系統(tǒng)實現全局哈希函數把數據分配到不同節(jié)點。本地哈希函數將分配到本節(jié)點的數據繼續(xù)劃分為不同 SQL to MapReduce to SQL (SMS) Planner作用將 HiveQL 轉化為特定執(zhí)行計劃, 在 HadoopDBchunks中執(zhí)行。 原則是盡可能的講操作推向節(jié)點上的 RDBMS 上執(zhí)行,以此提高執(zhí)行效率。實現擴展 Hive: 1.執(zhí)行查找前, 用 catolog 的信息更新 Hive 的 metastore, 定向到節(jié)點數據庫的表 2.執(zhí)行前,決定劃分的鍵;將部分查詢語句推到節(jié)點的數據庫中執(zhí)行。16. HadoopDB 其優(yōu)點是什么

36、?HadoopDB 的優(yōu)點:? 結合 Hive 對 SQL 強大的支持并直接生成 map/reduce 任務,不需要再手動編寫map/reduce 程序。? 利用關系數據庫查數據則又是利用單節(jié)點的性能優(yōu)勢。? 利用 Hadoop 所具有的高容錯性、高可用性以及對于高通量計算的性能優(yōu)越性。17. 對本章節(jié)中提及的工具及其搭建方法做實踐。 略18、 在搭建 HDP 集群環(huán)境的過程中, 我們使用了 SSH 的方式進行建立, 請嘗試不通過 SSH 方式為集群添加一個新的 Ambari Agent 節(jié)點(提示:需要提前在所要添加的主機上安裝好 Ambari-Agent 服務) 。參考答案:在新的節(jié)點上,

37、重復 10.1.2.1 小節(jié)的環(huán)境準備工作,獲取并修改獲取 Repo 文件,可參考 10.1.2.3 小節(jié),通過指令 yum install ambari-agent 安裝 Ambari Agent 服務,然后編輯/etc/ambari-agent/conf/ambari-agent.ini 文件,內容如下。編輯完畢后,通過指令 ambari-agentstart 啟動服務,然后依次在集群主界面中點擊頂部 “Hosts”選項卡 -“Actions ”-“Add New Hosts ”,需要注意的是在步驟“ Install Options ” (參考圖 10.10)中, 勾選最下面的 “Perf

38、orm manual registration on hosts and do not use SSH ”, 其余按照流程填寫相關信息即可。19、請在 Zeppelin 中查詢出各個城市非正常駕駛事件發(fā)生的比率?參考答案:第 7 章 實時醫(yī)療大數據分析案例1.實時醫(yī)療大數據分析的核心預測模型是什么?參考答案:核心預測模型是隨機森林模型, Spark 集成了相關的功能,可以很方便地通過 Spark MLib進行建模和預測。2.請根據教材內容重現思考實時醫(yī)療大數據分析的實現程序。參考答案:( 1)數據清理:主要通過界面操作實現,不存在實現程序;(2) Kafka 到 Spark Streaming

39、:請參考 4.2.2 代碼;(3)訓練隨機森林模型及預測結果:請參考 4.3.1 代碼。3.請總結實時醫(yī)療大數據分析的現實過程。參考答案:( 1)對過往歷史收集存儲的病例數據進行數據清理操作,(2)實時病人數據輸入到高吞吐量的分布式消息系統(tǒng)并使用 Spark MLib 訓練預測模型;Kafka ,并由 Spark Streaming 讀?。唬?)預測模型對 Spark Streaming 讀取的實時數據進行預測并給出結果,若經驗證正確可添 加到歷史數據集,作為源數據重新訓練模型,提高模型準確度。第 8 章 保險大數據分析案例略,參考各章節(jié)內容第 9 章 基于 Spark 聚類算法的網絡流量異常

40、檢測略,參考各章節(jié)內容第 10 章 基于 Hadoop 的宏基因組序列比對計算習題1. 什么是宏基因組學?答:宏基因組學 (Metagenomics)又被稱為環(huán)境基因組學,是一門直接研究自然狀態(tài)下微生物群落 (包含了可培養(yǎng)的和不可培養(yǎng)的細菌、真菌和病毒等基因組的總和 )的學科。2. 序列比對軟件分為可以哪幾類?答: 序列比對軟件依據其構建索引的算法原理可大致分為兩類: 基于哈希表索引的序列比對方法和基于后綴樹索引的序列比對算法。3. 請簡述 Hadoop Streaming 的工作原理。 Hadoop Streaming 設置輸入輸出文件處理方式的 命令選項是什么?答: Hadoop Stre

41、aming 是 Hadoop 為方便非 Java 用戶編寫 MapReduce 程序而設計的一個工具包。 它允許用戶將任何可執(zhí)行文件或者腳本作 Mapper/Reducer, 這大大提高了程序員的開發(fā)效率。 Hadoop Streaming 實現的關鍵是它使用 UNIX 標準流作為程序與Hadoop 之間的接口,它要求用戶編寫的 Mapper/Reducer 從標準輸入中讀取數據,并將結果寫到標準數據中。Hadoop Streaming 設 置 輸 入 輸 出 文 件 處 理 方 式 的 命 令 選 項 是 -inputformat 和 -outputformat。第 11 章 基于細胞反應大

42、數據的生物效應評估計算1、什么是生物效應評估?實現它的主要技術路線是什么?意義何在?答:生物效應評估是通過測定和分析生物制劑刺激各種人體細胞后的數字化轉錄組反應, 快速確定相關的檢測標志物和治療靶標, 極大縮短防治手段的研發(fā)過程, 以快速有效地應對可能的生物威脅。從技術路線上看, 采用了典型的大數據策略, 即首先是系統(tǒng)地積累各種潛在生物制劑作用下的細胞反應大數據, 以此為基礎, 通過大范圍數據比較推測突發(fā)生物效應模式, 在數據的推動下實現技術跨越。其意義在于為下一步面向以大數據分析技術為基礎的生物效應快速監(jiān)測技術體系奠定 了研究基礎。2、 LINCS 項目的全稱是什么?其目標是什么?已取得那些

43、成果?答: LINCS 項目的全稱是 “基于網絡的細胞反應印記整合圖書館由麻省理工學院和哈佛大學共同組建的 BROAD 研究所承擔,種化學分子對 15 種典型人體細胞刺激后的基因表達情況?!薄F淠繕耸窍到y(tǒng)檢測 15000目前該計劃第一期已獲得了 15 種典型細胞中 3000 余個基因沉默和 5000 余種化學小分子刺激下的 130 余萬個全基因組表達譜。3、GSEA 算法的主要思想是什么?它分為哪幾個主要的步驟?當某一表達譜包含 1000 個基 因,分別取前 50 個基因和后 50 個基因為基因集,與該表達譜比較算得的富集積分為多少(p=0)?答: GSEA 主要用于分析兩個不同表形樣本集之間

44、的表達差異, 其基本思想是檢驗所定義基因集 (Gene Set)S 中的基因在整個微陣列實驗中所測得的已排序的所有基因列表 (GeneList) L 中是均勻分布還是集中于頂端或底部。GSEA 分為 3 個主要步驟: 1) 富集積分的計算; 2) 估計 ES 的顯著性水平 (SignificanceLevel); 3)調整多重假設檢驗。 分別算得的富集積分為 1 和-1。4、 KMedoids 聚類相較于 KMeans 算法有何種優(yōu)勢? KMedoids+ 又作了何種優(yōu)化?答: KMedoids 的優(yōu)勢主要是解決了 KMeans 的 “噪聲敏感 ”問題。回想 KMeans 尋找質點的過程: 它

45、是對某類簇中所有的樣本點維度求平均值, 即獲得該類簇質點的維度。 當聚類的樣本點中有 “噪聲 ”(離群點)時,在計算類簇質點的過程中會受到噪聲異常維度的干擾,造 成 所 得 質 點 和 實 際 質 點 位 置 偏 差 過 大, 從 而 使 類 簇 發(fā) 生 “畸 變 ”。 為 了 解 決 該 問題, KMedoids 提出了新的質點選取方式,而不是簡單像 kMeans 算法采用均值計算法。在KMedoids 算法中,每次迭代后的質點都是從聚類的樣本點中選取,而選取的標準就是當該樣本點成為新的質點后能提高類簇的聚類質量, 使得類簇更緊湊。 該算法使用絕對誤差標準來定義一個類簇的緊湊程度。KMedo

46、ids 也需要隨機地產生初始聚類中心,不同的初始聚類中心可能導致完全不同的聚類結果。而 KMedoids+ 算法選擇初始 seeds的基本思想就是:初始的聚類中心之間的相 互距離要盡可能的遠。從而在一定程度上優(yōu)化了初始聚類中心的生成問題。5、案例中對 KMedoids 算法并行化的核心思路是什么?答: 通過對單次迭代過程并行化來避免迭代間的相關依賴。 通過類標記向量和平均距離向量在每次迭代中劃分新類和確定新的聚類中心。第 12 章 基于 SPARK 的海量宏基因組聚類問題分析計算1. 簡述大數據的定義及其它的特征。答: 大數據并沒有統(tǒng)一的定義, 但是通常它是指所處理的數據規(guī)模巨大到無法通過目前

47、主流數據庫軟件工具,在可以接受的時間內完成抓取、儲存、 管理和分析,并從中提取出人類可以理解的資訊。4V 特征:第一個特征 Volume 是數據體量巨大。第二個特征 Variety:數據類型繁多。非結構和半結構數據正是大數據處理的難點所在。第三個特征 Velocity :處理速度快,時效性強。最后一個特征是 Value:商業(yè)價值高,但是價值密度低。單個數據的價值很低,只有大 量數據聚合起來處理才能借助歷史數據預測未來走勢,體現出大數據計算的價值所在。2. 思考: HDFS 體系結構是否存在其局限性或瓶頸。 采用 Master-Slave 結構, 必定會存在單點故障問題與詳細的請讀者補充。3.

48、HDFS 中為什么默認副本數為 3?答: 副本數為 3 的集群中, 將一個副本保存到本地機架NameNode 性能瓶頸問題。 其他更1 的一個節(jié)點 1 上, 第二個副本保存到本地機架的一個節(jié)點 2 上,第三個副本由節(jié)點 2 傳輸復制到遠程機架 2 的節(jié)點 3 上。把三分之二的副本儲存在本地機架, 把三分之一的副本儲存在遠程機架。 這樣做既保證了數 據的可靠性, 又節(jié)省了機架之間的網絡帶寬。 一整個機架崩潰的概率很明顯遠遠低于單個節(jié) 點的崩潰概率。一個機架崩潰了可以由另一機架保證數據的可用性。4. HBase 是如何實現隨機快速存取數據的?為什么要 HBASE 在創(chuàng)建表時只需要定義 列族,列族是

49、如何存儲的?隨機寫入: HBase 底層的存儲是采用了一個 keyvalue 的文件結構, 稱作 hfile 來實現的;HBase 的隨機寫入并不是立刻寫入 HDFS; 而是先寫入內存 memstore,當 memstore 達到一定的閥值后才會寫入 HDFS ;而且 HBase 的后臺合并機制,將 memstore 寫入到 HDFS 的小文件合并成大文件;隨機刪除: HBase 中刪除數據并不是立即刪除, 而只是在數據上做好標記, 然后再下一次合并操作的時候進行清理。隨機讀?。?HBase 在存儲數據時在一個 hfile 中只存儲同一列族的數據,并且數據時按Row key 排序的,因此在讀取

50、數據時只需要根據 Row key 跳轉到指定行就讀取數據。 HBase特別擅長的是對于同一列族的順序讀取, 如順序讀取。5. Cassandra中超級列族與超級列與所以隨機小數據量讀取雖然可行, 但是性能遠遠不HBase 中的列族和列有什么區(qū)別和聯系?超級列 (super column)是一種特殊的列。兩種列都是名 /值對,但是普通列的值是字節(jié)數組, 而超級列的值是一個子列的映射。 超級列不能存儲其他的超級列的映射, 即超級列僅允許使用一層,但是它不限制列的數量。超級列族概念上和普通列族相似,只不過它是超級列的集合。6. Cassandra提供了怎樣的可供用戶選擇的一致性級別?寫一致性如果是向

51、 Cassandra寫數據,一致性級別指定了必須寫多少個副本成功后再返回給客戶端應用。寫可以使用如下一致性級別, ANY 是最低的一致性 (但可用性最高 ), ALL 是最高的一致性 (但可用性最低 ), QUORUM 是中間的可確保強一致性, 可以容忍一定程度的故障。ANY 至少一個節(jié)點響應寫操作。 如果請求的 row key 對應的所有的副本節(jié)點都停止了,接收到請求的節(jié)點會記錄 HINT 消息和請求數據,然后響應寫成功。在所有副本節(jié)點至少有一個啟動之前,所有讀 row key 會失敗。并且 HINT間,如果在這段時間內所有副本節(jié)點還不可用,則數據會丟失。ONETWO集群中至少有 1 個副本

52、節(jié)點寫成功。集群中至少有 2 個副本節(jié)點寫成功。row key 對應的消息只保留一段時THREE 集群中至少有 3 個副本節(jié)點寫成功。QUORUM 集群中至少有 quorum 個副本節(jié)點寫成功 .quorum=(各數據中心副本因子之和 )/2 + 1 ,假如 2 個數據中心, 1 個數據中的副本因子 3, 1 個數據中心的副本因子是 2, quorum=(3+2)/2 + 1 = HYPERLINK l _bookmark1 3LOCAL_QUORUM 集群中同 1 個數據中心至少有 quorum 個副本節(jié)點寫成功。quorum=(本數據中心副本因子 )/2 + 1,假如接受請求的節(jié)點所在的數

53、據中心的副本因子是 2, 則 quorum=(2)/2 + 1 = HYPERLINK l _bookmark2 2EACH_QUORUM 集群中每個數據中心至少有 計算同 LOCAL_QUORUM 。ALL 集群中所有副本節(jié)點寫成功。讀一致性quorum 個副本節(jié)點寫成功。 quorum如果是向 Cassandra讀數據,一致性級別指定了必須多少個副本響應后再返回給客戶端應用結果。 ONE TWOTHREE返回集群最近副本 (決定于 snitch)的響應。 返回集群里 2 個最近副本中的最新數據。 返回集群里 3 個最近副本中的最新數據。QUORUM 返回集群里 quorum 個副本中的最新

54、數據。quorum=(各數據中心副本因子之和 )/2 + 1 ,假如 2 個數據中心, 1 個數據中的副本因子 3, 1 個數據中心的副本因子是 2,quorum=(3+2)/2 + 1 = 3LOCAL_QUORUM 返回集群里當前數據中心 quorum 個副本中的最新數據。quorum=(本數據中心副本因子 )/2 + 1,假如接受請求的節(jié)點所在的數據中心的副本因子是 2, 則 quorum=(2)/2 + 1 = HYPERLINK l _bookmark5 2EACH_QUORUM 返回集群中每個數據中心至少有 quorum 計算同 LOCAL_QUORUM 。ALL 返回集群中所有副

55、本中的最新數據。quorum 個副本中的最新數據。7. Redis 的數據類型是怎樣的?是否像 HBase 一樣是 Key-Value 形式?Redis 并不是簡單的 key-value 存儲, 實際上他是一個數據結構服務器, 支持不同類型的值。也就是說,你不必僅僅把字符串當作鍵所指向的值。下列這些數據類型都可作為值類型。字符串( string) 、列表 (list) 、集合 (set)、有序集合 (orted set)、希表( hash)。? String 是最基本的一種數據類型,普通的 key/value 存儲都可以歸為此類。? List 類型其實就是一個每個子元素都是 String 類型

56、的雙向鏈表。? Set 是 String 類型的無序集合。? Sorted set和 set一樣也是 string 類型元素的集合,不同的是每個元素都會關聯一個double 類型的 score。? Hash 是一個 string 類型的 field 和 value 的映射表 .它的添加, 刪除操作都是 O(1)(平均) .hash特別適合用于存儲對象。8. Redis 提供了哪兩種分布式模型?讀寫分離模型: 傳統(tǒng) Master 與 Slave 模式。數據分片模型: 將每個節(jié)點看成都是獨立的 master,然后通過業(yè)務實現數據分片。結合上面兩種模型,可以將每個 master設計成由一個 mast

57、er 和多個 slave 組成的模型。9. MongoDB 的數據組織形式是怎樣的?它的特點與應用場景是怎樣的?MongoDB 組織數據的方式如下:Key-Value 對 文檔 集合 數據庫多個 Key-Value 對組織起來形成類似于 JSON 格式的文檔, 多個文檔組織成為一個集合,多個集合組織起來, 就形成了數據庫 (database)。 單個 MongoDB 實例可以使用多個數據庫, 每個數據庫都是獨立運作的, 可以有單獨的權限, 每個數據庫的數據被分開保存在不同的文 件里。適用范圍:適合實時的插入, 更新與查詢, 并具備應用程序實時數據存儲所需的復制及高度伸縮性。適合作為信息基礎設施

58、的持久化緩存層。適合由數十或數百臺服務器組成的數據庫。 因為 Mongo 已經包含對 MapReduce 引擎的內置支持。10. 名詞解釋: PRAM、 BSP、 LogP 與 MapReduce.PRAM :即并行隨機存取機 ,也稱之為 SIMD-SM( 共享存儲的單指令流多數據流 )模型 ,是一種應用于并行計算抽象模型 ?PRAM模型中 ,假設有一組有限或無限個獨立的至少擁有簡單算數計算能力和邏輯判斷能力的處理機,每個處理機擁有自己的本地存儲(即寄存器) 假定存在一個容量無限大的共享存儲器, 這個存儲器被切分成特定大小的存儲單元。 時間內,每個處理機都能夠隨機地訪問任意存儲單元。并在單位B

59、SP:整體同步并行計算模型 (Bulk Synchronous Parallel Computing Model) , 又名大同步模型或 BSP 模型。在一個超級步中,各處理器均執(zhí)行局部操作,并且可以通過選路器接收 和發(fā)送消息。LogP: LogP 模型是一種分布存儲器 ?點對點通信的多處理器模型 ?這個模型說明了由互連網絡連接起來的計算機集群的性能特點 ,但沒有描述網絡的結構 ?MapReduce:MapReduce 模型是一種并行編程技術。 它源自函數式編程理念, 并有 Google把它應用到在分布式計算環(huán)境上的大規(guī)模數據處理中。11. 當今流行的大數據處理模型 MapReduce 的數據

60、處理過程及其優(yōu)劣勢。MapReduce 的輸入和輸出都是是一系列的 key/value 對。 MapReduce 運行環(huán)境的用戶通過實現兩個函數 (Map 和 Reduce)來表達自己的算法。 Map 函數, 通過讀入一系列的 key/value對來輸出一系列的以 key/value 對為形式的中間結果。 MapReduce 運行環(huán)境會收集這些中間結果的 key/value 對,并根據 key 的值進行聚合和排序,并將這些 key/value 對有序地傳遞給Reduce 函數。同樣由用戶定義的 列表, 合并這些 value 來生成對應 會產生一個或零個結果 value。Reduce 函數接收這

溫馨提示

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

評論

0/150

提交評論