周少珂 張振平 邵華 徐茹茹 張瑛
摘 要:Hadoop技術(shù)的兩大核心框架設(shè)計(jì)是HDFS(Hadoop Distribution File System)和MapReduce。HDFS為Hadoop分布式文件存儲(chǔ)系統(tǒng),MapReduce為分布式計(jì)算模型。本文以實(shí)訓(xùn)室現(xiàn)運(yùn)行物聯(lián)網(wǎng)資產(chǎn)管理系統(tǒng)采集并存儲(chǔ)的大數(shù)據(jù)為基礎(chǔ),利用實(shí)訓(xùn)室淘汰的老舊計(jì)算機(jī)搭建成Hadoop完全分布式集群系統(tǒng),將物聯(lián)網(wǎng)系統(tǒng)和大數(shù)據(jù)Hadoop集群系統(tǒng)加以融合創(chuàng)新,對(duì)數(shù)據(jù)進(jìn)行格式化處理后在真實(shí)集群系統(tǒng)平臺(tái)中進(jìn)行測(cè)試分析。經(jīng)驗(yàn)證,Hadoop大數(shù)據(jù)技術(shù)架構(gòu)下的物聯(lián)網(wǎng)資產(chǎn)管理系統(tǒng)可以高效地管理數(shù)據(jù)。
關(guān)鍵詞:大數(shù)據(jù);Hadoop;集群;物聯(lián)網(wǎng);資產(chǎn)管理
中圖分類號(hào):TP311.1文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-5168(2021)12-0022-04
Research on Performance of IoT Asset Management System
Based on Hadoop Technology
ZHOU Shaoke ZHANG Zhenping SHAO Hua XU Ruru ZHANG Ying
(Information Engineering School, Henan Technical Institute,Zhengzhou Henan 450042)
Abstract: The two core framework designs of Hadoop technology are HDFS (Hadoop Distribution File System) and MapReduce. HDFS is a Hadoop distributed file storage system, and MapReduce is a distributed computing model. In this paper, based on the big data collected and stored by the current running IoT asset management system in the training room, the old computers eliminated from the training room was used to build a Hadoop fully distributed cluster system, the Internet of Things system and the big data Hadoop cluster system were integrated and innovated, after formatting the data, it was tested and analyzed in the real cluster system platform. It has been verified that the IoT asset management system under the Hadoop big data technology framework can efficiently manage data.
Keywords: big data;Hadoop;cluster;Internet of Things;asset management
Hadoop是Apache基金會(huì)的開源項(xiàng)目,具有可靠性、可擴(kuò)展性的分布式計(jì)算存儲(chǔ)系統(tǒng)。該項(xiàng)目的兩個(gè)核心框架是HDFS分布式文件系統(tǒng)和MapReduce分布式計(jì)算模型[1]。
HDFS具有高容錯(cuò)性,并且經(jīng)常部署在低廉的硬件上,其組件主要用于解決海量數(shù)據(jù)的存儲(chǔ)問題,主要模式為“一次寫入、多次讀取”,其處理的對(duì)象為離線數(shù)據(jù),而非實(shí)時(shí)性數(shù)據(jù)[2]。MapReduce組件主要解決數(shù)據(jù)的計(jì)算問題,其運(yùn)行建立在HDFS的基礎(chǔ)上,它能夠?qū)A看鎯?chǔ)的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析和計(jì)算,按照計(jì)算要求在大數(shù)據(jù)平臺(tái)中輸出最終的結(jié)果[3]。
隨著大數(shù)據(jù)技術(shù)的不斷發(fā)展,企業(yè)使用的Hadoop項(xiàng)目不斷革新。目前,常用的Hadoop組件有:HDFS分布式存儲(chǔ)、MapReduce分布式技術(shù)、Yarn模型、Zookeeper一致性模型、HBase列式數(shù)據(jù)庫、Hive數(shù)據(jù)倉庫等[4]。
1 Hadoop生態(tài)圈系統(tǒng)
2006年2月,Apache Hadoop項(xiàng)目正式啟動(dòng),經(jīng)過十幾年的發(fā)展,從最初的1.X到2.X,再到Hadoop-3.4.X版本,其不斷推出新版本。Hadoop源于Google公司開發(fā)的GFS、MapReduce和BigTable三款產(chǎn)品[5]。經(jīng)過不斷發(fā)展,Hadoop現(xiàn)已有穩(wěn)定的生態(tài)系統(tǒng),包含各種服務(wù)。如圖1所示,其最重要的兩項(xiàng)服務(wù)組件為HDFS和MapReduce[6]。
ZooKeeper組件的功能是高效開發(fā)和維護(hù)分布式應(yīng)用協(xié)調(diào)服務(wù)[7];Hive組件是建立在Hadoop體系結(jié)構(gòu)上的數(shù)據(jù)倉庫基礎(chǔ)架構(gòu),可將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供完整的查詢語言,把SQL語句轉(zhuǎn)化成MapReduce程序提交給Hadoop集群進(jìn)行處理[8];Hbase組件是一個(gè)分布式的面向列的開源數(shù)據(jù)庫,由Google公司發(fā)表的論文BigTable演變而來[9];Pig組件是一種大規(guī)模數(shù)據(jù)分析平臺(tái),自身提供SQL-Like語言,編譯器會(huì)把類SQL數(shù)據(jù)分析請(qǐng)求轉(zhuǎn)化為一系列經(jīng)過優(yōu)化處理的MapReduce運(yùn)算語言[10]。
2 Hadoop分布式集群部署
2.1 Hadoop集群部署
Hadoop分布式集群的部署模式可分為三種:單機(jī)版搭建、偽分布式集群搭建、完全分布式集群搭建。如圖2所示,本文使用21臺(tái)淘汰的老舊實(shí)訓(xùn)計(jì)算機(jī),部署Hadoop-2.7.6版本完全分布式集群,為分析和研究物聯(lián)網(wǎng)系統(tǒng)采集的大量數(shù)據(jù)做好環(huán)境準(zhǔn)備。
原XP系統(tǒng)的實(shí)訓(xùn)計(jì)算機(jī)通過U盤啟動(dòng)模式安裝Linux操作系統(tǒng)(CentOS6.5版本),每臺(tái)計(jì)算機(jī)的硬盤大小為250 GB,內(nèi)存大小為2 GB,CPU核數(shù)為2核,其間需要對(duì)21臺(tái)計(jì)算機(jī)進(jìn)行操作系統(tǒng)配置。由于Hadoop集群系統(tǒng)需要使用Java環(huán)境,因此首先對(duì)21臺(tái)主機(jī)分別進(jìn)行JDK環(huán)境變量的配置,JDK環(huán)境變量使用1.8(包含)以上版本,系統(tǒng)穩(wěn)定性較好。本文使用JDK 1.8版本進(jìn)行配置,如圖3所示。
整個(gè)分布式集群系統(tǒng)中,1臺(tái)計(jì)算機(jī)承擔(dān)NameNode節(jié)點(diǎn)工作任務(wù),1臺(tái)計(jì)算機(jī)承擔(dān)SecondaryNameNode節(jié)點(diǎn)工作任務(wù),其余19臺(tái)計(jì)算機(jī)承擔(dān)DataNode節(jié)點(diǎn)工作任務(wù)。如圖4所示,整個(gè)集群配置過程中,21臺(tái)計(jì)算機(jī)采用同樣配置,以保證數(shù)據(jù)的一致性。
在完全分布式集群部署過程中,系統(tǒng)需要配置6個(gè)核心文件。一是hadoop-env.sh文檔,環(huán)境變量路徑要正確導(dǎo)入export JAVA_HOME=$JAVA_HOME;二是core-site.xml文檔,服務(wù)頁面默認(rèn)的是9000端口號(hào);三是yarn-site.xml文檔;四是mapred-site.xml文檔,配置MapReduce框架;五是hdfs-site.xml文檔,配置存儲(chǔ)數(shù)據(jù)的dfs.replication副本數(shù)默認(rèn)為3;六是Master-Slave文檔,最后一項(xiàng)配置文件需要添加所有DataNode數(shù)據(jù)節(jié)點(diǎn)的主機(jī)名。
配置6個(gè)核心文件后,人們需要對(duì)整個(gè)Hadoop集群系統(tǒng)進(jìn)行格式化,其間僅對(duì)NameNode節(jié)點(diǎn)下達(dá) bin/hadoop namenode -format命令即可。此時(shí)還需要使用Service iptables stop命令關(guān)閉防火墻功能,使系統(tǒng)服務(wù)組件不受防火墻的影響。最后使用start-all.sh命令啟動(dòng)集群。
2.2 Hadoop集群測(cè)試
系統(tǒng)集群成功配置后,人們可以使用兩種方式對(duì)該集群進(jìn)行測(cè)試。一是系統(tǒng)命令方式:使用JPS、hadoop fs–ls/、hdfs dfs–put等本地系統(tǒng)文件路徑和分布式系統(tǒng)文件路徑的命令,如圖5所示。二是圖形界面方式:在谷歌瀏覽器中輸入http://hadoop01:50070,進(jìn)入HDFS分布式存儲(chǔ)組件服務(wù);輸入http://hadoop01:8088,進(jìn)入MapReduce分布式計(jì)算組件服務(wù),如圖6所示。
本文通過后臺(tái)系統(tǒng)hadoop fs–mkdir/a命令,在該分布式集群根目錄下創(chuàng)建/a目錄,如圖7所示。
3 Hadoop數(shù)據(jù)測(cè)試
智慧化資產(chǎn)管理的實(shí)訓(xùn)機(jī)房中,各實(shí)訓(xùn)室和中心服務(wù)機(jī)房均有物聯(lián)網(wǎng)系統(tǒng)對(duì)監(jiān)控設(shè)備進(jìn)行不間斷的數(shù)據(jù)采集、存儲(chǔ)和日志記錄,一旦出現(xiàn)問題,就可以隨時(shí)查找日志和數(shù)據(jù)。面對(duì)大量數(shù)據(jù),管理員在總結(jié)和查找問題數(shù)據(jù)時(shí)耗費(fèi)大量時(shí)間,而且數(shù)據(jù)的內(nèi)在規(guī)律性和精準(zhǔn)度有待提高。
鑒于此,研究人員對(duì)河南應(yīng)用技術(shù)職業(yè)學(xué)院實(shí)訓(xùn)室淘汰的老舊計(jì)算機(jī)進(jìn)行集群部署,將該集群各IP地址與物聯(lián)網(wǎng)資產(chǎn)管理系統(tǒng)服務(wù)器納入同一網(wǎng)絡(luò),其通過同一接口成功接入物聯(lián)網(wǎng)資產(chǎn)管理系統(tǒng),如圖8所示。物聯(lián)網(wǎng)實(shí)時(shí)采集數(shù)據(jù)(數(shù)據(jù)格式有.txt、.csv、.xlsx)并將其存儲(chǔ)到HDFS文件系統(tǒng)中,若數(shù)據(jù)量以MB(或更大單位)為單位,則建議使用.csv文檔格式。
研究基于Hadoop技術(shù)的物聯(lián)網(wǎng)資產(chǎn)管理系統(tǒng)時(shí),要選定系統(tǒng)采集并存儲(chǔ)的相同數(shù)據(jù),使用控制變量法進(jìn)行對(duì)比研究。針對(duì)物聯(lián)網(wǎng)采集的相同數(shù)據(jù)(如1.1 GB大小數(shù)據(jù),40 000 000行),使用基于PC(個(gè)人計(jì)算機(jī))的傳統(tǒng)數(shù)據(jù)分析軟件和Hadoop分布式集群系統(tǒng),讀取數(shù)據(jù)行數(shù),記錄行讀取的平均時(shí)間(不考慮程序優(yōu)化給時(shí)間帶來的影響),其性能分析結(jié)果如表1所示。
根據(jù)表1分析結(jié)果,使用傳統(tǒng)數(shù)據(jù)分析軟件讀取大量數(shù)據(jù)時(shí),由于硬件的限制,計(jì)算機(jī)容易出現(xiàn)卡頓和宕機(jī)現(xiàn)象,而且數(shù)據(jù)讀取需要耗費(fèi)大量時(shí)間;使用Hadoop分布式集群系統(tǒng)讀取數(shù)據(jù)時(shí),受內(nèi)部工作機(jī)制的影響,其讀取數(shù)據(jù)的耗時(shí)較短,整個(gè)過程沒有出現(xiàn)卡頓和宕機(jī)的現(xiàn)象。
上文基于大量相同數(shù)據(jù)(以GB為單位)進(jìn)行了對(duì)比研究,鑒于此,有必要單獨(dú)對(duì)兩種方式進(jìn)行詳細(xì)研究,并多次重復(fù)相同試驗(yàn)步驟,取其平均值。
計(jì)算機(jī)是傳統(tǒng)數(shù)據(jù)分析軟件的基礎(chǔ)平臺(tái),壓力測(cè)試表明,隨著數(shù)據(jù)容量的增加,其軟件性能變化如圖9所示。當(dāng)數(shù)據(jù)大小不足兆字節(jié)容量時(shí),數(shù)據(jù)分析軟件記錄行讀取所耗的時(shí)間均保持在1~5 s;當(dāng)數(shù)據(jù)大小超過兆字節(jié)容量時(shí),數(shù)據(jù)分析軟件記錄行讀取所耗的時(shí)間快速上升,最終,隨著數(shù)據(jù)的不斷增大,數(shù)據(jù)分析軟件出現(xiàn)卡頓和宕機(jī)的現(xiàn)象。
下面以Hadoop集群為基礎(chǔ),針對(duì)物聯(lián)網(wǎng)資產(chǎn)管理系統(tǒng)采集與存儲(chǔ)的數(shù)據(jù),進(jìn)行數(shù)據(jù)記錄的行讀取時(shí)間測(cè)試。集群運(yùn)行期間不考慮程序代碼編寫優(yōu)化程度對(duì)數(shù)據(jù)讀取時(shí)間的影響,重復(fù)性測(cè)試結(jié)果如圖10所示。
Hadoop分布式集群系統(tǒng)可以有效讀取數(shù)據(jù)文件。通過圖9、圖10測(cè)試結(jié)果分析可知,當(dāng)數(shù)據(jù)塊文件不大于180 MB時(shí),隨著數(shù)據(jù)塊文件容量的增大,所需讀取時(shí)間逐漸減少;當(dāng)數(shù)據(jù)塊文件大于180 MB時(shí),隨著數(shù)據(jù)塊文件容量的增大,其數(shù)據(jù)記錄的行讀取時(shí)間增加,但整體增加緩慢;當(dāng)數(shù)據(jù)塊文件容量接近80 G時(shí),其整體讀取時(shí)間不超過30 s,再次證明Hadoop分布式集群系統(tǒng)適用于大數(shù)據(jù)文件的讀寫。大數(shù)據(jù)集群系統(tǒng)主要用于快速讀取海量數(shù)據(jù),當(dāng)對(duì)小文件進(jìn)行讀取分析時(shí),其會(huì)耗費(fèi)較多時(shí)間,并不能充分發(fā)揮快速讀取的功能。
4 結(jié)論
近年來,物聯(lián)網(wǎng)技術(shù)快速發(fā)展,而高職院校實(shí)訓(xùn)室物聯(lián)網(wǎng)資產(chǎn)管理系統(tǒng)實(shí)時(shí)采集并存儲(chǔ)大量數(shù)據(jù)。若工作人員使用傳統(tǒng)的數(shù)據(jù)分析方法對(duì)數(shù)據(jù)進(jìn)行篩選,所需時(shí)間較長,工作效率較低。本研究利用21臺(tái)配置較低且實(shí)訓(xùn)室淘汰的老舊計(jì)算機(jī),部署Hadoop分布式集群,并通過物聯(lián)網(wǎng)資產(chǎn)管理系統(tǒng)實(shí)現(xiàn)分布式集群系統(tǒng)的網(wǎng)絡(luò)對(duì)接,使物聯(lián)網(wǎng)采集的數(shù)據(jù)時(shí)時(shí)存儲(chǔ)在Hadoop分布式集群的HDFS文件中。該集群充分利用空閑硬件CPU、內(nèi)存、硬盤等資源,通過資源的再次整合,更好地提供數(shù)據(jù)的存儲(chǔ)、統(tǒng)計(jì)、分析等服務(wù)。
本文將物聯(lián)網(wǎng)技術(shù)和Hadoop技術(shù)相結(jié)合,在真實(shí)的環(huán)境和數(shù)據(jù)庫集群中進(jìn)行創(chuàng)新性研究,根據(jù)測(cè)試數(shù)據(jù)生成的圖表,驗(yàn)證發(fā)現(xiàn),Hadoop技術(shù)架構(gòu)下的物聯(lián)網(wǎng)資產(chǎn)管理系統(tǒng)可以高效地管理數(shù)據(jù)。今后的工程應(yīng)用和技術(shù)研究將以已經(jīng)搭建的Hadoop分布式集群環(huán)境為基礎(chǔ),通過詳細(xì)數(shù)據(jù)進(jìn)一步優(yōu)化上層軟件的程序算法。
參考文獻(xiàn):
[1]夏靖波,韋澤鯤,付凱,等.云計(jì)算中Hadoop技術(shù)研究與應(yīng)用綜述[J].計(jì)算機(jī)科學(xué),2016(11):6-11.
[2]尹喬,魏占辰,黃秋蘭,等.Hadoop海量數(shù)據(jù)遷移系統(tǒng)開發(fā)及應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2019(13):66-71.
[3]李校林,杜托,謝勇.基于Hadoop的大數(shù)據(jù)頻繁模式挖掘算法[J].微電子學(xué)與計(jì)算機(jī),2018(9):14-19.
[4]MO H,ZHANG Y J,LI H F.A Performance Comparison of Big Data Processing Platform Based on Parallel Clustering Algorithms[J].Procedia Computer Science,2018(139):127-135.
[5]黃華林,龐欣婷.基于Hadoop的數(shù)據(jù)資源管理平臺(tái)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2018(7):329-333.
[6]王謨瀚,翟俊海,齊家興.基于MapReduce和Spark的大規(guī)模壓縮模糊K-近鄰[J].計(jì)算機(jī)工程,2020(11):145-153.
[7]吳穎,李曉玲,唐晶磊.Hadoop平臺(tái)下粒子濾波結(jié)合改進(jìn)ABC算法的IoT大數(shù)據(jù)特征選擇方法[J].計(jì)算機(jī)應(yīng)用研究,2019(11):3297-3301.
[8]WU Q H,WANG H H,YAN X S,et al.MapReduce-based adaptive random forest algorithm for multi-label classification[J]. Neural Computing and Applications, 2018(31):? 8239–8252.
[9]SHAIKH T A,ALI R.Big data for better Indian healthcare[J].International Journal of Information Technology,2019,(4):735-741.
[10]FRANCISCO G,ANTONIO C,LUIS I,et al.Improving Distance-Join Query processing with Voronoi-Diagram based partitioning in SpatialHadoop[J].Future Generation Computer Systems,2020(111):723-740.