任風(fēng)賢
(運(yùn)城職業(yè)技術(shù)大學(xué) 山西 運(yùn)城 044000)
近年來,信息化技術(shù)取得了快速發(fā)展。智慧圖書館能夠合理運(yùn)用信息化技術(shù)打通各自動(dòng)化系統(tǒng)的信息壁壘,建立圖書館信息中心。并且根據(jù)圖書館業(yè)務(wù)目標(biāo),使用數(shù)據(jù)挖掘算法和工具對(duì)海量圖書館行為數(shù)據(jù)展開分析挖掘。由于我國(guó)已經(jīng)正式邁入了大數(shù)據(jù)時(shí)代,近幾年很多高校都陸續(xù)提出了智慧圖書館的項(xiàng)目建設(shè),但是高校智慧圖書館仍然處于初級(jí)階段。因此,想要進(jìn)一步促進(jìn)智慧圖書館的建立,應(yīng)該清晰了解相關(guān)技術(shù),合理構(gòu)建基于大數(shù)據(jù)的智慧圖書館平臺(tái)。
Hadoop前身是Apache的Nutch,具有數(shù)據(jù)收集和數(shù)據(jù)存儲(chǔ)功能。在當(dāng)前階段Hadoop已經(jīng)成了一個(gè)較為規(guī)范龐大的體系。體系里面包含了HDFS、MapReduce、Yarn、Hive、Zookeeper等,能夠?yàn)橄到y(tǒng)提供分布式的數(shù)據(jù)存儲(chǔ)、并行計(jì)算、集群管理以及數(shù)據(jù)傳輸?shù)裙δ埽渲休^為核心的內(nèi)容是HDFS、MapReduce、Yarn三者。
HDFS使用了主從架構(gòu),一個(gè)HDFS集群通常是由多個(gè)DataNode與單個(gè)NameNode組合而成。其中NameNode在這個(gè)過程中是作為管理文件系統(tǒng)命名空間的主服務(wù)器,并且可以調(diào)節(jié)客戶端運(yùn)行過程中訪問的文件。而DataNode則是進(jìn)行管理對(duì)接節(jié)點(diǎn)存儲(chǔ),一般情況下會(huì)在一個(gè)服務(wù)器當(dāng)中部署一個(gè)DataNode。將一整個(gè)文件劃分成多個(gè)數(shù)據(jù)模塊,將這些數(shù)據(jù)模塊分別存儲(chǔ)在不同的DataNode當(dāng)中。NameNode則是被用來操作文件系統(tǒng)的命名空間,例如在運(yùn)行過程中打開、關(guān)閉或者重命名文件。在這個(gè)過程中,呈現(xiàn)出數(shù)據(jù)塊與DataNode之間的映射關(guān)系。此時(shí),DataNode會(huì)對(duì)數(shù)據(jù)的讀寫請(qǐng)求展開處理,同時(shí)創(chuàng)建數(shù)據(jù)塊,刪除來源于NameNode中的復(fù)制命令。NameNode與DataNode都是為了在普通服務(wù)器進(jìn)行運(yùn)行,這些服務(wù)器一般情況下都是采用了GUN/Linux操作系統(tǒng)。由于HDES是由JAVA語言構(gòu)建而成,所以任何能夠支持JAVA語言的服務(wù)器都可以進(jìn)行DataNode與NameNode兩項(xiàng)服務(wù)。這種運(yùn)用具有一種典型的部署方式,那就是在一臺(tái)服務(wù)器中單獨(dú)運(yùn)行NameNode,集群的其他每臺(tái)服務(wù)器都可以開啟DataNode。在這個(gè)過程中,集群采用了NameNode能夠有效簡(jiǎn)化系統(tǒng)整體架構(gòu),成為集群仲裁者和全部HDFS元數(shù)據(jù)的信息存儲(chǔ)庫(kù)。MapReduce是整個(gè)Haddoop的核心計(jì)算模塊,屬于性能優(yōu)越的分布式編程模式,具有一定的擴(kuò)展性和一致性,并且展現(xiàn)出并行抽象度,在處理龐大的數(shù)據(jù)時(shí)具有明顯的優(yōu)勢(shì)。在運(yùn)行過程中,會(huì)將一個(gè)龐大的數(shù)據(jù)劃分成多個(gè)小規(guī)模的數(shù)據(jù)map任務(wù),將這些任務(wù)輸送至集群中的不同節(jié)點(diǎn),這些節(jié)點(diǎn)可以同時(shí)完成下達(dá)的任務(wù)。在完成了相應(yīng)的任務(wù)后,會(huì)利用Reduce調(diào)整最后的分析結(jié)果,將其上傳至HDFS進(jìn)行存儲(chǔ)。在使用MapReduce處理數(shù)據(jù)之前需要保證一項(xiàng)基本條件,那就是需要進(jìn)行處理的大規(guī)模數(shù)據(jù)集能夠被劃分成不同的小數(shù)據(jù)集,并且這些小數(shù)據(jù)集能夠進(jìn)行獨(dú)立并行處理。Yarn是一項(xiàng)新推出的Hadoop資源管理器,屬于一種較為通用的資源管理系統(tǒng),能夠?yàn)樯蠈訋斫y(tǒng)一的資源管理和調(diào)度。合理運(yùn)用Yarn能夠有效提升集群的利用率,帶來更好的服務(wù),為資源統(tǒng)一管理和數(shù)據(jù)共享提供便利[1]。
大數(shù)據(jù)可視化主要是利用可視化方法來分析和挖掘大數(shù)據(jù)中具有價(jià)值的潛在信息。可視分析的目標(biāo)主要是針對(duì)大規(guī)模、動(dòng)態(tài)、模糊、不一致數(shù)據(jù)集進(jìn)行分析。在當(dāng)前的數(shù)據(jù)可視化技術(shù)中,主要是運(yùn)用計(jì)算機(jī)圖形學(xué)和圖像處理技術(shù),將各類數(shù)據(jù)轉(zhuǎn)化成可以在屏幕上顯示的圖形或圖像,對(duì)其進(jìn)行交叉處理的理論和技術(shù)。通俗來講,就是將看似毫無意義、沒有利用價(jià)值的數(shù)據(jù)信息轉(zhuǎn)換成一種容易被理解和利用的視覺方式展現(xiàn)在眼前,這樣能夠更好地進(jìn)行數(shù)據(jù)的觀察和分析。大數(shù)據(jù)可視化可以在進(jìn)行數(shù)據(jù)分析挖掘的過程中利用用戶界面和人機(jī)交互技術(shù),使計(jì)算機(jī)的計(jì)算能力與人的認(rèn)知能力進(jìn)行融合。這樣能夠有效提升針對(duì)大規(guī)模復(fù)雜數(shù)據(jù)集的分析能力,提高數(shù)據(jù)分析的效果。大數(shù)據(jù)可視化將計(jì)算機(jī)強(qiáng)大的計(jì)算能力與人對(duì)事物精確的認(rèn)知能力進(jìn)行巧妙結(jié)合,進(jìn)而有效提升了數(shù)據(jù)分析和數(shù)據(jù)觀察的整體能力[2]。
基于Hadoop的分層架構(gòu)設(shè)計(jì),利用這項(xiàng)技術(shù)建立智慧圖書館大數(shù)據(jù)平臺(tái),不僅可以將圖書館的數(shù)據(jù)囊括其中,還可以將教學(xué)數(shù)據(jù)、讀者的消費(fèi)數(shù)據(jù)包含在內(nèi)。由于大數(shù)據(jù)平臺(tái)中會(huì)包含眾多的數(shù)據(jù),因此可以在大數(shù)據(jù)平臺(tái)的基礎(chǔ)上展開數(shù)據(jù)的存儲(chǔ)、分析和應(yīng)用展示。為了滿足不同業(yè)務(wù)多樣化的需求,在構(gòu)建平臺(tái)的過程中,需要根據(jù)邏輯分層方法進(jìn)行設(shè)計(jì)。基本上分為4層架構(gòu),分別為數(shù)據(jù)采集層、數(shù)據(jù)存儲(chǔ)層、數(shù)據(jù)服務(wù)層以及數(shù)據(jù)應(yīng)用層。
數(shù)據(jù)采集層:數(shù)據(jù)采集層會(huì)囊括數(shù)據(jù)系統(tǒng)以及對(duì)元數(shù)據(jù)的抽取。數(shù)據(jù)中不僅會(huì)包括圖書館當(dāng)前已有的各類數(shù)據(jù),還會(huì)包括圖書館的數(shù)字資源數(shù)據(jù)。智慧圖書館作為智慧校園中重要組成內(nèi)容,所以智慧圖書館大數(shù)據(jù)平臺(tái)不是單獨(dú)存在的,還需要與學(xué)生的教學(xué)數(shù)據(jù)、學(xué)生的基礎(chǔ)信息和學(xué)生的消費(fèi)數(shù)據(jù)保持一定的關(guān)系。數(shù)據(jù)采集就是針對(duì)學(xué)生的各種信息進(jìn)行抽取、清洗、轉(zhuǎn)化和加載,將各類數(shù)據(jù)轉(zhuǎn)化成統(tǒng)一的格式、使其能夠?yàn)閿?shù)據(jù)存儲(chǔ)層做準(zhǔn)備。
數(shù)據(jù)存儲(chǔ)層:各類數(shù)據(jù)的存儲(chǔ)是大數(shù)據(jù)平臺(tái)重要的工作內(nèi)容,因此數(shù)據(jù)存儲(chǔ)是整個(gè)智慧圖書館大數(shù)據(jù)平臺(tái)中的重要部分。平臺(tái)所有的業(yè)務(wù)和展示都需要數(shù)據(jù)存儲(chǔ)層給予配合。一般情況下,智慧圖書館大數(shù)據(jù)平臺(tái)中的數(shù)據(jù)存儲(chǔ)層會(huì)采用傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)以及分布式文件系統(tǒng)的混搭方式。關(guān)系型數(shù)據(jù)在學(xué)校的內(nèi)部主要被用來集成學(xué)校現(xiàn)在已有的業(yè)務(wù)系統(tǒng)數(shù)據(jù),為各類數(shù)據(jù)進(jìn)行清洗和轉(zhuǎn)化提供中間表,與此同時(shí)存儲(chǔ)數(shù)據(jù)并挖掘數(shù)據(jù)背后隱藏的信息。分布式文件系統(tǒng)是大數(shù)據(jù)存儲(chǔ)層主要的存儲(chǔ)方式,具有結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)兩種,是整個(gè)數(shù)據(jù)分析挖掘中的主體。
數(shù)據(jù)服務(wù)層:服務(wù)層在整個(gè)系統(tǒng)平臺(tái)中承擔(dān)著數(shù)據(jù)存儲(chǔ)層和應(yīng)用層之間的連接,可以定義相對(duì)應(yīng)的接口,將平臺(tái)中不同的服務(wù)進(jìn)行關(guān)聯(lián),為上一層的應(yīng)用提供良好的訪問接口。數(shù)據(jù)分析服務(wù)需要建立在Hadoop平臺(tái)上,從業(yè)務(wù)需求出發(fā),使用大數(shù)據(jù)平臺(tái)良好的計(jì)算能力完成數(shù)據(jù)的轉(zhuǎn)換、抽取、分析挖掘等功能。
數(shù)據(jù)應(yīng)用層:主要是進(jìn)行數(shù)據(jù)分析、挖掘以及業(yè)務(wù)整合的展示。在這一層中具體的應(yīng)用包括決策支持系統(tǒng)、圖書館報(bào)告、個(gè)人讀書報(bào)告、移動(dòng)客戶端等。
為了保證智慧圖書館大數(shù)據(jù)平臺(tái)的順利建設(shè),促進(jìn)智慧圖書館數(shù)據(jù)分析挖掘的良好運(yùn)行,需要建立統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn),對(duì)原數(shù)據(jù)進(jìn)行抽取、清洗、轉(zhuǎn)化等工作。由于元數(shù)據(jù)來自不同的自動(dòng)化系統(tǒng),各個(gè)自動(dòng)化系統(tǒng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)都是根據(jù)相應(yīng)的業(yè)務(wù)需求進(jìn)行設(shè)計(jì)的,邏輯關(guān)系較為復(fù)雜。所以數(shù)據(jù)庫(kù)的類型和數(shù)據(jù)結(jié)構(gòu)都存在明顯的差異,因此想要保障相關(guān)工作順利進(jìn)行,在進(jìn)行數(shù)據(jù)采集工作之前,應(yīng)當(dāng)構(gòu)建統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn),為后續(xù)的數(shù)據(jù)分析和挖掘工作提供良好的基礎(chǔ)數(shù)據(jù),保障工作效果[3]。
在數(shù)據(jù)存儲(chǔ)架構(gòu)設(shè)計(jì)設(shè)置云端數(shù)據(jù)存儲(chǔ)模塊,主要是為了滿足大量結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)需求。與此同時(shí),又需要保證相關(guān)數(shù)據(jù)存儲(chǔ)的安全性以及數(shù)據(jù)訪問使用的高效性。一般情況下會(huì)選取HDFS進(jìn)行存儲(chǔ),主要是因?yàn)檫\(yùn)用HDFS進(jìn)行存儲(chǔ)具有強(qiáng)大的數(shù)據(jù)處理能力,能夠利用備份功能使相關(guān)數(shù)據(jù)保持較高的可用性以及系統(tǒng)容錯(cuò)能力。HDFS作為Hadoop生態(tài)系統(tǒng)中重要的組成部分,大部分并行計(jì)算框架都能夠支持高效讀取存儲(chǔ)在HDFS上的數(shù)據(jù)。由于云端存儲(chǔ)會(huì)包括多個(gè)業(yè)務(wù)系統(tǒng)的數(shù)據(jù),因此為了更好地進(jìn)行數(shù)據(jù)分析,應(yīng)當(dāng)根據(jù)存儲(chǔ)目錄將不同的業(yè)務(wù)類型和信息維度進(jìn)行劃分,保障存儲(chǔ)的規(guī)范性。
這項(xiàng)技術(shù)的合理應(yīng)用有利于實(shí)現(xiàn)校園網(wǎng)內(nèi)部數(shù)據(jù)的集成,這個(gè)模塊可以根據(jù)不同服務(wù)需求選擇合理的抽取方法。將大數(shù)據(jù)平臺(tái)中所需的各項(xiàng)數(shù)據(jù)從業(yè)務(wù)系統(tǒng)中進(jìn)行抽取,并將抽取出的元數(shù)據(jù)在中間層進(jìn)行清洗、轉(zhuǎn)化、集成。在完成以上步驟之后,將其匯聚到目標(biāo)數(shù)據(jù)庫(kù)當(dāng)中,這項(xiàng)技術(shù)在數(shù)據(jù)的采集過程中具有非常關(guān)鍵的作用。
數(shù)據(jù)抽取是構(gòu)建智慧圖書館大數(shù)據(jù)平臺(tái)數(shù)據(jù)采集的重要步驟,在進(jìn)行這項(xiàng)步驟之前,需要對(duì)數(shù)據(jù)庫(kù)類型、數(shù)據(jù)類型進(jìn)行充分的調(diào)查和了解。在第一次進(jìn)行數(shù)據(jù)采集的過程中,由于會(huì)包含很多業(yè)務(wù)數(shù)據(jù),所以在進(jìn)行第一次數(shù)據(jù)采集過程中屬于全量抽取。在此后的數(shù)據(jù)采集工作中,需要將此作為基礎(chǔ)進(jìn)行增量抽取。在工作中需要確定合理的抽取頻率,由于不同的業(yè)務(wù)數(shù)據(jù)類型具有不同的特點(diǎn),所以需要根據(jù)實(shí)際情況設(shè)定相應(yīng)的抽取頻率。例如圖書借閱產(chǎn)生的數(shù)據(jù)可以進(jìn)行1天1次抽取或者更短時(shí)間內(nèi)進(jìn)行抽取,如果是針對(duì)讀者信息進(jìn)行抽取,則可以將抽取頻率延長(zhǎng)設(shè)定為半年1次或者一學(xué)期1次。在完成了數(shù)據(jù)的采集和抽取之后,需要對(duì)采集到的數(shù)據(jù)進(jìn)行清洗。進(jìn)行數(shù)據(jù)清洗是為了刪除不必要、不可利用的相關(guān)數(shù)據(jù),主要是針對(duì)缺失重要字段的不完整數(shù)據(jù)或者存在明顯錯(cuò)誤的數(shù)據(jù)以及具有重復(fù)信息的數(shù)據(jù)。在進(jìn)行數(shù)據(jù)清洗過程中,應(yīng)當(dāng)建立合理的數(shù)據(jù)清洗標(biāo)準(zhǔn),根據(jù)數(shù)據(jù)清洗標(biāo)準(zhǔn)利用SQL代碼查找相應(yīng)的字段進(jìn)行Delete操作。
為了促進(jìn)基礎(chǔ)大數(shù)據(jù)平臺(tái)智慧圖書館的順利構(gòu)建,需要合理運(yùn)用相關(guān)技術(shù),革新自己的理念。在合理構(gòu)建大數(shù)據(jù)技術(shù)智慧圖書館架構(gòu)之后,采用相應(yīng)的技術(shù)手段,保障智慧圖書館的效果和工作效率,充分了解各項(xiàng)關(guān)鍵技術(shù)、服務(wù)層的作用與意義,使運(yùn)行系統(tǒng)保持穩(wěn)定的運(yùn)行,展現(xiàn)出基礎(chǔ)大數(shù)據(jù)平臺(tái)智慧圖書館的優(yōu)勢(shì)。