亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Hadoop的學(xué)習(xí)行為數(shù)據(jù)云存儲(chǔ)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

        2022-10-10 01:23:26蔡春花黃思遠(yuǎn)高繼梅
        軟件工程 2022年10期
        關(guān)鍵詞:配置文件集群數(shù)據(jù)庫

        蔡春花,黃思遠(yuǎn),高繼梅

        (黃河交通學(xué)院,河南 焦作 454000)

        1 引言(Introduction)

        在當(dāng)下為數(shù)不多的云存儲(chǔ)相關(guān)技術(shù)中,Hadoop的HDFS(Hadoop Distributed File System)文件系統(tǒng)是所有互聯(lián)網(wǎng)公司中使用最廣泛的分布式文件系統(tǒng)。HDFS是Google在2003 年提出的GFS(Google File System)的一個(gè)開放源碼的實(shí)現(xiàn),不過在Google的設(shè)計(jì)中,為了降低數(shù)據(jù)存儲(chǔ)與數(shù)據(jù)管理的耦合,GFS僅對數(shù)據(jù)的存儲(chǔ)負(fù)責(zé)而不提供類似數(shù)據(jù)庫查詢的方案。也就是說,GFS只存數(shù)據(jù),而對數(shù)據(jù)的具體內(nèi)容一無所知,自然也就不能提供基于內(nèi)容的檢索功能。所以,更進(jìn)一步,Google開發(fā)了Bigtable作為數(shù)據(jù)庫,向上層服務(wù)提供基于內(nèi)容的各種功能,而HBase是Bigtable的實(shí)現(xiàn)。與原始的存儲(chǔ)模式相比,云存儲(chǔ)具有訪問方便、可靠性高、成本低、可擴(kuò)展性好等優(yōu)點(diǎn)。目前,云計(jì)算技術(shù)在中國的應(yīng)用已經(jīng)從幾年前僅在國家高端領(lǐng)域推廣到民用技術(shù)等領(lǐng)域,云存儲(chǔ)已成為未來存儲(chǔ)的趨勢。由于一些相關(guān)云存儲(chǔ)技術(shù)的開源性質(zhì),云存儲(chǔ)的應(yīng)用領(lǐng)域變得越來越廣泛。云存儲(chǔ)所用的存儲(chǔ)結(jié)構(gòu)不同于傳統(tǒng)的網(wǎng)絡(luò)體系,隨著科技的發(fā)展,它將會(huì)取代傳統(tǒng)模式的存儲(chǔ)數(shù)據(jù)的方法。

        在線學(xué)習(xí)行為的日志數(shù)據(jù)如學(xué)生登錄、瀏覽資源、點(diǎn)擊課件等操作產(chǎn)生的日志數(shù)據(jù)來源于在線學(xué)習(xí)平臺(tái),平臺(tái)上的日志數(shù)據(jù)將會(huì)依據(jù)不同的數(shù)據(jù)格式,分別存儲(chǔ)于與之對應(yīng)的數(shù)據(jù)庫中。首先,網(wǎng)站中每天都可能產(chǎn)生較多關(guān)于學(xué)習(xí)者觀看視頻、學(xué)習(xí)課程等的日志數(shù)據(jù);其次,學(xué)習(xí)平臺(tái)的數(shù)據(jù)需要進(jìn)行保留(至少保留一年時(shí)間),以供跨年數(shù)據(jù)的分析及對比;而HDFS在Hadoop技術(shù)體系中負(fù)責(zé)分布式存儲(chǔ)數(shù)據(jù),一個(gè)文件存儲(chǔ)在HDFS上時(shí)會(huì)被分成若干個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊分別存儲(chǔ)在不同的服務(wù)器上,因此HDFS解決了存儲(chǔ)容量以及數(shù)據(jù)安全的問題。

        2 云存儲(chǔ)平臺(tái)設(shè)計(jì)(Design of cloud storage platform)

        2.1 存儲(chǔ)集群規(guī)模及服務(wù)的規(guī)劃

        云存儲(chǔ)業(yè)務(wù)主要面向海量數(shù)據(jù)和文件的存儲(chǔ)和計(jì)算,強(qiáng)調(diào)單節(jié)點(diǎn)存儲(chǔ)容量和成本,因此配置相對廉價(jià)的串口硬盤,滿足成本和容量的需求。

        測試環(huán)境為了控制成本,采用虛擬化技術(shù)虛擬出三臺(tái)Linux服務(wù)器構(gòu)成集群,主機(jī)名分別設(shè)為Hadoop101、Hadoop102、Hadoop103,集群配置Hadoop101 CPU核心數(shù)4,磁盤空間50 GB,內(nèi)存大小8 GB;Hadoop102 CPU核心數(shù)2,磁盤空間50 GB,內(nèi)存大小4 GB;Hadoop103 CPU核心數(shù)2,磁盤空間50 GB,內(nèi)存大小4 GB。

        集群服務(wù)規(guī)劃:Hadoop101部署的服務(wù)有NameNode、DataNode、QuorumPeerMain、HMaster、HRegionServer、SecondaryNameNode;Hadoop102部署的服務(wù)有DataNode、QuorumPeerMain、HRegionServer;Hadoop103部署的服務(wù)有DataNode、QuorumPeerMain、HRegionServer、SecondaryNameNode。

        2.2 請求處理系統(tǒng)設(shè)計(jì)

        云存儲(chǔ)平臺(tái)是指Spring Boot應(yīng)用服務(wù)器,可以為用戶直接提供服務(wù),比如進(jìn)行文件的上傳或下載。基于Hadoop的學(xué)習(xí)行為數(shù)據(jù)云存儲(chǔ)平臺(tái)用戶功能模塊主要包含用戶注冊登錄、文件操作、用戶關(guān)注和文件分享等。用戶功能模塊如圖1所示。

        圖1 用戶功能模塊框架圖Fig.1 Framework diagram of the user function module

        2.3 HBase數(shù)據(jù)表設(shè)計(jì)

        傳統(tǒng)關(guān)系型數(shù)據(jù)庫是可以支持隨機(jī)訪問的,但關(guān)系型數(shù)據(jù)庫卻不能很好地適用于存儲(chǔ)海量的數(shù)據(jù),比如關(guān)系型數(shù)據(jù)庫MySQL,單表在存放約500萬條的數(shù)據(jù)時(shí),性能會(huì)大大降低。在這種情況下,必須有一種新的方案來解決海量數(shù)據(jù)存儲(chǔ)和隨機(jī)訪問的問題,HBase就是其中之一,HBase的單表可存儲(chǔ)百億級(jí)的數(shù)據(jù)且不影響查詢效率。

        HBase的表結(jié)構(gòu)設(shè)計(jì)與關(guān)系型數(shù)據(jù)庫有很多不同,主要HBase有行鍵(Row Key)和列族(Column Family)、時(shí)間戳(Time Stamp)這幾個(gè)全新的概念,如何設(shè)計(jì)表結(jié)構(gòu)就非常重要。HBase就是通過Table、Row Key、Column Family、Time Stamp確定一行數(shù)據(jù)。這與MySQL、Oracle等關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System,RDBMS)完全不同。大數(shù)據(jù)云存儲(chǔ)平臺(tái)涉及的主要表有file表、id_user表、user_file表和share表等。

        在設(shè)計(jì)HBase列族時(shí),使用文件的編號(hào)(Identity Document,ID)來作為每一個(gè)行鍵,使用file來當(dāng)列族,只設(shè)計(jì)一個(gè)列族,file中包含的各種字段都是該列族的列,使用Row Key和Column Family可以確定一個(gè)存儲(chǔ)單元(Cell),使用Time Stamp可以確定最新版本,如表1所示。

        表1 文件表Tab.1 File table

        3 云存儲(chǔ)平臺(tái)實(shí)現(xiàn)(Implementation of cloud storage)

        3.1 云存儲(chǔ)平臺(tái)的搭建

        (1)Hadoop集群的安裝及配置

        假設(shè)已經(jīng)配置好服務(wù)器集群的靜態(tài)網(wǎng)址,并且Java開發(fā)環(huán)境都配置正確,集群之間可以進(jìn)行免密登錄。下面對Apache Hadoop的具體實(shí)現(xiàn)步驟做簡要闡述。

        第一步,在Apache Hadoop的官方文檔中下載Apache Hadoop3.1.3的安裝包到hadoop101,并解壓到/opt/app/hadoop,再將Hadoop添加到環(huán)境變量中。

        第二步,在HADOOP_HOME下的etc/hadoop中修改hadoop-env.sh配置文件,其中添加JAVA_HOME的路徑。

        第三步,在HADOOP_HOME下的etc/hadoop中修改core-site.xml配置文件,添加NameNode的地址hadoop101:8020,并指定Hadoop數(shù)據(jù)的存儲(chǔ)目錄。

        第四步,在HADOOP_HOME下的etc/hadoop中修改hdfs-site.xml配置文件,指定NameNode的網(wǎng)頁端訪問地址為hadoop101:9870,指定SecondaryNameNode的WEB端訪問地址為hadoop103:9868。

        第五步,在HADOOP_HOME下的etc/hadoop/workers中添加節(jié)點(diǎn),共三行,分別是hadoop101、hadoop102、hadoop103。

        第六步,分發(fā)Hadoop和環(huán)境變量配置文件到hadoop102、hadoop103。

        至此,Hadoop集群的安裝及配置已經(jīng)完成,可以使用sbin/start-dfs.sh來啟動(dòng)HDFS集群,在瀏覽器訪問hadoop101:9870,可以查看Hadoop集群的節(jié)點(diǎn)狀態(tài)。

        (2)Zookeeper集群的安裝及配置

        Zookeeper的作用在前文已經(jīng)介紹過,這里是Zookeeper的集群安裝和安裝過后的配置過程。下面對Apache Zookeeper的具體實(shí)現(xiàn)步驟做簡要闡述。

        第一步,在Apache Zookeeper官方下載Apache Zookeeper3.5.7的安裝包,并上傳到hadoop101,解壓到/opt/app/zookeeper,再將Zookeeper添加到環(huán)境變量中。

        第二步,將ZOOKEEPER_HOME/conf/下的zoo_sample.cfg文件重命名為zoo.cfg,并在其中添加Zookeeper的數(shù)據(jù)存儲(chǔ)路徑,存放在ZOOKEEPER_HOME/zkData,添加hadoop101、hadoop102、hadoop103的Zookeeper監(jiān)聽地址。

        第三步,在ZOOKEEPER_HOME下創(chuàng)建zkData文件夾,并在zkData文件夾下創(chuàng)建myid文件,并寫入序號(hào)1。

        第四步,分發(fā)Zookeeper到hadoop102、hadoop103,并修改myid文件為不同的ID序號(hào),在hadoop102中寫入2,在hadoop103中寫入3,保證ID序號(hào)不同即可。

        至此,Zookeeper集群的安裝及配置已經(jīng)完成,可以使用bin/zkServer.sh start命令進(jìn)行Zookeeper服務(wù)的啟動(dòng),要注意的是需要在三臺(tái)服務(wù)器上都運(yùn)行該命令。啟動(dòng)完成后可以使用bin/zkServer.sh status查看Zookeeper是否啟動(dòng)成功。

        (3) HBase集群的安裝及配置

        下面對Apache HBase的具體實(shí)現(xiàn)步驟做簡要闡述。

        第一步,在Apache HBase官方下載Apache HBase2.0.5的安裝包,并上傳到hadoop101,解壓到/opt/app/hbase,再將HBase添加到環(huán)境變量中。

        第二步,在HBASE_HOME/conf下的hbase-env.sh配置文件中將HBASE_MANAGES_ZK的屬性值設(shè)置為false,代表使用我們自己配置的Zookeeper集群而不是使用HBase自帶的Zookeeper。

        第三步,在HBASE_HOME/conf下的hbase-site.xml中添加HBase的數(shù)據(jù)在HDFS存儲(chǔ)的位置,并指定HBase以分布式的方式工作,再指定使用自己的Zookeeper集群。

        第四步,在HBASE_HOME/conf下的regionservers中添加三行記錄,分別為hadoop101、hadoop102、hadoop103,代表HBase節(jié)點(diǎn)。

        第五步,分發(fā)HBase到hadoop102、hadoop103。

        至此,HBase集群的安裝及配置已經(jīng)完成,可以使用bin/start-hbase.sh來啟動(dòng)HBase集群,并且可以使用瀏覽器訪問hadoop101:16010查看HBase集群的狀態(tài)。

        3.2 請求處理系統(tǒng)

        用戶進(jìn)行成功注冊驗(yàn)證后,使用正確的信息即可登錄到系統(tǒng)。在Controller層進(jìn)行用戶認(rèn)證后如果用戶信息沒問題,那么即可放行用戶進(jìn)入平臺(tái),如果用戶信息不正確,會(huì)提示用戶。

        其中文件分享部分關(guān)鍵代碼:

        關(guān)注某用戶關(guān)鍵代碼:

        4 性能測試(Performance testing)

        4.1 HBase庫億級(jí)大數(shù)據(jù)查詢性能測試

        在云存儲(chǔ)平臺(tái)HBase的所有表中,只有與文件file相關(guān)的表的數(shù)據(jù)會(huì)比較大,因此只需對file表進(jìn)行性能測試。下面對查詢性能測試步驟做簡要概述。

        第一步,模擬生成file表的1 個(gè)列族,10 列字段,目標(biāo)數(shù)據(jù)量1億多條。

        第二步,使用Java客戶端連續(xù)根據(jù)Row Key查5 條記錄,將查詢耗時(shí)記錄下來,得到表2。

        表2 HBase查詢性能測試Tab.2 Tests of HBase query performance

        通過表2可以看出,使用Row Key進(jìn)行查詢時(shí),初次查詢較慢,需要 8 秒左右的時(shí)間,但之后查詢很快,基本可以做到百毫秒級(jí)查詢。當(dāng)然,測試環(huán)境配置不高,如果在5 個(gè)節(jié)點(diǎn),16核CPU,128 GB內(nèi)存的配置下可以實(shí)現(xiàn)幾十毫秒甚至幾毫秒級(jí)查詢。這得益于HBase適合存儲(chǔ)PB級(jí)別的海量數(shù)據(jù)(百億千億量級(jí)條記錄),能在幾十到百毫秒內(nèi)返回?cái)?shù)據(jù),并且不會(huì)因?yàn)閿?shù)據(jù)量的劇增而導(dǎo)致查詢性能下降。

        4.2 Hadoop集群性能測試

        (1)寫性能I/O測試

        使用Hadoop自帶的基準(zhǔn)測試工具進(jìn)行HDFS寫性能I/O測試,運(yùn)行如下命令hadoop jar/opt/app/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO-write-nrFiles 10-fileSize 128 MB,其中向HDFS寫入10 個(gè)128 MB的文件,測試結(jié)果如圖2所示。

        圖2 HDFS寫性能測試圖Fig.2 Test plot of HDFS write performance

        如圖2所示,向HDFS寫入了10 個(gè)文件,一共處理1,280 MB的數(shù)據(jù),每秒的吞吐量為73.64 MB,平均I/O速率為91.73 Mb/s,執(zhí)行時(shí)間為20.63 s。

        (2)讀性能I/O測試

        接下來進(jìn)行HDFS讀性能測試,使用Hadoop自帶的基準(zhǔn)測試工具,運(yùn)行如下命令hadoop jar/opt/app/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-clientjobclient-3.1.3-tests.jar TestDFSIO-read-nrFiles 10-fileSize128 MB,其中讀取HDFS的10 個(gè)128 MB的文件,測試結(jié)果如圖3所示。

        圖3 HDFS讀性能測試圖Fig.3 Test plot of HDFS read performanc

        如圖3所示,向HDFS讀取了10 個(gè)文件,一共處理1,280 MB的數(shù)據(jù),每秒的吞吐量為147.13 MB,平均I/O速率為348.56 Mb/s,執(zhí)行時(shí)間為19.48 s。

        5 結(jié)論(Conclusion)

        本論文重點(diǎn)研究以Hadoop和HBase集群實(shí)現(xiàn)的大數(shù)據(jù)云存儲(chǔ)平臺(tái),成功實(shí)現(xiàn)了一個(gè)自動(dòng)化、高效率的大數(shù)據(jù)云存儲(chǔ)平臺(tái)。各部分的功能都能實(shí)現(xiàn)后,搭建合適的環(huán)境進(jìn)行功能的測試,通過測試結(jié)果可見各模塊的功能需求可以滿足使用條件,可用性很高。

        在平臺(tái)高峰時(shí)請求量非常大,如果不進(jìn)行“流量削峰”,服務(wù)器可能因無法承受而宕機(jī),因此接下來可使用Kafka來進(jìn)行“流量削峰”。在存儲(chǔ)成本方面,盡管存儲(chǔ)設(shè)備都是低廉設(shè)備,但是由于備份機(jī)制,存儲(chǔ)成本也需要進(jìn)一步控制。因此在接下來的平臺(tái)版本升級(jí)中,會(huì)使用壓縮技術(shù)對文件進(jìn)行壓縮,并且對不同用戶的相同文件進(jìn)行“文件指紋技術(shù)”,對于重復(fù)文件只保留一份。

        猜你喜歡
        配置文件集群數(shù)據(jù)庫
        集群式AUV可控分群控制算法
        提示用戶配置文件錯(cuò)誤 這樣解決
        搭建簡單的Kubernetes集群
        互不干涉混用Chromium Edge
        忘記ESXi主機(jī)root密碼怎么辦
        一種無人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:40
        Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
        數(shù)據(jù)庫
        勤快又呆萌的集群機(jī)器人
        數(shù)據(jù)庫
        亚洲中文字幕精品久久久久久直播| 4hu四虎永久在线观看| 3344永久在线观看视频| 99久久国内精品成人免费| 亚洲女同性恋激情网站| 亚洲av无码国产精品久久| 亚洲小说区图片区另类春色| 无码不卡免费一级毛片视频| 国产精品又黄又爽又色| 大桥未久av一区二区三区| 成片免费观看视频大全| 久久久久亚洲AV成人网毛片| 狠狠久久av一区二区三区| 日本亲近相奷中文字幕| 亚洲一区二区三区成人网站| 成人无码无遮挡很H在线播放| 女同在线网站免费观看| 少妇性俱乐部纵欲狂欢电影| 日本55丰满熟妇厨房伦| 中文字幕人成乱码中文乱码| 国产三级视频不卡在线观看 | 色窝窝无码一区二区三区2022| 久久av少妇亚洲精品| 脱了老师内裤猛烈进入| 老头巨大挺进莹莹的体内免费视频| 91尤物在线看| 亚洲熟女一区二区三区250p| 亚洲精品午夜无码专区| 无码之国产精品网址蜜芽| 在线免费观看毛视频亚洲精品| 一本大道熟女人妻中文字幕在线| 成熟人妻av无码专区| 青青草99久久精品国产综合| 久久一区二区三区少妇人妻| 无码av一区二区大桥久未| 国产在线网址| 久久精品天堂一区二区| 国产激情视频在线观看的| 国产96在线 | 亚洲| 日韩高清av一区二区| 午夜视频在线瓜伦|