大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)建設(shè)方案_第1頁(yè)
大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)建設(shè)方案_第2頁(yè)
大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)建設(shè)方案_第3頁(yè)
大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)建設(shè)方案_第4頁(yè)
大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)建設(shè)方案_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)建設(shè)方案平臺(tái)簡(jiǎn)介大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)通過(guò)應(yīng)用容器技術(shù),以少量機(jī)器虛擬大量實(shí)驗(yàn)集群,可供大量學(xué)生同時(shí)擁有多套集群進(jìn)行Hadoop相關(guān)試驗(yàn),而每個(gè)學(xué)生的實(shí)驗(yàn)環(huán)境不僅相互隔離,方便高效地完成實(shí)驗(yàn),而且實(shí)驗(yàn)彼此不干擾,即使某個(gè)實(shí)驗(yàn)環(huán)境被破壞,對(duì)其他人也沒(méi)有影響,一鍵重啟就可以擁有一套新集群,大幅度節(jié)省了硬件和人員管理的投入成本。大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)秉承“產(chǎn)、學(xué)、研、用”一體化的思路和模式,從教學(xué)、實(shí)踐、科研和使用多方面注重專(zhuān)業(yè)人才和特色人才的培養(yǎng)。從理論與實(shí)踐雙管齊下,提升高校信息化管理水平和實(shí)驗(yàn)項(xiàng)目研究水平,真正在產(chǎn)業(yè)、學(xué)校、科研及實(shí)踐項(xiàng)目中相互配合,發(fā)展優(yōu)勢(shì),形成生產(chǎn)、學(xué)習(xí)、科學(xué)研究、實(shí)踐運(yùn)用的系統(tǒng)運(yùn)作模式,從而建設(shè)大數(shù)據(jù)特色專(zhuān)業(yè)。大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)實(shí)物圖硬件方面大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)采用cServer機(jī)架式服務(wù)器,其英特爾?至強(qiáng)?處理器E5產(chǎn)品家族的性能比上一代提升多至80%,并具備更出色的能源效率。通過(guò)英特爾E5家族系列CPU及英特爾服務(wù)器組件,可滿(mǎn)足擴(kuò)展I/O靈活度、最大化內(nèi)存容量、大容量存儲(chǔ)和冗余計(jì)算等需求。整機(jī)一體化交付,系統(tǒng)根據(jù)學(xué)校的專(zhuān)業(yè)人數(shù)規(guī)模進(jìn)行不同規(guī)格的配置,可進(jìn)行同時(shí)滿(mǎn)足30人、60人、150人實(shí)驗(yàn)規(guī)模的選擇。軟件層面有Hadoop、HBase、Ambari、HDFS、YARN、MapReduce、ZooKeeper、Spark、Storm、Hive、Pig、Oozie、Mahout、R語(yǔ)言等不同的大數(shù)據(jù)應(yīng)用組件供各大高校根據(jù)具體應(yīng)用進(jìn)行選擇實(shí)驗(yàn)部署。此外,作為一個(gè)可供大量學(xué)生完成大數(shù)據(jù)與云計(jì)算實(shí)驗(yàn)的集成環(huán)境,大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)同步提供了配套的培訓(xùn)服務(wù),對(duì)于教學(xué)組件的安裝、配置,教材、實(shí)驗(yàn)手冊(cè)等具體應(yīng)用提供一站式服務(wù),有助于高校更好地滿(mǎn)足課程設(shè)計(jì)、課程上機(jī)實(shí)驗(yàn)、實(shí)習(xí)實(shí)訓(xùn)、科研訓(xùn)練等多方面需求,并在一定程度上緩解大數(shù)據(jù)師資不足的問(wèn)題。對(duì)于各大高校而言,即使沒(méi)有任何大數(shù)據(jù)實(shí)驗(yàn)基礎(chǔ),該平臺(tái)也能助其輕松開(kāi)展大數(shù)據(jù)與云計(jì)算的教學(xué)、實(shí)驗(yàn)與科研。架構(gòu)設(shè)計(jì)產(chǎn)品架構(gòu)大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)架構(gòu)大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)從軟硬件、客戶(hù)端及實(shí)驗(yàn)配套教材培訓(xùn)等方面考慮,針對(duì)大數(shù)據(jù)專(zhuān)業(yè)建設(shè)的課程體系不完善、基礎(chǔ)實(shí)驗(yàn)環(huán)境薄弱、缺乏實(shí)訓(xùn)項(xiàng)目三大難題,為各大高校量身定制的大數(shù)據(jù)軟硬件一體化的教學(xué)科研解決方案。大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)整體設(shè)計(jì)是基于Docker容器集群技術(shù)搭建的Hadoop實(shí)驗(yàn)平臺(tái),并針對(duì)大數(shù)據(jù)實(shí)驗(yàn)的需求提供了完善的使用環(huán)境,可一鍵創(chuàng)造隨時(shí)運(yùn)行的實(shí)驗(yàn)環(huán)境,其中采用Mesos+ZooKeeper+Mrathon架構(gòu)管理Docker集群,Docker平臺(tái)架構(gòu)如下圖所示:Docker容器設(shè)計(jì)架構(gòu)其中,Mesos是Apache下的開(kāi)源分布式資源管理框架,它被稱(chēng)為是分布式系統(tǒng)的內(nèi)核;ZooKeeper用來(lái)做主節(jié)點(diǎn)的容錯(cuò)和數(shù)據(jù)同步;Marathon則是一個(gè)Mesos框架,為部署提供RESTAPI服務(wù),實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)等功能。實(shí)驗(yàn)時(shí),系統(tǒng)預(yù)先針對(duì)大數(shù)據(jù)實(shí)驗(yàn)內(nèi)容構(gòu)建一系列基于CentOS7的特定容器鏡像,通過(guò)Docker在集群主機(jī)內(nèi)構(gòu)建容器,充分利用容器資源利用率高的特點(diǎn),為每個(gè)使用平臺(tái)的用戶(hù)開(kāi)辟屬于自己完全隔離的Hadoop實(shí)驗(yàn)環(huán)境。容器內(nèi)部,用戶(hù)完全可以像使用linux操作系統(tǒng)一樣的使用容器,并且不會(huì)被其他用戶(hù)的集群造成任何影響,僅僅使用幾臺(tái)機(jī)器,就可能虛擬出能夠支持幾十個(gè)甚至上百個(gè)用戶(hù)同時(shí)使用的隔離集群環(huán)境。Docker容器技術(shù)大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)最核心的部分采用Docker容器技術(shù),Docker是一個(gè)開(kāi)源的應(yīng)用容器引擎,可以讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)通過(guò)Docker在容器內(nèi)部快速自動(dòng)化部署應(yīng)用,并通過(guò)內(nèi)核虛擬化技術(shù)來(lái)提供容器的資源隔離與安全保障等,以此來(lái)為大量的學(xué)生虛擬創(chuàng)造出多個(gè)互相隔離的實(shí)驗(yàn)環(huán)境,及時(shí)實(shí)驗(yàn)環(huán)境破壞也不影響其他人的使用。同時(shí)由于Docker通過(guò)操作系統(tǒng)層的虛擬化實(shí)現(xiàn)隔離,所以Docker容器在運(yùn)行時(shí),不需要類(lèi)似虛擬機(jī)(VM)額外的操作系統(tǒng)開(kāi)銷(xiāo),提高資源利用率,并且提升諸如IO等方面的性能,使得大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)可以通過(guò)少量服務(wù)器即可構(gòu)建出供大量學(xué)生進(jìn)行實(shí)驗(yàn)的實(shí)驗(yàn)環(huán)境。Docker平臺(tái)架構(gòu)Docker平臺(tái)架構(gòu)圖如下:Docker使用客戶(hù)端-服務(wù)器(client-server)架構(gòu)模式,Docker客戶(hù)端會(huì)與Docker守護(hù)進(jìn)程進(jìn)行通信。Docker守護(hù)進(jìn)程會(huì)處理復(fù)雜繁重的任務(wù),例如建立、運(yùn)行、發(fā)布Docker容器。Docker客戶(hù)端和守護(hù)進(jìn)程可以運(yùn)行在同一個(gè)系統(tǒng)上,當(dāng)然也可以使用Docker客戶(hù)端去連接一個(gè)遠(yuǎn)程的Docker守護(hù)進(jìn)程。Docker客戶(hù)端和守護(hù)進(jìn)程之間通過(guò)socket或者RESTfulAPI進(jìn)行通信。如下圖所示:Docker守護(hù)進(jìn)程Docker守護(hù)進(jìn)程運(yùn)行在一臺(tái)主機(jī)上,用戶(hù)并不直接和守護(hù)進(jìn)程進(jìn)行交互,而是通過(guò)Docker客戶(hù)端間接和其通信,從來(lái)帶來(lái)安全性和隔離性。Docker客戶(hù)端Docker客戶(hù)端,實(shí)際上是docker的二進(jìn)制程序,是主要的用戶(hù)與Docker交互方式。它接收用戶(hù)指令并且與背后的Docker守護(hù)進(jìn)程通信,如此來(lái)回往復(fù)。Docker內(nèi)部Docker內(nèi)部分為三大部件:Docker鏡像(Dockerimages)、Docker倉(cāng)庫(kù)(Dockerregisteries)、Docker容器(Dockercontainers)。Docker鏡像是一個(gè)只讀的模板,鏡像是用來(lái)創(chuàng)建容器,Docker提供了簡(jiǎn)單的放來(lái)來(lái)建立新的鏡像或者升級(jí)現(xiàn)有的鏡像一個(gè)鏡像可以包含一個(gè)運(yùn)行在Apache上的Web應(yīng)用和其使用的Ubuntu操作系統(tǒng)。Docker倉(cāng)庫(kù)用來(lái)保存鏡像,可以理解為代碼控制中的代碼倉(cāng)庫(kù),分為公有和私有兩種,提供了龐大的鏡像集合供使用,這些鏡像可以是自己創(chuàng)造的也可以在別人的鏡像基礎(chǔ)上進(jìn)行創(chuàng)造。Docker容器和文件夾很類(lèi)似,一個(gè)Docker容器包含了所有的某個(gè)應(yīng)用運(yùn)行所需要的環(huán)境。每一個(gè)Docker容器都是從Docker鏡像創(chuàng)建的。Docker容器可以運(yùn)行、開(kāi)始、停止、移動(dòng)和刪除。每一個(gè)Docker容器都是獨(dú)立和安全的應(yīng)用平臺(tái),Docker容器是Docker的運(yùn)行部分。工作模式構(gòu)建鏡像DockerImage是一個(gè)構(gòu)建容器的只讀模板,它包含了容器啟動(dòng)所需的所有信息,包括運(yùn)行哪些進(jìn)程和配置數(shù)據(jù)。所有的鏡像都會(huì)基于一個(gè)基本鏡像構(gòu)建,緊接著會(huì)根據(jù)Dockerfile中的指令創(chuàng)建模板,對(duì)于每個(gè)指令,在鏡像上創(chuàng)建一個(gè)新的層。運(yùn)行容器運(yùn)行容器源于我們?cè)诘谝徊街袆?chuàng)建的鏡像。當(dāng)一個(gè)容器被啟動(dòng)后,一個(gè)讀寫(xiě)層會(huì)被添加到鏡像的頂層;當(dāng)分配合適的網(wǎng)絡(luò)和IP地址后,最應(yīng)用程序就可以在容器中運(yùn)行了。網(wǎng)絡(luò)環(huán)境的搭建Docker的原生態(tài)網(wǎng)絡(luò)通信是通過(guò)NAT和Dockerproxy來(lái)實(shí)現(xiàn)的;利用端口映射和修改宿主機(jī)的iptables規(guī)則實(shí)現(xiàn)了不同容器間、容器與外界的互相訪(fǎng)問(wèn)。然而,這樣的NAT方式(SNAT和DNAT)不僅影響效率,同時(shí)還使得容器內(nèi)所看的自己的IP地址和外部所見(jiàn)的該容器IP地址不一致,阻礙了很多集群化功能的實(shí)現(xiàn)(如Redis集群、ElasticSearch集群的自動(dòng)組播發(fā)現(xiàn)需要基于默認(rèn)端口規(guī)則),使得一些現(xiàn)有的工具無(wú)法正常工作。例如,在一些自動(dòng)服務(wù)注冊(cè)和發(fā)現(xiàn)的應(yīng)用中,容器中的應(yīng)用在進(jìn)行自動(dòng)注冊(cè)時(shí)只能看到自己內(nèi)部的IP并將此IP注冊(cè),但是其他外部的模塊卻無(wú)法通過(guò)此IP來(lái)訪(fǎng)問(wèn)該容器應(yīng)用。然而,大數(shù)據(jù)系統(tǒng)由于數(shù)據(jù)量大、計(jì)算量大的特性,必然需要由多個(gè)主機(jī)組成的一個(gè)集群來(lái)完成計(jì)算分析任務(wù)。因此,基于Docker來(lái)搭建一個(gè)大數(shù)據(jù)分析系統(tǒng)的必要前提就是保證多個(gè)Docker的跨主機(jī)通信能夠暢通無(wú)阻、保持高效。為了解決Docker原生態(tài)網(wǎng)絡(luò)通信的上述問(wèn)題,在云計(jì)算生態(tài)圈里涌現(xiàn)了一些優(yōu)秀的分布式Docker網(wǎng)絡(luò)配置和管理工具,如flannel、weave、socketplane等,其總體思想是基于物理網(wǎng)絡(luò)在容器間構(gòu)造一個(gè)overlay網(wǎng)絡(luò)。從Docker的1.9版本開(kāi)始,Docker的網(wǎng)絡(luò)部分自成一塊(libnetwork),并支持復(fù)雜的Overlay模式。Overlay網(wǎng)絡(luò)的總體思想是對(duì)原生態(tài)的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行封裝,這里又可分為在用戶(hù)層進(jìn)行封裝(如weave、flannel)和在內(nèi)核層進(jìn)行封裝(如sockplane)。下面分別以flannel為例稍做講解。Flannel的Overlay設(shè)計(jì)—鏡像構(gòu)建Flannel在每個(gè)節(jié)點(diǎn)(主機(jī))上運(yùn)行一個(gè)守護(hù)進(jìn)程(flanneld)。這個(gè)守護(hù)進(jìn)程負(fù)責(zé)為每一個(gè)節(jié)點(diǎn)分配一個(gè)子網(wǎng)段。該分配信息存儲(chǔ)在etcd中(一種分布式存儲(chǔ)方案)。同時(shí),每個(gè)節(jié)點(diǎn)上的Dockerdaemon會(huì)從該子網(wǎng)段中為主機(jī)上運(yùn)行的容器分配一個(gè)IP地址,如圖12-3所示。因此,在容器中的應(yīng)用所看到的IP地址和外部所看到的該容器的IP地址是一致的。在轉(zhuǎn)發(fā)報(bào)文時(shí),F(xiàn)lannel支持不同的后端策略,例如,主機(jī)網(wǎng)管模式、UDP模式等。以UDP模式為例,flannel形成了一個(gè)Overlay網(wǎng)絡(luò),通過(guò)TUN設(shè)備對(duì)每個(gè)IPfragment進(jìn)行UDP包頭封裝,流程如圖12-3所示。容器Overlay網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)原理—容器運(yùn)行介紹了Flannel工具后,我們透過(guò)現(xiàn)象看本質(zhì),討論下設(shè)計(jì)一個(gè)Overlay網(wǎng)絡(luò)系統(tǒng)的原理和要點(diǎn)。Flannel的Overlay網(wǎng)絡(luò)實(shí)現(xiàn)模式ARP:在經(jīng)典的物理網(wǎng)絡(luò)中,當(dāng)一個(gè)主機(jī)S訪(fǎng)問(wèn)另一個(gè)主機(jī)D的時(shí)候,S發(fā)出的第一個(gè)報(bào)文就是一個(gè)ARP請(qǐng)求的廣播報(bào)文,交換機(jī)會(huì)在同一個(gè)子網(wǎng)內(nèi)廣播這個(gè)報(bào)文給所有的子網(wǎng)內(nèi)節(jié)點(diǎn)。如果D在同一個(gè)子網(wǎng)內(nèi),它會(huì)接收到這個(gè)請(qǐng)求并將做出回復(fù),使得S和D可以后續(xù)進(jìn)行通信。在容器環(huán)境下,可以如實(shí)地把報(bào)文廣播出去,并通過(guò)spanningtree等算法來(lái)避免廣播回路。此外,還可以通過(guò)IP組播的功能來(lái)處理ARP請(qǐng)求和響應(yīng)。最后,還可以基于SDN對(duì)全局的網(wǎng)絡(luò)拓?fù)湫畔⒌陌盐?,通過(guò)SDN控制器來(lái)實(shí)現(xiàn)ARP協(xié)議。IP層互通:在解決了二層網(wǎng)絡(luò)的通信問(wèn)題后,還需要解決的就是容器與容器之間、容器與外網(wǎng)的互通。對(duì)于容器內(nèi)的應(yīng)用可以訪(fǎng)問(wèn)容器外的外網(wǎng),一般可以采用NAT方式,使得容器最終使用物理宿主機(jī)的網(wǎng)關(guān)。為了保證容器能夠?qū)ν馓峁┓?wù),可以采用類(lèi)似Docker的端口映射方式實(shí)現(xiàn)DNAT,并通過(guò)將容器連接到負(fù)載均衡設(shè)備從而對(duì)外提供服務(wù)。Docker容器優(yōu)勢(shì)運(yùn)行速度快系統(tǒng)運(yùn)行時(shí)的性能可以獲取極大提升,其管理操作(啟動(dòng),停止,開(kāi)始,重啟等等)都是以秒或毫秒為單位的,可以在一瞬間創(chuàng)建隨時(shí)運(yùn)行的實(shí)驗(yàn)環(huán)境。部署簡(jiǎn)單將應(yīng)用和系統(tǒng)“容器化”,不添加額外的操作系統(tǒng),和虛擬機(jī)一樣部署非常簡(jiǎn)單,支持一鍵創(chuàng)造和銷(xiāo)毀實(shí)驗(yàn)集群,同時(shí)實(shí)驗(yàn)環(huán)境互不干擾,如果實(shí)驗(yàn)環(huán)境破壞,一鍵重啟即可建立新集群安全隔離采用Mesos+ZooKeeper+Mrathon架構(gòu)管理集群,實(shí)驗(yàn)集群完全隔離。輕量擁有足夠的“操作系統(tǒng)”,僅需添加或減小鏡像即可。在幾臺(tái)服務(wù)器上就可以虛擬出大量的實(shí)驗(yàn)環(huán)境,供上百師生進(jìn)行教學(xué)實(shí)驗(yàn)工作。成本低以容器化應(yīng)用作為交付的標(biāo)準(zhǔn),立足于云,為開(kāi)發(fā)者和企業(yè)提供了一個(gè)快速構(gòu)建、集成、部署、運(yùn)行容器化應(yīng)用的平臺(tái),幫助高校和企業(yè)提高應(yīng)用開(kāi)發(fā)的迭代效率,簡(jiǎn)化運(yùn)維環(huán)節(jié),降低運(yùn)維成本。云支持可以為不計(jì)其數(shù)的云服務(wù)提供創(chuàng)建和管理Linux容器框架。Hadoop實(shí)驗(yàn)平臺(tái)Hadoop架構(gòu)Hadoop可以在大數(shù)據(jù)處理應(yīng)用中廣泛應(yīng)用,得益于其自身在數(shù)據(jù)提取、變形和加載(ETL)方面上的天然優(yōu)勢(shì)。Hadoop的分布式架構(gòu),將大數(shù)據(jù)處理引擎盡可能的靠近存儲(chǔ),對(duì)例如像ETL這樣的批處理操作相對(duì)合適,因?yàn)轭?lèi)似這樣操作的批處理結(jié)果可以直接走向存儲(chǔ)。Hadoop的MapReduce功能實(shí)現(xiàn)了將單個(gè)任務(wù)打碎,并將碎片任務(wù)(Map)發(fā)送到多個(gè)節(jié)點(diǎn)上,之后再以單個(gè)數(shù)據(jù)集的形式加載(Reduce)到數(shù)據(jù)倉(cāng)庫(kù)里。Hadoop架構(gòu)圖通過(guò)上圖我們可以看出,Hadoop由許多元素構(gòu)成。其最底部是HadoopDistributedFileSystem(HDFS),它存儲(chǔ)Hadoop集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件。HDFS(對(duì)于本文)的上一層是MapReduce引擎,該引擎由JobTrackers和TaskTrackers組成。通過(guò)對(duì)Hadoop分布式計(jì)算平臺(tái)最核心的分布式文件系統(tǒng)HDFS、MapReduce處理過(guò)程,以及數(shù)據(jù)倉(cāng)庫(kù)工具Hive和分布式數(shù)據(jù)庫(kù)Hbase的介紹,基本涵蓋了Hadoop分布式平臺(tái)的所有技術(shù)核心。Hadoop關(guān)鍵技術(shù)下面我們將從HDFS、MapReduce、HBase三大部分詳細(xì)介紹Hadoop的關(guān)鍵指數(shù):HDFSHDFS架構(gòu)圖對(duì)外部客戶(hù)機(jī)而言,HDFS就像一個(gè)傳統(tǒng)的分級(jí)文件系統(tǒng)??梢詣?chuàng)建、刪除、移動(dòng)或重命名文件,等等。但是HDFS的架構(gòu)是基于一組特定的節(jié)點(diǎn)構(gòu)建的(參見(jiàn)圖1),這是由它自身的特點(diǎn)決定的。這些節(jié)點(diǎn)包括NameNode(僅一個(gè)),它在HDFS內(nèi)部提供元數(shù)據(jù)服務(wù);DataNode,它為HDFS提供存儲(chǔ)塊。由于僅存在一個(gè)NameNode,因此這是HDFS的一個(gè)缺點(diǎn)(單點(diǎn)失?。4鎯?chǔ)在HDFS中的文件被分成塊,然后將這些塊復(fù)制到多個(gè)計(jì)算機(jī)中(DataNode)。這與傳統(tǒng)的RAID架構(gòu)大不相同。塊的大小(通常為64MB)和復(fù)制的塊數(shù)量在創(chuàng)建文件時(shí)由客戶(hù)機(jī)決定。NameNode可以控制所有文件操作。HDFS內(nèi)部的所有通信都基于標(biāo)準(zhǔn)的TCP/IP協(xié)議。MapReduceMapReduce架構(gòu)圖MapReduce主要功能如下:數(shù)據(jù)劃分和計(jì)算任務(wù)調(diào)度系統(tǒng)自動(dòng)將一個(gè)作業(yè)(Job)待處理的大數(shù)據(jù)劃分為很多個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊對(duì)應(yīng)于一個(gè)計(jì)算任務(wù)(Task),并自動(dòng)調(diào)度計(jì)算節(jié)點(diǎn)來(lái)處理相應(yīng)的數(shù)據(jù)塊。作業(yè)和任務(wù)調(diào)度功能主要負(fù)責(zé)分配和調(diào)度計(jì)算節(jié)點(diǎn)(Map節(jié)點(diǎn)或Reduce節(jié)點(diǎn)),同時(shí)負(fù)責(zé)監(jiān)控這些節(jié)點(diǎn)的執(zhí)行狀態(tài),并負(fù)責(zé)Map節(jié)點(diǎn)執(zhí)行的同步控制。數(shù)據(jù)/代碼互定位為了減少數(shù)據(jù)通信,一個(gè)基本原則是本地化數(shù)據(jù)處理,即一個(gè)計(jì)算節(jié)點(diǎn)盡可能處理其本地磁盤(pán)上所分布存儲(chǔ)的數(shù)據(jù),這實(shí)現(xiàn)了代碼向數(shù)據(jù)的遷移;當(dāng)無(wú)法進(jìn)行這種本地化數(shù)據(jù)處理時(shí),再尋找其他可用節(jié)點(diǎn)并將數(shù)據(jù)從網(wǎng)絡(luò)上傳送給該節(jié)點(diǎn)(數(shù)據(jù)向代碼遷移),但將盡可能從數(shù)據(jù)所在的本地機(jī)架上尋找可用節(jié)點(diǎn)以減少通信延遲。系統(tǒng)優(yōu)化為了減少數(shù)據(jù)通信開(kāi)銷(xiāo),中間結(jié)果數(shù)據(jù)進(jìn)入Reduce節(jié)點(diǎn)前會(huì)進(jìn)行一定的合并處理;一個(gè)Reduce節(jié)點(diǎn)所處理的數(shù)據(jù)可能會(huì)來(lái)自多個(gè)Map節(jié)點(diǎn),為了避免Reduce計(jì)算階段發(fā)生數(shù)據(jù)相關(guān)性,Map節(jié)點(diǎn)輸出的中間結(jié)果需使用一定的策略進(jìn)行適當(dāng)?shù)膭澐痔幚?,保證相關(guān)性數(shù)據(jù)發(fā)送到同一個(gè)Reduce節(jié)點(diǎn);此外,系統(tǒng)還進(jìn)行一些計(jì)算性能優(yōu)化處理,如對(duì)最慢的計(jì)算任務(wù)采用多備份執(zhí)行、選最快完成者作為結(jié)果。出錯(cuò)檢測(cè)和恢復(fù)以低端商用服務(wù)器構(gòu)成的大規(guī)模MapReduce計(jì)算集群中,節(jié)點(diǎn)硬件(主機(jī)、磁盤(pán)、內(nèi)存等)出錯(cuò)和軟件出錯(cuò)是常態(tài),因此MapReduce需要能檢測(cè)并隔離出錯(cuò)節(jié)點(diǎn),并調(diào)度分配新的節(jié)點(diǎn)接管出錯(cuò)節(jié)點(diǎn)的計(jì)算任務(wù)。同時(shí),系統(tǒng)還將維護(hù)數(shù)據(jù)存儲(chǔ)的可靠性,用多備份冗余存儲(chǔ)機(jī)制提高數(shù)據(jù)存儲(chǔ)的可靠性,并能及時(shí)檢測(cè)和恢復(fù)出錯(cuò)的數(shù)據(jù)。HBaseHBace架構(gòu)圖HBase即HadoopDatabase,是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)PCServer上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。上圖描述HadoopEcoSystem中的各層系統(tǒng)。其中,HBase位于結(jié)構(gòu)化存儲(chǔ)層,HadoopHDFS為HBase提供了高可靠性的底層存儲(chǔ)支持,HadoopMapReduce為HBase提供了高性能的計(jì)算能力,Zookeeper為HBase提供了穩(wěn)定服務(wù)和failover機(jī)制。此外,Pig和Hive還為HBase提供了高層語(yǔ)言支持,使得在HBase上進(jìn)行數(shù)據(jù)統(tǒng)計(jì)處理變的非常簡(jiǎn)單。Sqoop則為HBase提供了方便的RDBMS數(shù)據(jù)導(dǎo)入功能,使得傳統(tǒng)數(shù)據(jù)庫(kù)數(shù)據(jù)向HBase中遷移變的非常方便。Hadoop優(yōu)勢(shì)Hadoop是一個(gè)能夠讓用戶(hù)輕松架構(gòu)和使用的分布式計(jì)算平臺(tái)。用戶(hù)可以輕松地在Hadoop上開(kāi)發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。它主要有以下幾個(gè)優(yōu)點(diǎn):高可靠性:按位存儲(chǔ)和處理數(shù)據(jù)的能力值得人們信賴(lài)。高擴(kuò)展性:在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中。高效性:能夠在節(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)態(tài)平衡,因此處理速度非???。高容錯(cuò)性:能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配。低成本:與一體機(jī)、商用數(shù)據(jù)倉(cāng)庫(kù)以及QlikView、YonghongZ-Suite等數(shù)據(jù)集市相比,Hadoop是開(kāi)源的,項(xiàng)目的軟件成本因此會(huì)大大降低。主要功能介紹登錄界面大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)登錄首頁(yè),輸入大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)訪(fǎng)問(wèn)地址,輸入相應(yīng)賬號(hào)與密碼,點(diǎn)擊登錄即可。賬號(hào)管理系統(tǒng)管理員和教師角色登錄后,可以看到用戶(hù)賬戶(hù)管理界面。系統(tǒng)管理員用戶(hù)可以在該界面中查看或修改所有的教師和學(xué)生用戶(hù)信息,并可以注冊(cè)或銷(xiāo)毀教師或?qū)W生用戶(hù)賬戶(hù);教師用戶(hù)可以在該界面中查看或修改自己建立的所有學(xué)生用戶(hù)信息,并可以注冊(cè)或銷(xiāo)毀自己的學(xué)生用戶(hù)賬戶(hù)。實(shí)驗(yàn)管理此處的集群管理包含“開(kāi)始實(shí)驗(yàn)”和“終止實(shí)驗(yàn)”,由于xxxxx據(jù)實(shí)驗(yàn)平臺(tái)采用“Docker”技術(shù),因此能夠在幾乎不占用系統(tǒng)資源情況下,實(shí)現(xiàn)大量機(jī)器快速創(chuàng)建與銷(xiāo)毀,不必?fù)?dān)心資源消耗高、啟動(dòng)銷(xiāo)毀慢、管理維護(hù)難等問(wèn)題。(1)開(kāi)始實(shí)驗(yàn)當(dāng)需要開(kāi)始實(shí)驗(yàn)時(shí),直接點(diǎn)擊實(shí)驗(yàn)界面對(duì)應(yīng)實(shí)驗(yàn)面板上的啟動(dòng)按鈕即可,后臺(tái)會(huì)快速為用戶(hù)新建五臺(tái)能夠支撐該實(shí)驗(yàn)的預(yù)裝CentOS7操作系統(tǒng)的機(jī)器,并配置好各自的主機(jī)名和IP地址等。(2)終止實(shí)驗(yàn)若實(shí)驗(yàn)過(guò)程中,由于命令敲錯(cuò)等各種原因?qū)е录簾o(wú)法使用,可在實(shí)驗(yàn)頁(yè)面中隨時(shí)終止您的實(shí)驗(yàn)進(jìn)程,銷(xiāo)毀失效的集群,之后再重新啟動(dòng)該實(shí)驗(yàn),創(chuàng)建新的集群。資源管理系統(tǒng)具備資源監(jiān)控管理功能,可實(shí)時(shí)展示系統(tǒng)內(nèi)的集群使用情況、人數(shù)上限和當(dāng)前使用量情況,通過(guò)對(duì)實(shí)驗(yàn)平臺(tái)狀態(tài)的監(jiān)控,以實(shí)現(xiàn)對(duì)資源的不斷優(yōu)化。學(xué)習(xí)資料大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)提供實(shí)驗(yàn)所需的學(xué)習(xí)資料,學(xué)生在做實(shí)驗(yàn)的同時(shí)可查看和下載每個(gè)實(shí)驗(yàn)步驟的操作手冊(cè)及大數(shù)據(jù)教材配套PPT。我的報(bào)告學(xué)生通過(guò)我的報(bào)告查看自己所做的每個(gè)實(shí)驗(yàn)過(guò)程及最終得分。相關(guān)下載大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)的相關(guān)下載界面提供了實(shí)驗(yàn)所需的軟件及插件的下載,為避免軟件版本不同導(dǎo)致實(shí)驗(yàn)環(huán)境配置錯(cuò)誤,請(qǐng)盡量下載和使用此處指定的軟件版本與插件。配套資源作為一個(gè)可供大量學(xué)生完成大數(shù)據(jù)與云計(jì)算實(shí)驗(yàn)的集成環(huán)境,該平臺(tái)同步提供了配套的培訓(xùn)服務(wù),對(duì)于教學(xué)組件的安裝、配置,教材、實(shí)驗(yàn)手冊(cè)等具體應(yīng)用提供一站式服務(wù),有助于高校更好地滿(mǎn)足課程設(shè)計(jì)、課程上機(jī)實(shí)驗(yàn)、實(shí)習(xí)實(shí)訓(xùn)、科研訓(xùn)練等多方面需求,并在一定程度上緩解大數(shù)據(jù)師資不足的問(wèn)題。對(duì)于各大高校而言,即使沒(méi)有任何大數(shù)據(jù)實(shí)驗(yàn)基礎(chǔ),該平臺(tái)也能助其輕松開(kāi)展大數(shù)據(jù)與云計(jì)算的教學(xué)、實(shí)驗(yàn)與科研。具體資源如下:內(nèi)容充實(shí)的課程體系在《實(shí)戰(zhàn)Hadoop2.0——從云計(jì)算到大數(shù)據(jù)》和實(shí)驗(yàn)手冊(cè)的指導(dǎo)之下,大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)解決方案涵蓋大數(shù)據(jù)算法、接口、工具、平臺(tái)等多方面內(nèi)容,從大數(shù)據(jù)監(jiān)測(cè)與收集、大數(shù)據(jù)存儲(chǔ)與處理、大數(shù)據(jù)分析與挖掘直至大數(shù)據(jù)創(chuàng)新,幫助高校構(gòu)建完善的大數(shù)據(jù)課程體系。課程體系多元化的大數(shù)據(jù)資源包大數(shù)據(jù)系列教材《實(shí)戰(zhàn)Hadoop2.0》:國(guó)內(nèi)第一本Hadoop編程書(shū)籍的升級(jí)版——《實(shí)戰(zhàn)Hadoop2.0》及其配套PPT(國(guó)內(nèi)知名云計(jì)算專(zhuān)家、中國(guó)信息協(xié)會(huì)大數(shù)據(jù)分會(huì)副會(huì)長(zhǎng)劉鵬傾力打造)實(shí)戰(zhàn)Hadoop2.0在此之前,劉鵬教授帶領(lǐng)編著團(tuán)隊(duì),相繼出版了《云計(jì)算》、《大數(shù)據(jù)》(《云計(jì)算》已經(jīng)被全國(guó)高校采用,其被引用量排名全國(guó)計(jì)算機(jī)圖書(shū)第一名),并在教材之外,輔助提供相應(yīng)的教學(xué)計(jì)劃、課件、實(shí)驗(yàn)規(guī)劃等。同時(shí),xxxx數(shù)據(jù)團(tuán)隊(duì)聯(lián)合全國(guó)各高校老師,為本科和高職院校分別準(zhǔn)備了《大數(shù)據(jù)可視化》、《深度學(xué)習(xí)》、《數(shù)據(jù)挖掘》、《虛擬化與容器》以及《R語(yǔ)言》、《大數(shù)據(jù)基礎(chǔ)》、《大數(shù)據(jù)實(shí)踐》、《大數(shù)據(jù)系統(tǒng)運(yùn)維》、《數(shù)據(jù)清洗》、《數(shù)據(jù)挖掘基礎(chǔ)》、《云計(jì)算基礎(chǔ)》兩個(gè)系列教材,目前已經(jīng)陸續(xù)進(jìn)入定稿出版階段。綜合85個(gè)大數(shù)據(jù)實(shí)驗(yàn)的實(shí)驗(yàn)手冊(cè)及配套高清視頻課程:涵蓋原理驗(yàn)證、綜合應(yīng)用、自主設(shè)計(jì)及創(chuàng)新的多層次實(shí)驗(yàn)內(nèi)容,每個(gè)實(shí)驗(yàn)呈現(xiàn)詳細(xì)的實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)原理和實(shí)驗(yàn)流程指導(dǎo),配套相應(yīng)的實(shí)驗(yàn)數(shù)據(jù)和高清視頻課程,參照手冊(cè)即可輕松完成每個(gè)實(shí)驗(yàn)。實(shí)驗(yàn)手冊(cè)大綱網(wǎng)站資源:國(guó)內(nèi)專(zhuān)業(yè)領(lǐng)域排名第一的網(wǎng)站——中國(guó)大數(shù)據(jù)、中國(guó)云計(jì)算、中國(guó)存儲(chǔ)、中國(guó)物聯(lián)網(wǎng)、中國(guó)智慧城市等提供全線(xiàn)支持,一網(wǎng)打盡各類(lèi)優(yōu)質(zhì)資源。實(shí)驗(yàn)數(shù)據(jù)提供基于大數(shù)據(jù)實(shí)驗(yàn)需求,與大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)配套提供的還有各種實(shí)驗(yàn)數(shù)據(jù),其中不僅包含共用的公有數(shù)據(jù),每一套大數(shù)據(jù)組件也有自己的實(shí)驗(yàn)數(shù)據(jù),種類(lèi)豐富,應(yīng)用性強(qiáng)。實(shí)驗(yàn)數(shù)據(jù)將做打包處理,不同的實(shí)驗(yàn)將搭配不同的數(shù)據(jù)與實(shí)驗(yàn)工具,解決實(shí)驗(yàn)數(shù)據(jù)短缺的困擾,在實(shí)驗(yàn)環(huán)境與實(shí)驗(yàn)手冊(cè)的基礎(chǔ)上,做到有設(shè)備就能實(shí)驗(yàn),有數(shù)據(jù)就會(huì)實(shí)驗(yàn)。專(zhuān)業(yè)培訓(xùn)培訓(xùn)簡(jiǎn)介眾所周知,大數(shù)據(jù)迎來(lái)黃金發(fā)展期,面對(duì)百萬(wàn)級(jí)的大數(shù)據(jù)人才缺口,大數(shù)據(jù)專(zhuān)業(yè)建設(shè)早已提上日程。然而,大數(shù)據(jù)專(zhuān)業(yè)的人才培養(yǎng)計(jì)劃、課程體系直至師資力量等還處于試錯(cuò)階段,各高校老師對(duì)于相關(guān)專(zhuān)業(yè)的開(kāi)展仍然處于茫然狀態(tài)。為此,xx大數(shù)據(jù)提供以理論+實(shí)戰(zhàn)的培訓(xùn)形式,為各大高校提供師資力量培訓(xùn)。xxx大數(shù)據(jù)提供的大數(shù)據(jù)專(zhuān)業(yè)師資力量培訓(xùn)由金陵科技學(xué)院與江蘇省云計(jì)算論壇共同主辦,英特爾(中國(guó))公司與電子工業(yè)出版社協(xié)辦,培訓(xùn)由清華大學(xué)博士、中國(guó)信息協(xié)會(huì)大數(shù)據(jù)分會(huì)副會(huì)長(zhǎng)劉鵬教授傾情授課,致力于用高效的辦法,在幾天內(nèi)為各大高校免費(fèi)培養(yǎng)一大批大數(shù)據(jù)師資力量,幫助全國(guó)教師對(duì)大數(shù)據(jù)跨過(guò)從理論到實(shí)踐、從知道到用過(guò)的門(mén)檻。往期培訓(xùn)介紹曹騮博士深度學(xué)習(xí)培訓(xùn)平臺(tái)優(yōu)勢(shì)特性沙箱機(jī)制xx數(shù)據(jù)實(shí)驗(yàn)平臺(tái)采用Docker容器技術(shù),容器之間采用沙箱機(jī)制,相互之間沒(méi)有任何接口,因此通過(guò)大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)創(chuàng)造出的實(shí)驗(yàn)環(huán)境是相互隔離的,即使由于部分學(xué)生的誤操作導(dǎo)致實(shí)驗(yàn)環(huán)境被破壞,也不會(huì)影響到其他同學(xué)的實(shí)驗(yàn),一鍵重啟就可以擁有新的集群。Docker統(tǒng)一平臺(tái)示意圖快速部署xx大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)可快速部署實(shí)驗(yàn)環(huán)境,支持一鍵創(chuàng)建和銷(xiāo)毀實(shí)驗(yàn)集群,可在一瞬間創(chuàng)建出供大量學(xué)生同時(shí)實(shí)驗(yàn)的實(shí)驗(yàn)環(huán)境,同時(shí)實(shí)驗(yàn)環(huán)境可快速銷(xiāo)毀和重建,可供老師簡(jiǎn)單便捷的進(jìn)行大數(shù)據(jù)實(shí)驗(yàn)和教學(xué)工作,無(wú)需花大量時(shí)間進(jìn)行每個(gè)學(xué)生的實(shí)驗(yàn)環(huán)境部署工作,大幅度的節(jié)省人員管理維護(hù)成本。一鍵創(chuàng)建和銷(xiāo)毀實(shí)驗(yàn)集群多機(jī)實(shí)驗(yàn)環(huán)境系統(tǒng)采用分布式集群架構(gòu),多節(jié)點(diǎn)冗余架構(gòu)設(shè)計(jì),可面向大數(shù)據(jù)的分布式系統(tǒng),為每個(gè)學(xué)生提供多機(jī)實(shí)驗(yàn)環(huán)境,整個(gè)系統(tǒng)理論支持用戶(hù)數(shù)量無(wú)上限,可為每個(gè)學(xué)生分配5套實(shí)驗(yàn)虛擬集群,可滿(mǎn)足大量學(xué)生同時(shí)進(jìn)行多個(gè)實(shí)驗(yàn),并進(jìn)行各實(shí)驗(yàn)的相互對(duì)比學(xué)習(xí)。資源最大化利用大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)通過(guò)對(duì)Docker容器技術(shù)的深度應(yīng)用,可將服務(wù)器資源的利用率發(fā)揮到最大,通過(guò)幾臺(tái)服務(wù)器便可構(gòu)建出可供上百學(xué)生同時(shí)實(shí)驗(yàn)的實(shí)驗(yàn)平臺(tái),大幅度的節(jié)省了硬件投入成本??焖俑咝б讛U(kuò)展大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)采用分布式架構(gòu),支持性能橫向擴(kuò)展,只需增加節(jié)點(diǎn)服務(wù)器即可實(shí)現(xiàn)同時(shí)上機(jī)人數(shù)的擴(kuò)容,同時(shí)也可以通過(guò)減少節(jié)點(diǎn)服務(wù)來(lái)減少同時(shí)上機(jī)人數(shù),以實(shí)現(xiàn)設(shè)備的最高效利用。低運(yùn)維成本xx數(shù)據(jù)實(shí)驗(yàn)平臺(tái)可實(shí)現(xiàn)大數(shù)據(jù)實(shí)驗(yàn)集群的秒級(jí)創(chuàng)建、銷(xiāo)毀,學(xué)生在校期間可獨(dú)享自己的多個(gè)大數(shù)據(jù)集群;實(shí)驗(yàn)環(huán)境損壞只需銷(xiāo)毀重建即可,無(wú)需專(zhuān)人維護(hù),大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)只需幾臺(tái)服務(wù)就可以構(gòu)建,設(shè)備運(yùn)維成本很低。教學(xué)體系完善xxx數(shù)據(jù)實(shí)驗(yàn)平臺(tái)不僅提供可供上百學(xué)生同時(shí)實(shí)驗(yàn)的教學(xué)平臺(tái),還提供了國(guó)內(nèi)第一本Hadoop編程書(shū)籍的升級(jí)版——《實(shí)戰(zhàn)Hadoop2.0》及其配套PPT(國(guó)內(nèi)知名云計(jì)算專(zhuān)家、中國(guó)信息協(xié)會(huì)大數(shù)據(jù)分會(huì)副會(huì)長(zhǎng)劉鵬傾力打造),以及實(shí)驗(yàn)相關(guān)的實(shí)驗(yàn)手冊(cè),同時(shí)可提供實(shí)驗(yàn)所需的大數(shù)據(jù)資源和企業(yè)實(shí)訓(xùn)項(xiàng)目,幫助高校打造完善的大數(shù)據(jù)教學(xué)體系。主要實(shí)驗(yàn)介紹快速搭建大數(shù)據(jù)實(shí)驗(yàn)環(huán)境大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)采用Docker容器技術(shù),通過(guò)少量機(jī)器虛擬出成百上千的Hadoop、HBase、Spark、Storm、HDFS等實(shí)驗(yàn)集群,可快速同時(shí)為每個(gè)學(xué)生提供多套集群進(jìn)行實(shí)驗(yàn),搭建可供大量學(xué)生完成所有大數(shù)據(jù)實(shí)驗(yàn)的集成環(huán)境。例如,60個(gè)學(xué)生同時(shí)在線(xiàn)做大數(shù)據(jù)實(shí)驗(yàn),只需要小規(guī)模機(jī)器(11臺(tái))就可以同時(shí)為每個(gè)學(xué)生提供至少5套集群,每個(gè)學(xué)生的實(shí)驗(yàn)環(huán)境不僅相互隔離、彼此互不干擾,即使某個(gè)學(xué)生的實(shí)驗(yàn)環(huán)境出現(xiàn)問(wèn)題,對(duì)其他人也沒(méi)有影響,只需要重啟就可以重新?lián)碛幸惶仔录?。因此在我校中心機(jī)房部署的大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)可以快速給全校各個(gè)院系的學(xué)生進(jìn)行大數(shù)據(jù)的實(shí)驗(yàn),同時(shí)各學(xué)科數(shù)據(jù)還可根據(jù)自己的需要導(dǎo)入實(shí)驗(yàn)數(shù)據(jù)進(jìn)行實(shí)驗(yàn)、分析,大數(shù)據(jù)實(shí)驗(yàn)平臺(tái)同時(shí)可提供外網(wǎng)地址,可提供校外機(jī)構(gòu)使用,滿(mǎn)足全校師生的教學(xué)需求。HDFS部署實(shí)驗(yàn)HDFS是一種可在通用硬件上運(yùn)行的分布式文件系統(tǒng),具備高容錯(cuò)性和支持廉價(jià)部署等特點(diǎn),非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用,是大數(shù)據(jù)實(shí)驗(yàn)非常重要的一環(huán)。通過(guò)HDFS部署的實(shí)驗(yàn)可以讓學(xué)生了解和熟悉HDFS,從而實(shí)現(xiàn)以下幾點(diǎn)目的:理解HDFS存在的原因理解HDFS體系架構(gòu)理解master/slave架構(gòu)理解為何配置文件里只需指定主服務(wù)、無(wú)需指定從服務(wù)理解為何需要客戶(hù)端節(jié)點(diǎn)學(xué)會(huì)逐一啟動(dòng)HDFS和統(tǒng)一啟動(dòng)HDFS學(xué)會(huì)在HDFS存儲(chǔ)器里新建文件夾,新建文件HDFS相關(guān)的實(shí)驗(yàn)如下圖所示:HDFS實(shí)驗(yàn)過(guò)程YARN部署實(shí)驗(yàn)ApacheHadoopYARN(YetAnotherResourceNegotiator,另一種資源協(xié)調(diào)者)是一種新的Hadoop資源管理器,它是一個(gè)通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度,它的引入為集群在利用率、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來(lái)了巨大好處。YARN部署實(shí)驗(yàn),主要分為配置YARN配置文件、統(tǒng)一啟動(dòng)YRAN、驗(yàn)證YARN啟動(dòng)成功和提交簡(jiǎn)單的任務(wù)。通過(guò)實(shí)驗(yàn)可讓學(xué)生學(xué)會(huì)如何搭建YARN分布式集群,并能夠使用YARN集群提交一些簡(jiǎn)單的任務(wù),理解YARN作為Hadoop生態(tài)中的資源管理器的意義。YARN部署實(shí)驗(yàn)過(guò)程如下圖所示:YARN啟動(dòng)任務(wù)提交實(shí)驗(yàn)終端過(guò)程顯示MapReduce實(shí)驗(yàn)MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數(shù)式編程語(yǔ)言里借來(lái)的,還有從矢量編程語(yǔ)言里借來(lái)的特性。它極大地方便了編程人員在不會(huì)分布式并行編程的情況下,將自己的程序運(yùn)行在分布式系統(tǒng)上。當(dāng)前的軟件實(shí)現(xiàn)是指定一個(gè)Map(映射)函數(shù),用來(lái)把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce(歸約)函數(shù),用來(lái)保證所有映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。MapReduce實(shí)驗(yàn)主要分為單詞計(jì)數(shù)、二次排序、計(jì)數(shù)器、join操作和分布式緩存5個(gè)實(shí)驗(yàn),具體如下:?jiǎn)卧~計(jì)數(shù)實(shí)驗(yàn)通過(guò)實(shí)驗(yàn)可實(shí)現(xiàn)以下目的:理解MapReduce編程思想會(huì)編寫(xiě)MapReduce版本W(wǎng)ordCount會(huì)執(zhí)行該程序自行分析執(zhí)行過(guò)程本實(shí)驗(yàn)主要分為,確認(rèn)前期準(zhǔn)備,編寫(xiě)MapReduce程序,打包提交代碼。查看運(yùn)行結(jié)果這幾個(gè)步驟,詳細(xì)如下:?jiǎn)?dòng)Hadoop執(zhí)行命令啟動(dòng)前面實(shí)驗(yàn)部署好的Hadoop系統(tǒng)。[root@master~]#cd/usr/cstor/hadoop/[root@masterhadoop]#sbin/start-all.sh驗(yàn)證HDFS上目前沒(méi)有生成wordcount的文件夾[root@client~]#cd/usr/local/hadoop/[root@clienthadoop]#bin/hadoopfs-ls/#查看HDFS上根目錄文件/此時(shí)HDFS上應(yīng)該是沒(méi)有wordcount文件夾。上傳數(shù)據(jù)文件到HDFS[root@client~]#cd/usr/local/hadoop/[root@clienthadoop]#bin/hadoopfs-put/root/data/5/word/編寫(xiě)MapReduce程序主要編寫(xiě)Map和Reduce類(lèi),其中Map過(guò)程需要繼承org.apache.hadoop.mapreduce包中Mapper類(lèi),并重寫(xiě)其map方法;Reduce過(guò)程需要繼承org.apache.hadoop.mapreduce包中Reduce類(lèi),并重寫(xiě)其reduce方法。importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IntWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.Mapper;importorg.apache.hadoop.mapreduce.Reducer;importorg.apache.hadoop.mapreduce.lib.input.TextInputFormat;使用Eclipse開(kāi)發(fā)工具將該代碼打包假定打包后的文件名為hdpAction.jar,主類(lèi)WordCount位于包njupt下,則可使用如下命令向YARN集群提交本應(yīng)用。[root@client~]#./yarnjarhdpAction.jarnjupt.WordCount/word/wordcount其中“yarn”為命令,“jar”為命令參數(shù),后面緊跟打包后的代碼地址,“njupt”為包名,“WordCount”為主類(lèi)名,“/word”為輸入文件在HDFS中的位置,/wordcount為輸出文件在HDFS中的位置。程序運(yùn)行成功二次排序通過(guò)實(shí)驗(yàn)可實(shí)現(xiàn)以下目的:基于MapReduce思想,編寫(xiě)SecondarySort程序。查看二次排序后結(jié)果。MR默認(rèn)會(huì)對(duì)鍵進(jìn)行排序,然而有的時(shí)候我們也有對(duì)值進(jìn)行排序的需求。滿(mǎn)足這種需求一是可以在reduce階段排序收集過(guò)來(lái)的values,但是,如果有數(shù)量巨大的values可能就會(huì)導(dǎo)致內(nèi)存溢出等問(wèn)題,這就是二次排序應(yīng)用的場(chǎng)景——將對(duì)值的排序也安排到MR計(jì)算過(guò)程之中,而不是單獨(dú)來(lái)做。二次排序就是首先按照第一字段排序,然后再對(duì)第一字段相同的行按照第二字段排序,注意不能破壞第一次排序的結(jié)果。通過(guò)代碼編寫(xiě)實(shí)驗(yàn)結(jié)果如下:輸入數(shù)據(jù)輸入數(shù)據(jù)如下:secsortdata.txt('/t'分割)(數(shù)據(jù)放在/root/data/6目錄下)7444399997333422377777555366666038888411輸出顯示在client上執(zhí)行對(duì)hdfs上的文件/user/mapreduce/secsort/out/part-r-00000內(nèi)容查看的操作[root@clienthadoop]#bin/hadoopfs-cat/user/mapreduce/secsort/out/p*如果屏幕上顯示如下:計(jì)數(shù)器通過(guò)實(shí)驗(yàn)可實(shí)現(xiàn)以下目的:基于MapReduce思想,編寫(xiě)計(jì)數(shù)器程序。基于MapReduce思想,能執(zhí)行計(jì)數(shù)器程序和分析執(zhí)行過(guò)程。通過(guò)代碼編寫(xiě)和執(zhí)行實(shí)驗(yàn)結(jié)果如下:輸入數(shù)據(jù)輸入數(shù)據(jù)如下:counters.txt(/t分割)(數(shù)據(jù)放在/root/data/7目錄下)輸出顯示屏幕上將會(huì)輸出如下信息:join操作通過(guò)實(shí)驗(yàn)可實(shí)現(xiàn)以下目的:基于MapReduce思想,編寫(xiě)兩文件join操作的程序?;贛apReduce思想,能執(zhí)行join程序和分析執(zhí)行過(guò)程。通過(guò)代碼編寫(xiě)和執(zhí)行實(shí)驗(yàn)結(jié)果如下:輸入數(shù)據(jù)輸入數(shù)據(jù)如下:data.txt(數(shù)據(jù)放在/root/data/8目錄下):輸入數(shù)據(jù)如下:info.txt(數(shù)據(jù)放在/root/data/8目錄下):輸出顯示在client上執(zhí)行對(duì)hdfs上的文件/user/mapreduce/MRjoin/out/part-r-00000內(nèi)容查看的操作:分布式緩存通過(guò)實(shí)驗(yàn)可實(shí)現(xiàn)以下目的:理解序列號(hào)與反序列化熟悉Configuration類(lèi)學(xué)會(huì)使用Configuration類(lèi)進(jìn)行參數(shù)傳遞傳遞;學(xué)會(huì)在Map或Reduce階段引用Configuration傳來(lái)的參數(shù);理解分布式緩存“加載小表、掃描大表”的處理思想通過(guò)實(shí)驗(yàn)將一個(gè)大為100G的大表big.txt和一個(gè)大小為1M的小表small.txt,通過(guò)MapReduce思想編程實(shí)現(xiàn)判斷小表中單詞在大表中出現(xiàn)次數(shù)。準(zhǔn)備數(shù)據(jù)登錄client機(jī),使用“vi”命令新建文件“/root/big.txt”,接著在該文件里寫(xiě)入“aaa至zzz”,新建好后,使用cat命令確認(rèn)文件內(nèi)容:上傳數(shù)據(jù)接著,使用命令將client機(jī)本地文件“/root/big.txt”和“/root/small.txt”上傳至HDFS的“/user/root/mr/in”目錄:通過(guò)編寫(xiě)和執(zhí)行代碼實(shí)現(xiàn)以下實(shí)驗(yàn)結(jié)果:Hive實(shí)驗(yàn)Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供簡(jiǎn)單的sql查詢(xún)功能,可以將sql語(yǔ)句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過(guò)類(lèi)SQL語(yǔ)句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開(kāi)發(fā)專(zhuān)門(mén)的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉(cāng)庫(kù)的統(tǒng)計(jì)分析。HIVE實(shí)驗(yàn)分為部署Hive、新建Hive表、Hive分區(qū),具體如下:部署Hive通過(guò)部署Hive實(shí)驗(yàn)可實(shí)現(xiàn)以下目的:理解Hive存在的原因理解Hive的工作原理理解Hive的體系架構(gòu)學(xué)會(huì)如何進(jìn)行內(nèi)嵌模式部署將元數(shù)據(jù)存儲(chǔ)在HDFS上安裝部署 在client機(jī)上操作:首先確定存在hive:配置HDFS先為Hive配置Hadoop安裝路徑,待解壓完成后,進(jìn)入Hive的配置文件夾conf目錄下,接著將Hive的環(huán)境變量模板文件復(fù)制成環(huán)境變量文件。實(shí)驗(yàn)結(jié)果如下:新建Hive表通過(guò)部署新建Hive表實(shí)驗(yàn)可實(shí)現(xiàn)以下目的:學(xué)會(huì)創(chuàng)建Hive表顯示Hive中所有的表顯示Hive表中所有的列項(xiàng)修改和刪除Hive中的表啟動(dòng)Hive執(zhí)行啟動(dòng)Hive命令 創(chuàng)建表創(chuàng)建一個(gè)有兩個(gè)字段的pokes表,其中第一列名為foo,數(shù)據(jù)類(lèi)型為INT,第二列名為bar,類(lèi)型為STRING。顯示表顯示表列更改和刪除表實(shí)驗(yàn)結(jié)果如下:Spark實(shí)驗(yàn)Spark被定義為一個(gè)開(kāi)源的、基于內(nèi)存計(jì)算的、運(yùn)行在分布式集群上的、快速和通用的大數(shù)據(jù)并行計(jì)算框架。它提高了在大數(shù)據(jù)環(huán)境下數(shù)據(jù)處理的實(shí)時(shí)性,同時(shí)保證了高容錯(cuò)性和高可伸縮性,允許用戶(hù)將Spark部署在大量廉價(jià)硬件集群之上,以提供高性?xún)r(jià)比的大數(shù)據(jù)計(jì)算解決方案。Spark官網(wǎng)地址是S。通過(guò)Spark實(shí)驗(yàn)可以實(shí)現(xiàn)以下實(shí)驗(yàn)?zāi)康模毫私釹park生態(tài)圈,理解Spark體系架構(gòu);學(xué)會(huì)部署和啟動(dòng)Spark集群;能夠配置Spark集群使用HDFS實(shí)驗(yàn)過(guò)程如下:每位學(xué)生通過(guò)Spark實(shí)驗(yàn)構(gòu)建出Spark集群,在master上部署主服務(wù)Master;slave0、1、2上部署從服務(wù)Worker;client上部署Spark客戶(hù)端,搭建好集群后,提交并運(yùn)行Spark示例代碼WordCount,將client上某文件上傳至HDFS里剛才新建的目錄。配置Spark集群在master機(jī)上編輯Spark的slaves文件,通過(guò)文件編輯了解和熟悉Spark原理。配置HDFS通過(guò)配置HDFS將將Spark環(huán)境變量模板復(fù)制成環(huán)境變量文件,讓學(xué)生可以具備配置HDFS使用Spark的能力。提交Spark任務(wù)通過(guò)在client機(jī)上操作,使用Shell命令向Spark集群提交Spark-App,學(xué)會(huì)部署和啟動(dòng)Spark集群。實(shí)驗(yàn)結(jié)果通過(guò)執(zhí)行命令查看實(shí)驗(yàn)結(jié)果如下:綜合實(shí)戰(zhàn)實(shí)驗(yàn)交通大數(shù)據(jù)實(shí)驗(yàn)隨著現(xiàn)代城市的發(fā)展進(jìn)程,交通問(wèn)題越發(fā)嚴(yán)峻,通過(guò)大數(shù)據(jù)手段解決交通問(wèn)題是未來(lái)的必然趨勢(shì),通過(guò)交通大數(shù)據(jù)實(shí)驗(yàn),增加學(xué)生在交通行業(yè)大數(shù)據(jù)的實(shí)戰(zhàn)經(jīng)驗(yàn)。具體實(shí)驗(yàn)?zāi)繕?biāo):基于MaoReduce思緒,編寫(xiě)車(chē)牌識(shí)別程序;實(shí)現(xiàn)對(duì)某地監(jiān)控圖片中的車(chē)牌識(shí)別;基于大數(shù)據(jù)分析實(shí)現(xiàn)對(duì)外省車(chē)輛的統(tǒng)計(jì);完成對(duì)套牌車(chē)輛的識(shí)別工作,并得出結(jié)果。實(shí)驗(yàn)過(guò)程如下:實(shí)驗(yàn)原理實(shí)驗(yàn)手冊(cè)提供詳細(xì)的編程示例,該實(shí)戰(zhàn)實(shí)驗(yàn)主要是通過(guò)利用WordCount思想,在Reduce階段不輸入“蘇”車(chē)牌即可,對(duì)于套牌車(chē)輛的識(shí)別,Map階段與WordCount是一樣的,在Reduce階段統(tǒng)計(jì)相同車(chē)牌的情況,部分編程示例如下:編程示例環(huán)境準(zhǔn)備將實(shí)驗(yàn)數(shù)據(jù)上傳到HDFS,包括兩個(gè)部分,一部分是車(chē)牌照片和車(chē)牌對(duì)應(yīng)的plane.ext文件。新建對(duì)應(yīng)目錄后,將動(dòng)態(tài)庫(kù)所需要的配置文件拷貝至Hadoop根目錄下。將代碼打包提交后實(shí)現(xiàn)以下實(shí)驗(yàn)結(jié)果:查看外省車(chē)輛統(tǒng)計(jì)情況:查看套牌車(chē)輛情況調(diào)取套牌車(chē)輛圖片互聯(lián)網(wǎng)數(shù)據(jù)處理隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,互聯(lián)網(wǎng)產(chǎn)生了爆炸性的數(shù)據(jù)量,通過(guò)互聯(lián)網(wǎng)數(shù)據(jù)處理實(shí)戰(zhàn)實(shí)驗(yàn)可實(shí)現(xiàn)以下目標(biāo):使用分布式的思想對(duì)數(shù)據(jù)進(jìn)行清洗、處理;考慮大數(shù)據(jù)的環(huán)境,對(duì)數(shù)據(jù)處理的方法進(jìn)行優(yōu)化;利用大數(shù)據(jù)的思路,了解通用搜索引擎的流程;了解Hbase的索引建立,了解互聯(lián)網(wǎng)數(shù)據(jù)爬取。實(shí)驗(yàn)原理首先從淘寶的網(wǎng)頁(yè)中爬取部分商品信息,然后從這些信息中提取我們所需要的幾項(xiàng)數(shù)據(jù),將其存儲(chǔ)在Hbase中,然后通過(guò)關(guān)鍵詞搜索將這些數(shù)據(jù)提取出來(lái)。新建createindex項(xiàng)目新建createindex的項(xiàng)目主要分為幾個(gè)步驟,新建Hadoop任務(wù)和Map類(lèi)和Reduce類(lèi),新建任務(wù)類(lèi),項(xiàng)目目錄結(jié)構(gòu)如下:部分代碼如下:新建demoJavaWeb項(xiàng)目該項(xiàng)目的主要作用是提供Web界面爬取淘寶數(shù)據(jù)和搜索數(shù)據(jù),目錄結(jié)構(gòu)如下:建立關(guān)鍵詞索引通過(guò)搜索的內(nèi)容,并輸入想選取的項(xiàng)數(shù),然后點(diǎn)擊搜索,就會(huì)彈出想要的關(guān)鍵詞數(shù)據(jù)。實(shí)驗(yàn)結(jié)果爬取結(jié)果如下:建立索引任務(wù)如下:搜索結(jié)果展示如下:精確營(yíng)銷(xiāo)當(dāng)下,各種資訊呈爆炸性增長(zhǎng)態(tài)勢(shì),如何從海量的電影世界中迅速推送適合個(gè)體觀眾的電影,已經(jīng)成為每一個(gè)電影網(wǎng)站或搜索引擎必須要實(shí)現(xiàn)的功能之一。通過(guò)實(shí)驗(yàn)可實(shí)現(xiàn)以下目的:了解常用的基于矩陣分解的協(xié)同過(guò)濾推薦算法的基本原理掌握SparkMLlib中對(duì)基于模型的協(xié)同過(guò)濾算法的封裝函數(shù)的使用對(duì)Spark中機(jī)器學(xué)習(xí)模塊內(nèi)容加深理解根據(jù)提供的電影評(píng)分?jǐn)?shù)據(jù),利用Spark進(jìn)行訓(xùn)練,得到一個(gè)最佳推薦模型用實(shí)際數(shù)據(jù)和平均值這兩方面評(píng)價(jià)該模型的準(zhǔn)確度根據(jù)我的評(píng)分?jǐn)?shù)據(jù)向我推薦10部電影實(shí)驗(yàn)原理協(xié)同過(guò)濾算法按照數(shù)據(jù)使用,可以分為:

