鄭慧杰 李新 解玉衡


【摘要】? ? 在過去的幾年中,云計算已經在各種各樣的項目中得到了廣泛的應用,這為研究和發展教育行業提供了新機遇。可動態部署的虛擬實驗室環境的形式出現,為教育機構的計算資源分配提供了更大的靈活性。在完全沙盒實驗室的形式下,學生可以獲得“他們自己的”內部網絡和對內部所有機器的完全訪問權,這使他們能夠靈活地收集構建基于異構大數據技術的體系結構的實踐經驗。本文利用EDUCloud提供了一個私有的云基礎設施,可以將本文中描述的數據挖掘技術實驗室靈活的進行部署。
【關鍵詞】? ? 數據教育? ? 私有云? ? 虛擬實驗室? ? EDUCloud
Abstract: In the past few years, cloud computing has been widely used in a variety of projects, providing new opportunities for research and development in the education industry. The emergence of a dynamically deployable virtual laboratory environment provides greater flexibility in the allocation of computing resources in educational institutions. In the form of a full sandbox lab, students gain “their own” internal network and full access to all internal machines, this gives them the flexibility to gather the experience of architectures,that is based on heterogeneous big data technologies. This article uses EDUCloud to provide a private cloud infrastructure that allows the data mining labs described in this article to be deployed flexibly.
Key words:Data Education; Private Cloud; Virtual Laboratory;EDUCloud
引言
2010年在加特納新興技術宣講會上,云計算,特別是私有云計算達到了“預期膨脹的頂峰”。如今這項技術已經被廣泛接受,但由于其基本概念的多功能性,云計算不僅為商業提供了機會,也為教育和研究應用提供了機會。在專注于教育和研究的機構,供個別學生或小組使用的計算資源非常有限,大多數資源只能以共享的、預先安裝的環境的形式提供,通常一次可供多個講座使用。雖然這在本質上降低了硬件和人員成本,但也要求對學生帳戶施加非常嚴格的權限,以防止用戶相互影響,從而有效地限制了練習和項目的可能性。在講授數據概念和技術時,授予學生對某些系統的管理權限對于讓他們收集有關系統、存儲和網絡配置更改的影響的第一手經驗至關重要。面對這一情況,云計算可以提供一種由特殊的虛擬機(VMs)組成實驗室的方法,虛擬機(VMs)被按需分組,虛擬機組及其網絡在沙盒環境中運行,這些環境具有動態分配和可擴展的資源,可以很容易地運行在不同的講座或實驗。
本文以EDUCloud體系結構為基礎,它是一個用于數據分析、分布式系統(包括分布式信息系統)的講座和實驗室。它是面向服務的教學,特別是微服務體系結構,而本文的創新點是教學EDUCloud中面向數據技術的部分。在實驗室中進行了初步的數據相關訓練,這些訓練側重于基于Apache Hadoop和Apache Spark等技術的數據挖掘和數據分析。對數據挖掘技術的關注以及關于初步經驗訓練是本文的另一個創新點。
在國外最新的文獻中[1-5]可以看出,各大高校在其教育項目中使用云計算的場景正變得越來越多樣化。從通用的、協作的軟件即服務(SaaS——Software-as -a-Service)平臺(如谷歌的G教育套件[2]),再到專門的平臺,例如用于教授高性能計算[3]或R平臺和Scilab平臺[5]。在文獻[5]中提到的CloudIA平臺,它可以在單個系統中提供SaaS、PaaS(Platform-as-a-Service)和IaaS(Infrast ructure-as-a -Service)的組合服務,在混合云環境中運行,并根據需要擴展到Amazon Web服務。在PaaS中的重點在于使用學生和講師可以訪問的自助門戶對單個虛擬機進行ondemand部署。但是,如果沒有將它們與定制的內部網絡結合在一起的概念,那么使用它們來建立一個功能齊全的微服務實驗室是不切實際的。
本文的其余部分結構如下:第二節概述了數據和服務實驗室場景提出的需求;第三節描述了系統的體系結構;第四節詳細介紹了數據挖掘實驗室的設置和其中使用的技術,得出實驗中存在的問題;第五節為從該項目中得到的結論,最后對未來的工作進行了展望。
一、場景需求
為了實現給學生提供一個虛擬實訓實驗室的目標,整個系統的不同部分必須滿足許多需求(需求標記設定為RQ1到RQ8以便于參考)。雖然其中許多是由服務場景本身強加的,但也有一些源于圍繞云本身的基礎設施。由于數據技術(如分布式數據庫系統)或數據處理方法(如Map Reduce)在分布式信息系統中經常使用,因此提供一個允許學生在多臺計算機中運行此類技術的實驗室(RQ1)。學生可能需要自行安裝數據庫系統等軟件,因此他們需要具有完全的根訪問權限(RQ2),允許他們安裝任意組件或部署容器(例如Docker)來進行與數據相關的練習。
當為用戶提供類似上述根級訪問的廣泛權限時,關鍵是要防止每個虛擬實驗室實例對其他虛擬實驗室實例造成不利影響(RQ3),同時仍能在其計算機和學生計算機之間實現完全網絡訪問(RQ4)。此外,應該可以為集成練習(RQ5)在各個實驗室之間創建有限的連接,并在嚴重錯誤配置(RQ6)的情況下重置實驗室實例。由于數據技術實驗室的重點是教學分布式大數據以及數據挖掘和分析相關概念,因此它應該提供一些典型的分布式數據集處理、分布式數據存儲、分布式事務處理和分布式數據查詢(RQ7)的技術。在其初始版本中,重點應放在分布式數據挖掘相關技術上。為了減少創建和運行任意數量的實驗室實例所需的管理工作量,系統應與預先存在的身份驗證基礎設施(LDAP——Lightweight Directory Access Protocol)(RQ8)集成。
二、系統體系結構
EDUCloud目前的實施基于VMware vCloud Director(vCD)[6]以及附帶的產品,如ESXi(Hypervisor)和vSphere,這是因為它預先存在的基礎設施和使用此技術堆棧的一些經驗。由于這引入了某些特定于平臺的限制和要求,EDU Cloud系統的架構概念(見圖1)被設計成防止供應商鎖定,圖1詳細說明了單個虛擬實驗室(藍色)和公共服務(綠色)之間的連接。pfSense節點(橙色)也可以作為因特網或其他內部網絡的網關。這是通過盡可能避免對特定于平臺的特性的依賴,保持實驗室設置的概念和主要部分(尤其是虛擬機本身)在不同供應商之間可移植來實現的。
vCD中的實驗室以vApp的形式反映出來,vApp由一個或多個VMs(RQ1)及其網絡組成,包括內部網絡以及與外部網絡的連接。因此,每個實驗室都有自己的內部網絡,將虛擬機相互連接(RQ3),而無需從實驗室外部直接訪問任何虛擬機。唯一例外的是,所有EDUCloud實驗室中都有基于pfSense的[7]網關虛擬機,它充當網關和OpenVPN服務器,允許學生加入內部網絡并提供互聯網接入(RQ4)。
在其他情況下獨立的vApp之間建立連接可以通過在講座中添加Common Services vApp來提供,這將創建到所有其他站點的點對點VPN連接講座中的實驗室。雖然CommonServices本身可以提供額外的服務,但其pfSense實例也允許被連接實驗室使用網絡地址轉換(RQ5)提供服務。
三、實驗
vCD和pfSense都允許使用認證提供者(RQ8)的LDAP基礎設施,EDUCloud使用vCD中的權限系統來管理授權,因為目錄是作為只讀資源提供的。然后,使用訪問vCD API的Java客戶機將單個vApp的權限同步到相應的pfSense實例。作為一種替代方法,授權可以完全通過LDAP來處理,即使用于身份驗證的目錄是只讀的,也可以使用中間身份和訪問管理解決方案,如Keycloop[8],它由EDUCloud管理員控制。所有vApp均從存儲在目錄中的模板實例化,可以根據需要在各個講座之間共享。每個模板代表實驗室中所有VMs的完整快照,從而可以輕松部署其他實例,以及在發生致命錯誤配置(RQ6)的情況下將現有實例重置為原始狀態。作為此潛在破壞性操作的替代方法,這將導致丟失所有尚未事先備份的工作,還可以在執行有風險的操作之前創建已部署實驗室實例的快照。
EDUCloud內的數據實驗室的目標是為學生提供動手操作的環境,以在分布式大數據處理(包括分布式存儲,數據處理和數據挖掘)上獲得實踐經驗。擁有一個分布式環境也很重要,該環境還允許探索與分布有關的問題,即節點故障。作為存儲數據的基礎,我們使用了受GFS啟發的Apache Hadoop和包含的HDFS文件系統[9]。HDFS是面向塊的復制文件系統。每個組vApp中使用一個實例,在公共服務vApp中使用一個實例。這個想法是給每個小組自己的分布式文件系統進行實驗。在此,該組具有完全權限,并且可以在不干擾其他組的情況下存儲,更改和刪除數據。甚至允許以例如存儲復制因子為3的文件,探索文件副本塊的位置并關閉某些節點。
下一層是通用數據處理框架。Apache Hadoop附帶了Map / Reduce [10],它可能是該領域中最知名的框架,盡管由于處理步驟之間的磁盤I / O繁重而導致了已知的限制和性能問題。此外,使用Apache Spark [11]作為Hadoop的替代方案,支持對存儲在所有群集節點RAM上的數據進行內存內處理。同時安裝兩個框架可以教給學生這些問題。對于Hadoop和Spark,都使用YARN [12]作為資源管理器。
這兩個系統都預先安裝在每個組vApp上,使學生可以直接開始與數據處理相關的練習。他們具有對自己的集群的完全root訪問權限,因此他們還可以使用Hadoop或Spark的配置運行實驗。萬一它們使安裝崩潰,則可以安裝vApp模板的新副本。
以下是具體實訓:
實驗1: Warm up
本實驗的目標是學習如何使用環境,設置所需的VPN連接以及通過存儲和檢索文件來獲得HDFS的初步經驗。HDFS Web UI用于瀏覽文件塊及其副本的物理位置。
實驗2:Map/Reduce
在本實驗中,學生必須實施兩個基本的Map / Reduce工作才能學習Map / Reduce的思維方式。第一項任務是經典單詞計數問題的簡單變體,并進行了一些預處理以避免復制可用的解決方案,而第二項任務則更為復雜。必須評估包含友誼數據的數據集,以找到每對人的所有共同朋友。該設置需要兩個Map / Reduce作業才能順序運行。
實驗3:Spark
這里的重點是獲得Spark的經驗并比較Spark和Map / Reduce。該任務是使用Spark重新實現Lab 2的第二個任務。由于spark允許更自然的計算鏈接,并且對數據具有更豐富的基本操作集,因此該解決方案更易于理解。另一個目標是比較運行時并了解Spark和Map / Reduce之間的體系結構差異。
實驗4:Iterative jobs
該實驗室專注于迭代作業,這在Map / Reduce中通常是有問題的。迭代作業的典型示例是K均值聚類。該算法計算新的群集質心,并在每一輪中將所有點分配給這些質心。該任務是使用131 Map / Reduce和Spark兩次實施此算法。 Map / Reduce版本通過在每次迭代中將多個中間結果寫入磁盤來產生大量I / O。Spark版本可以將所有數據保留在內存中,并分布在整個群集中。
實驗5:Failure tolerance
在分布式設置中,節點或鏈接故障是日常操作的正常部分,每個分布式作業都必須能夠解決此類問題,而無需重新啟動整個作業。因此,故障管理(包括在其他節點上重新啟動部分工作并使用檢查點數據的能力)是框架的重要組成部分。在本實驗中,學生將探索這些功能,并比較Hadoop和Spark的容錯能力。學生將數據存儲在HDFS中,通過停止VM殺死數據節點,并探索在中斷期間和重新啟動發生故障的節點之后會發生什么情況。此外,運行Map / Reduce和Spark作業會遇到節點故障。
實驗6:Data Mining
通常,數據學家不會實現基本的數據挖掘算法。標準方法是使用軟件包或庫提供的現有實現。在這些練習中,學生探索基于Spark的MLLib [13],以使用決策樹和邏輯回歸等算法運行分類任務。
在該項目的高峰期,大約有15名學生在三個小組中平均每周工作1.5天,在實驗過程中出現了以下的問題:由于數據庫日志太大而造成凍結云;學生的初始設置不正確:他們采取了“便捷的方式”,因為他們沒有足夠仔細地查看設置建議,這確實在項目中期對他們造成了很大的影響;不兼容/部分完整(子)產品版本等。
四、結論與展望
EDUCloud提供了一個可靠的,可擴展的私有云解決方案,用于托管虛擬實驗室,這些虛擬實驗室用于教授微服務和計算機科學領域的其他主題。它為學生提供了對沙盒環境中的虛擬機和網絡的根訪問權限,從而獲得動手實踐的經驗。同時,它可以使講師和導師以最少的管理工作來設計更復雜的運動任務,因為可以輕松地從預制模板中實例化新實驗室。已經提供了一個專門的實驗室設置作為在EDUCloud上運行的虛擬實驗室的示例,用于教授(可能很大的)數據挖掘和分析的EDUCloud概念。
該實驗室為學生提供了用于數據挖掘實驗開發的預配置堆棧,利用諸如Apache Hadoop和Apache Spark之類的技術來展示數據挖掘和分析特定的技術和模式。單個實驗室中兩個堆棧的存在以及已部署實驗室實例的互連性也為學生群體之間的比較練習提供了機會。
盡管EDUCloud已經能夠跨多個服務器進行橫向擴展,但其當前實施方式將其限制為私有云功能。 當例如由于調度問題而必須并行運行大量實驗室實例時,這可能變得特別具有挑戰性,這可能超出可用硬件的計算資源。為了緩解這些問題,即將到來的項目包括將EDUCloud遷移到混合云概念,使其可以按需使用公共云資源進行橫向擴展,同時保持對敏感應用程序的隱私保護。遷移的一部分是對開源虛擬化平臺和框架(例如Proxmox [14],尤其是OpenStack [15])的評估,后者將允許與各種公共云提供商進行無縫集成。VMware組件是當前系統唯一的專有,封閉源代碼部分,切換到這些解決方案之一可以使EDUCloud的整個堆棧僅在開源軟件上運行。除此之外,進一步的研究主題包括為計算機科學的其他領域開發新的實驗室概念,提高平臺的彈性和改善資源調度。后者目前由人工處理,并計劃通過將其與實驗室和講座的實時時間表同步,并將其與預定平臺集成以處理項目和其他活動而實現自動化。特別是在EDUCloud的數據技術相關部分中,我們還計劃包括針對傳統分布式關系數據庫管理技術的實驗室,例如,有關數據分段,復制,分布式查詢處理和分布式事務的技術和練習。另一個實驗室應涵蓋不同的NoSQL范式和數據庫管理系統。
參? 考? 文? 獻
[1] Fenn, Jackie & Lehong, Hung. (2011). Hype Cycle for Emerging Technologies, 2011.
[2] Google for Education:[J]. Google, 2012.
[3] S. S. Foley, D. Koepke, J. Ragatz, C. Brehm, J. Regina, and J. Hursey, “Onramp: A web-portal for teaching parallel and distributed computing,” Journal of Parallel and Distributed Computing, vol. 105, pp. 138–149, 2017.
[4] K. Chine, “Learning math and statistics on the cloud, towards an ec2-based google docs-like portal for teaching / learning collaboratively with r and scilab,” in 2010 10th IEEE International Conference on Advanced Learning Technologies. IEEE, 2010, pp. 752–753.
[5] F. Doelitzscher, A. Sulistio, C. Reich, H. Kuijs, and D. Wolf, “Private cloud for collaboration and e-learning services: From iaas to saas,” Computing, vol. 91, no. 1, pp. 23–42, 2011.
[6] Cartwright H . VMware vSphere 5.x datacenter design cookbook over 70 recipes to design a virtual datacenter for performance, availability, manageability, and recoverability with VMware vSphere 5.x[J]. 2014.
[7] Krupa C. Patel, and Dr. Priyanka Sharma. “A Review paper on pfsense – an Open source firewall introducing with different capabilities & customization.” International Journal Of Advance Research And Innovative Ideas In Education 3.2(2017) : 635-641.
[8] Chen W . Does the Colour of the Cat Matter? The Red Hat Strategy in Chinas Private Enterprises[J]. Management & Organization Review, 2010, 3(1):55-80.
[9] S. Ghemawat, H. Gobioff, and S.-T. Leung, “The Google File System,” in Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, ser. SOSP 03. New York, NY, USA: ACM, 2003, pp. 29–43.
[10] J. Dean and S. Ghemawat, “MapReduce: simplifified data processing on large clusters,” Communications of the ACM, vol. 51, no. 1, pp. 107–113, 2008.
[11] M. Zaharia, R. S. Xin, P. Wendell, T. Das, M. Armbrust, A. Dave, X. Meng, J. Rosen, S. Venkataraman, and M. J. Franklin, “Apache spark: a unifified engine for big data processing,” Communications of the ACM, vol. 59, no. 11, pp. 56–65, 2016.
[12] V. K. Vavilapalli, A. C. Murthy, C. Douglas, S. Agarwal, M. Konar, R. Evans, T. Graves, J. Lowe, H. Shah, and S. Seth, “Apache hadoop yarn: Yet another resource negotiator,” in Proceedings of the 4th annual Symposium on Cloud Computing. ACM, 2013, p. 5.
[13] X. Meng, J. Bradley, B. Yavuz, E. Sparks, S. Venkataraman, D. Liu, J. Freeman, D. B. Tsai, M. Amde, and S. Owen, “Mllib: Machine learning in apache spark,” The Journal of Machine Learning Research, vol. 17, no. 1, pp. 1235–1241, 2016.
[14] Sarup J , Shukla V . Web-Based solution for Mapping Application using Open-Source Software Server[J]. International Journal of Informatics & Communication Technology, 2012, 1(2):91-99.
[15] Donnelly, Caroline. OpenStack Foundation sets to build enterprise trust in open source clouds.[J]. Computer Weekly, 2016.