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

下載本文檔

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

文檔簡(jiǎn)介

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

2、們必須需要實(shí)現(xiàn)的。所以,我們?cè)谠O(shè) 計(jì)分布式系統(tǒng)時(shí)只能在一致性和可用性之間進(jìn)行權(quán)衡。4, 參考 1. 2 節(jié)第 2 章 分布式計(jì)算編程基礎(chǔ)一、填空題1.數(shù)據(jù)包 socket,流式 socket2.無(wú)連接方式,面向連接方式3.RMI 基本應(yīng)用, RMI 客戶回調(diào)應(yīng)用, RMI 樁下載應(yīng)用4.服務(wù)器,客戶端5.數(shù)據(jù)層,業(yè)務(wù)層,應(yīng)用層6.迭代服務(wù)器和并發(fā)服務(wù)器;有狀態(tài)服務(wù)器和無(wú)狀態(tài)服務(wù)器二、問(wèn)答題1. 無(wú)連接方式將以任意順序到達(dá),而有連接方式則以發(fā)送順序按序到達(dá)2. setToTimeout 設(shè)置為 0 則表示永無(wú)超時(shí),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. 分布式應(yīng)用最廣泛最流行的范型是客戶9. 分布式應(yīng)用最基本的范型是消息傳遞模型10. P2P 應(yīng)用有很多,例如 Napster,迅雷,11. 消息傳遞模式是最基本的分布式計(jì)算范型,-服務(wù)器范型PPS 網(wǎng)絡(luò)電視等適用于大多數(shù)應(yīng)用; 客戶 -服務(wù)器范型是最流行的分布式計(jì)算范型,應(yīng)用最為廣泛; P2P 范型又稱(chēng)為對(duì)等結(jié)構(gòu)范型,使得網(wǎng)絡(luò)以最有效率的方式運(yùn)行,適用于各參與者地位平等的網(wǎng)絡(luò);分布式對(duì)象范型,是抽象化的遠(yuǎn)程 調(diào)用,適用于復(fù)雜的分布式計(jì)算應(yīng)用等。第 3 章 云計(jì)算原理與技術(shù)略,參考各章

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

13、現(xiàn)用戶自定義的任務(wù)調(diào)度算法?答:對(duì)于用戶自定義的虛擬機(jī)調(diào)度策略,一般是需要用戶重新實(shí)現(xiàn) VmScheduler 類(lèi)和VmAllocationPolicy 類(lèi)。另外 VmScheduler 調(diào)度類(lèi)一般不用改,因?yàn)樗麄兪怯脕?lái)決定虛擬機(jī) 的調(diào)度策略是時(shí)間還是空間共享的。3.編程題:編寫(xiě)一個(gè)程序,創(chuàng)建一個(gè)包含兩臺(tái)主機(jī)的數(shù)據(jù)中心,每個(gè)臺(tái)主機(jī)擁有四個(gè)核,多 個(gè)虛擬機(jī)。提交 N 個(gè)任務(wù),這些任務(wù)長(zhǎng)度服從均勻分布,并打印任務(wù)長(zhǎng)度與任務(wù)運(yùn)行情況。思路: 比較簡(jiǎn)單, 只有任務(wù)長(zhǎng)度服從均勻分布需要思考一下, 其他都是基本的類(lèi)的使用。均勻分布只需要用一個(gè)隨機(jī)函數(shù)產(chǎn)生某一范圍的均勻隨機(jī)數(shù)即可,因此想到用 Java 類(lèi)庫(kù)

14、中的 Random 類(lèi)。public class MySimExample private static final int NUM_CLOUDLET = 100; / 云任務(wù)的總數(shù)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)建數(shù)據(jù)中心Datacenter datacenter0 = createDatacenter (Datacenter_0 );DatacenterBroker broker = createBroker ();int brokerId = broker .getId();/創(chuàng)建并提交虛擬機(jī)List vmlist = new ArrayList();int numVm = 8;vmlist .addAll( createVm(brokerId , numVm );broker .submitVmList( vmlist );/ 創(chuàng)建并提交任務(wù)List cloudletLis

16、t = new ArrayList();cloudletList .addAll( createCloudlet ( brokerId , NUM_CLOUDLET );broker .submitCloudletList( cloudletList );/啟動(dòng)仿真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)建數(shù)據(jù)中心List hostList = new ArrayList();List peList = new ArrayList();/ 添加四個(gè)核芯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;/ 添加兩臺(tái)主機(jī)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)建虛擬機(jī)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)建云任務(wù)private static