1)基于用戶(hù)(UserCF)

2)基于商品(ItemCF)

3)基于模型(ModelCF)按照模型,又可以分為:最近鄰模型:基于距離的協(xié)同過(guò)濾算法LatentFactorMode(SVD):基于矩陣分解的模型Graph:圖模型,社會(huì)網(wǎng)絡(luò)圖模型本次實(shí)驗(yàn),使用的協(xié)同過(guò)濾算法是基于矩陣分解的模型,就是基于樣本的用戶(hù)喜好信息,訓(xùn)練一個(gè)推薦模型,然后根據(jù)實(shí)時(shí)的用戶(hù)喜好的信息進(jìn)行預(yù)測(cè),計(jì)算推薦。ALS是alternatingleastsquares的縮寫(xiě),意為交替最小二乘法,該方法常用于基于矩陣分解的推薦系統(tǒng)中。對(duì)于一個(gè)R(觀眾對(duì)電影的一個(gè)評(píng)價(jià)矩陣)可以分解為U(觀眾的特征矩陣)和V(電影的特征矩陣),在這個(gè)矩陣分解的過(guò)程中,評(píng)分缺失項(xiàng)得到了填充,也就是說(shuō)我們可以基于這個(gè)填充的評(píng)分來(lái)給用戶(hù)最商品推薦了。MLlib支持基于模型的協(xié)同過(guò)濾算法,其中user和product對(duì)應(yīng)圖中的user和movie,user和product之間有一些隱藏因子。MLlib使用\t"/2015/11/30/movie-recommendation-for-douban-users-by-spark-mllib/_blank"ALS(alternatingleastsquares)來(lái)學(xué)習(xí)得到這些潛在因子。數(shù)據(jù)集準(zhǔn)備在本地文件/data/39/movie下有本次實(shí)驗(yàn)數(shù)據(jù)集,文件列表如下:各文件數(shù)據(jù)格式如下(詳細(xì)見(jiàn)README文件):1)用戶(hù)數(shù)據(jù)(users.dat)用戶(hù)ID::性別::年齡::職業(yè)編號(hào)::郵編6031::F::18::0::451236032::M::45::7::551086033::M::50::13::782326034::M::25::14::941176035::F::25::1::787346036::F::25::15::326036037::F::45::1::760062)電影數(shù)據(jù)(movies.dat)電影ID::電影名稱(chēng)::電影種類(lèi)3943::Bamboozled(2000)::Comedy3944::Bootmen(2000)::Comedy|Drama3945::Digimon:TheMovie(2000)::Adventure|Animation|Children's3946::GetCarter(2000)::Action|Drama|Thriller3947::GetCarter(1971)::Thriller3948::MeettheParents(2000)::Comedy3949::RequiemforaDream(2000)::Drama3)評(píng)分?jǐn)?shù)據(jù)(ratings.dat)用戶(hù)ID::電影ID::評(píng)分::時(shí)間6040::2022::5::9567162076040::2028::5::9567045196040::1080::4::9577173226040::1089::4::9567049966040::1090::3::9567155186040::1091::1::9567165416040::1094::5::9567048876040::562::5::9567047464)我的評(píng)分?jǐn)?shù)據(jù)(test.dat),格式同評(píng)分?jǐn)?shù)據(jù)(ratings.dat)將以上數(shù)據(jù)上傳到HDFS文件系統(tǒng):cd/use/cstor/hadoop/binhdfsdfs-copyFromLocal/data/39/movie//實(shí)驗(yàn)結(jié)果代碼執(zhí)行過(guò)程中打印日志信息如下:所有數(shù)據(jù)數(shù)量統(tǒng)計(jì)圖評(píng)分?jǐn)?shù)據(jù)切分的各數(shù)據(jù)集統(tǒng)計(jì)圖訓(xùn)練時(shí)的參數(shù)及對(duì)應(yīng)的誤差圖最佳模型的參數(shù)及對(duì)應(yīng)的誤差圖均值預(yù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論