黃振華 張波 尹益燕 武亞麗 肖紅男 宋雪


【摘要】? ?本文為滿足民辦高校人才培養方案制定的參考分析數據需求,提出了基于Kudu+微服務技術支撐的人才培養方案制定與課程管理軟件系統架構的研究與設計。
【關鍵詞】? ? Docker? ? 高可用? ? 架構
引言:
民辦高校人才培養方案的制定、管理,以及課程按人培的實施過程是高校教學的一般規律和方法。可以通過應用大數據技術對其方案制定的決策方向提供有效的數據參考支撐。利用微服務架構風格設計人才培養方案和課程管理系統,可在一定程度上解決手工編制與管理的事務性工作,提高工作效率和降低錯誤的發生,實現對教學管理的補充。
傳統分布式文件存儲系統HDFS+MapReduce + Hive的架構已無法滿足當下的數據動態加載需求,Kudu存儲引擎作為Hadoop生態圈中全新的列式存儲系統,支持隨機讀寫和實時數據分析,還支持數據增量更新,可與HDFS優勢互補,通過Kudu+Impala接口,有力支撐了大數據平臺的實時分析業務場景需求。[1]
一、應用技術研究
微服務作為SOA(面向服務架構)的一個子集,其服務更具靈活性、可實施性與可擴展性,強調可獨立測試、獨立部署、獨立運行的軟件架構模式,更符合現代互聯網發展趨勢的實踐。[2]微服務的優勢在于:技術優勢。其服務組件化特征描述的是組件間是一種高內聚、低耦合的松散服務方式,是可獨立部署的基礎之一;業務優勢。被劃分出來的微服務之間相互獨立,可獨立運行,使得開發團隊可以專心負責自己的業務,大大減少了團隊間的協調和依賴;組織優勢:根據以上優勢,可將開發團隊劃分成若干小型自治開發小組,即可提高可擴展性,也可降低團隊組織級別的風險。[3]
Kudu是Cloudera公司在2015年公開的一種純列式面向結構化數據,支持低延遲隨機讀寫且具有高性能處理數據能力的開源大數據存儲引擎。對Hadoop生態圈的支持很高,也很好的支持Spark的內存計算框架和MapReduce的鍵值對計算框架。[4]
微服務是繼SOA(面向服務的軟件架構)之后流行的架構模式,是一種使用以小服務為開發單個應用的方式,可獨立運行,使用輕量級通信機制,支持獨立部署,形成了松耦合結構的“微服務”,此種方式更便于開發團隊的小型化、簡便溝通,以及獨立開發。隨著“Docker”容器技術支撐微服務的能力提高,在低層系統級的虛擬化機制更有利于微服務的標準化部署和降低資源占用。[5]
為了適應民辦高等教育人才培養方案及課程實施管理需求的可擴展性和可修改性,以及使用的特殊性,該管理系統的架構設計也是評價一個系統的質量的一個重要標準。因此,采用集群技術、大數據存儲、實時分析等技術,使系統達到需求目標的研究和實踐是非常必要的,也是伴隨高等教育管理工作的發展,在未來會滿足更高新需求。
二、實訓平臺架構設計
對于民辦高校人才培養方案制定和課程體系的實施過程中,人培內容包括專業介紹、培養目標、培養規格、就業崗位及任職要求、畢業要求、學制與學位、主干學科、專業核心課程、主要實踐性教學環節、主要專業實驗、課程設置及教學進程、有關說明等。課程信息管理包括課程所屬學院和專業、課程自身屬性(編號、開課號、類別、學分、學時、理論與實踐學時劃分、開課學期、任課教師、實驗室名稱與編號等)、相關教師屬性(所屬學院、專業、工號等)、相關實驗室屬性(實驗室名稱、編號等)、相關教材屬性(教材性質等),還包括各類編碼與數據統計,如:課程編號、開課號、學分、學時、理論與實踐的學時等。對于一所高校,所涉及專業至少在30個以上,每個專業群中的各類課程至少在50門以上。隨著學校的發展建設,每年都會產生至少和如上數據量相同的數量累加,在此基礎上,運用大數據分析技術和微服務架構設計人才培養方案與課程信息管理是必由之路,也為將來的相關數據分析提供了必要的技術和數據支撐。綜上所述,本文所研究的系統功能設計如圖1所示。
對于系統中人才需求調查功能,可使用大數據獲取技術從招聘網站上的招聘信息中爬取,根據崗位名稱、技能要求、學歷要求、工作經驗要求、工作地點等關鍵詞,將招聘信息保存在HDFS中;然后再使用ETL工具從HDFS中檢索所需求的崗位名稱及相關要求描述,再進行數據清洗及格式化后,保存Kudu中;利用Kudu+Impala提供的接口分別對清洗后的數據使用Hive和Spark進行分析;根據崗位和技能名稱、學歷和經驗要求、工作地點等關鍵詞的詞頻統計,篩選出招聘崗位的排名、同一類崗位中技能的排名,以及學歷、經驗年限、工作地點的排序等;最后形成一個按需指定的崗位、技能、學歷、經驗、工作地點的統計報表和圖示。人才培養方案則是由此大數據分析結果進行選擇按崗位+技能要求的按需人才培養方案和課程體系。
在崗位需求獲取過程中務必遵守國家相關信息安全管理要求和互聯網行業規定的前提下完成合法的數據獲取。可以使用Selenium操作瀏覽器分析Http協議及URL,利用Python中jieba功能進行中文分詞,創建特征字典庫供文本分類和關鍵詞提取。自此可獲取崗位需求分析的數據源。
基于Kudu的人才需求調查,則是將Kudu存儲引擎和Hadoop平臺現有的Hive、Spark、Impala 等組件對接,在服務上層使用應用程序和ETL工具,通過Keetle完成抽取、轉換、加載工作。使用Kudu列式存儲技術和數據記錄逐條寫入,配合使用Kafka分布式發布消息訂閱系統與 HDFS來接收實時數據。由于Hive無法支持對單條數據記錄的改寫和數據的增量更新,使用Kudu+Impala提供的JDBC接口,配合Kudu的流式實時數據寫入,Impala 且采用內存計算模型,擁有超大數據規模交互式SQL解析能力,可高效利用內存和CPU快速返回SQL查詢結果,可以高效地實現實時OLAP分析。HBase則是只適合純粹的OLTP聯機事物處理,Kudu則同時支持OLTP 和 OLAP 業務場景。本文所研究的系統架構設計如下圖所示:
三、結束語
本文提出的基于Kudu+微服務的人才培養方案與課程管理系統設計是將大數據實時分析與人才培養方案制定決策有機的結合起來,用數據分析的結果為方案的制定提供實時的參考,也為高校的此項工作提供了一種有效的參考途徑。
參? ?考? ?文? ?獻
[1] 蔣春平,黃煜驍,周曉君. 基于Kudu的實時業務應用場景解決方案. 電信科學. 2020年第21期
[2] 王磊. 微服務架構與實踐[M]. 北京:電子工業出版社.? 2016年:24-26
[3] 羅偉. 基于微服務的智慧圖書館系統架構研究. 大學圖書情報學刊. 2020年第38卷第5期:111-113
[4] 王瑞通,李煒春. 大數據基礎存儲系統技術研究. 計算機技術與發展.? 2017年第27卷第8期:66-72
[5] 官東亮. 基于微服務的業務平臺架構重構. 電信科學.? 2020年第9期:75-83
[6] 湯雨,林迪,范愛華,吳薇薇. 大數據分析與計算. 清華大學出版社. 2018年3月第1版
[7] 李天目. 大數據云計算服務技術架構與實踐. 清華大學出版社. 2016年1月第1版
[8] 曾剛. 實戰Hadoop大數據處理. 清華大學出版社. 2015年8月第1版
[9] 李金剛,趙石磊,杜寧. 軟件體系結構理論及應用. 清華大學出版社. 2013年7月第1版