23、List createCloudlet( int brokerId , int numCloudlet ) List cloudletList = new ArrayList();double lambda = 0.1; / 指數(shù)分布的參數(shù)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 文檔 集合 數(shù)據(jù)庫(kù)多個(gè) Key-Value 對(duì)組織起來(lái)形成類(lèi)似于 JSON 格式的文檔, 多個(gè)文檔組織成為一個(gè)集合,多個(gè)集合組織起來(lái), 就形成了數(shù)據(jù)庫(kù) (database)。 單個(gè) MongoDB 實(shí)例可以使用多個(gè)數(shù)據(jù)庫(kù), 每個(gè)數(shù)據(jù)庫(kù)都是獨(dú)立運(yùn)作的, 可以有單獨(dú)的權(quán)限, 每個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)被分開(kāi)保存在不同的文 件里。適用范圍:適合實(shí)時(shí)的插入, 更新

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

43、成果?答: LINCS 項(xiàng)目的全稱(chēng)是 “基于網(wǎng)絡(luò)的細(xì)胞反應(yīng)印記整合圖書(shū)館由麻省理工學(xué)院和哈佛大學(xué)共同組建的 BROAD 研究所承擔(dān),種化學(xué)分子對(duì) 15 種典型人體細(xì)胞刺激后的基因表達(dá)情況?!?。其目標(biāo)是系統(tǒng)檢測(cè) 15000目前該計(jì)劃第一期已獲得了 15 種典型細(xì)胞中 3000 余個(gè)基因沉默和 5000 余種化學(xué)小分子刺激下的 130 余萬(wàn)個(gè)全基因組表達(dá)譜。3、GSEA 算法的主要思想是什么?它分為哪幾個(gè)主要的步驟?當(dāng)某一表達(dá)譜包含 1000 個(gè)基 因,分別取前 50 個(gè)基因和后 50 個(gè)基因?yàn)榛蚣?,與該表達(dá)譜比較算得的富集積分為多少(p=0)?答: GSEA 主要用于分析兩個(gè)不同表形樣本集之間

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

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

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

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

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

49、如何存儲(chǔ)的?隨機(jī)寫(xiě)入: HBase 底層的存儲(chǔ)是采用了一個(gè) keyvalue 的文件結(jié)構(gòu), 稱(chēng)作 hfile 來(lái)實(shí)現(xiàn)的;HBase 的隨機(jī)寫(xiě)入并不是立刻寫(xiě)入 HDFS; 而是先寫(xiě)入內(nèi)存 memstore,當(dāng) memstore 達(dá)到一定的閥值后才會(huì)寫(xiě)入 HDFS ;而且 HBase 的后臺(tái)合并機(jī)制,將 memstore 寫(xiě)入到 HDFS 的小文件合并成大文件;隨機(jī)刪除: HBase 中刪除數(shù)據(jù)并不是立即刪除, 而只是在數(shù)據(jù)上做好標(biāo)記, 然后再下一次合并操作的時(shí)候進(jìn)行清理。隨機(jī)讀取: HBase 在存儲(chǔ)數(shù)據(jù)時(shí)在一個(gè) hfile 中只存儲(chǔ)同一列族的數(shù)據(jù),并且數(shù)據(jù)時(shí)按Row key 排序的,因此在讀取

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

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

52、節(jié)點(diǎn)寫(xiě)成功。集群中至少有 2 個(gè)副本節(jié)點(diǎn)寫(xiě)成功。row key 對(duì)應(yīng)的消息只保留一段時(shí)THREE 集群中至少有 3 個(gè)副本節(jié)點(diǎn)寫(xiě)成功。QUORUM 集群中至少有 quorum 個(gè)副本節(jié)點(diǎn)寫(xiě)成功 .quorum=(各數(shù)據(jù)中心副本因子之和 )/2 + 1 ,假如 2 個(gè)數(shù)據(jù)中心, 1 個(gè)數(shù)據(jù)中的副本因子 3, 1 個(gè)數(shù)據(jù)中心的副本因子是 2, quorum=(3+2)/2 + 1 = HYPERLINK l _bookmark1 3LOCAL_QUORUM 集群中同 1 個(gè)數(shù)據(jù)中心至少有 quorum 個(gè)副本節(jié)點(diǎn)寫(xiě)成功。quorum=(本數(shù)據(jù)中心副本因子 )/2 + 1,假如接受請(qǐng)求的節(jié)點(diǎn)所在的數(shù)

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論