国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于Hadoop架構(gòu)和Django框架的圖像存儲系統(tǒng)設(shè)計與實(shí)現(xiàn)

2024-05-19 14:36:42楊龍胡錦華陳婷
電腦知識與技術(shù) 2024年7期
關(guān)鍵詞:數(shù)據(jù)存儲

楊龍 胡錦華 陳婷

摘要:Hadoop是一個可用于調(diào)度、處理、計算大數(shù)據(jù)的開源分布式架構(gòu)。它提供了一整套涵蓋數(shù)據(jù)預(yù)處理、數(shù)據(jù)存儲及數(shù)據(jù)可視化等多階段的數(shù)據(jù)解決方案。Hadoop架構(gòu)的分布式存儲優(yōu)勢和Django框架的Web開發(fā)能力相結(jié)合,可實(shí)現(xiàn)高效的圖像存儲和訪問。文章以圖像存儲系統(tǒng)的設(shè)計與實(shí)現(xiàn)為主線,針對如何依托優(yōu)質(zhì)的Django前端框架在代碼層對數(shù)據(jù)進(jìn)行高效管理以及如何使用Django Web框架構(gòu)建Hadoop計算模式下的數(shù)據(jù)可視化Web系統(tǒng),提出了一種解決方案可供參考。

關(guān)鍵詞:數(shù)據(jù)存儲;Hadoop架構(gòu);Django框架

中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2024)07-0057-03

開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)

0 引言

隨著計算機(jī)應(yīng)用領(lǐng)域的不斷深入發(fā)展,大容量數(shù)據(jù)存儲面臨著存儲成本高、性能低、可擴(kuò)展性差、訪問延遲等諸多問題,其中數(shù)據(jù)訪問和處理性能的挑戰(zhàn)主要來自于數(shù)據(jù)處理任務(wù)的復(fù)雜性[1]。尤其以大容量圖像和視頻為代表,數(shù)據(jù)的安全存儲與有效管理成為亟待解決的問題。本課題主要研究一種基于Hadoop架構(gòu)和Django框架的圖像存儲系統(tǒng)設(shè)計與實(shí)現(xiàn),以期發(fā)揮Hadoop架構(gòu)的分布式存儲優(yōu)勢和Django框架的Web開發(fā)能力,為用戶提供良好體驗效果。

1 理論技術(shù)背景分析

1.1 Hadoop數(shù)據(jù)核心處理技術(shù)

Hadoop是一個開源分布式數(shù)據(jù)計算框架,其核心技術(shù)HDFS(Hadoop Distributed File System) 和MapReduce是優(yōu)勢所在。HDFS采用Master/Slave的體系結(jié)構(gòu),集群中有一個NameNode的主控服務(wù)器管理文件的元數(shù)據(jù)[2]??梢詫D像數(shù)據(jù)存儲在NameNode中,使用Python語言寫入并且支持一次寫入多次讀寫。在HDFS的基礎(chǔ)上配合上層的Map Reduce 的計算框架可實(shí)現(xiàn)對目標(biāo)存儲數(shù)據(jù)進(jìn)行海量處理和完整保存。

1.2 Django架構(gòu)設(shè)計優(yōu)勢分析

Django是由Python編寫的一個開源Web應(yīng)用框架,它提供了大量的特性和工具且具有完善的在線文檔,使得開發(fā)人員只需較少的代碼即可完成網(wǎng)站開發(fā)的大部分內(nèi)容[3]。Django采用了MTV(Model-Template-View) 的軟件設(shè)計模式,Model本質(zhì)是定義了大量的數(shù)據(jù)庫可操作API封裝到ORM系統(tǒng)技術(shù)人員只需要調(diào)用就可以對大量數(shù)據(jù)進(jìn)行增、刪、改、查等操作,這樣也方便用戶高效管理圖像數(shù)據(jù)。Template 可將后端的動態(tài)數(shù)據(jù)填充至HTML進(jìn)行快速渲染,因此該框架也非常適合周期較短的項目。View 主要作用于數(shù)據(jù)間的邏輯運(yùn)算和操作。Django框架原理如圖1所示。

1.3 MVT 設(shè)計模式的設(shè)定

本系統(tǒng)采用Django中的MVT(Model-View-Template) 模式。MVT模式主要由三個模塊組成,模型層主要是對數(shù)據(jù)的讀取和數(shù)據(jù)庫事務(wù)的處理;視圖層主要是處理用戶發(fā)的請求和發(fā)出響應(yīng);模板層主要負(fù)責(zé)Web頁面的布局和數(shù)據(jù)渲染。MVT的設(shè)計模式更加適合Web應(yīng)用程序,分層劃分使得代碼更加清晰和可維護(hù),MVT模式的高靈活性和可重用性都非常適合存儲系統(tǒng)的設(shè)計開發(fā)。

1.4 數(shù)據(jù)管理系統(tǒng)的選擇

數(shù)據(jù)庫作為一種重要的倉庫,主要用于存儲數(shù)據(jù)[4]。本系統(tǒng)就采用開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)MySQL作為后臺數(shù)據(jù)庫。其一些關(guān)鍵特點(diǎn)和功能被廣泛應(yīng)用于Web開發(fā)領(lǐng)域。該DBMS體積較小、響應(yīng)速度快、可用性高,都非常適配本系統(tǒng)的需求定位,首先由Hadoop集群在處理計算完原始數(shù)據(jù)后會將一部分?jǐn)?shù)據(jù)存儲在Mysql中進(jìn)行持久化數(shù)據(jù)存儲,以便將數(shù)據(jù)提供給存儲系統(tǒng)調(diào)用。

2 系統(tǒng)設(shè)計

2.1 架構(gòu)設(shè)計

Hadoop是現(xiàn)在大部分企業(yè)都在使用的分布式計算框架,其本身是一個比較寬泛的概念是為了處理計算海量的數(shù)據(jù)而誕生的生態(tài)圈,它的核心是用多個機(jī)器組件計算集群,將問題先拆分再匯總提高計算速度也不浪費(fèi)計算資源。恰好圖像數(shù)據(jù)正是其中的經(jīng)典,Hadoop本質(zhì)上是處理海量的小文件,這也是HDFS存儲模型所不擅長的,在處理圖像數(shù)據(jù)時可能會因為HDFS存儲文件占用較小的情況可自定義函數(shù)對文件進(jìn)行合并和切割,便于后期對數(shù)據(jù)的處理和可視化。

Django Web 框架在數(shù)據(jù)庫操作和Web應(yīng)用開發(fā)方面有自己獨(dú)有的優(yōu)勢,契合優(yōu)秀的Hadoop的數(shù)據(jù)存儲模型。首先框架中有非常優(yōu)秀的ORM系統(tǒng),其本質(zhì)就是封裝了大量的數(shù)據(jù)庫操作Api,便于對圖像數(shù)據(jù)的維護(hù)和調(diào)度,這也是選擇Django框架的原因,其中的URL層、Model層、View層、Template層可更快配合Web應(yīng)用的開發(fā)。

2.2 功能模塊設(shè)計

圖像存儲系統(tǒng)是基于用戶靜態(tài)信息數(shù)據(jù)和數(shù)據(jù)計算技術(shù)平臺并結(jié)合存儲的相關(guān)理論和技術(shù)架構(gòu)搭建,主要是用于對用戶的大量圖像數(shù)據(jù)存儲使用,采用模塊功能進(jìn)行權(quán)限控制,對用戶進(jìn)行分析精準(zhǔn)化營銷一方面監(jiān)控業(yè)務(wù)數(shù)據(jù)、核心數(shù)據(jù),將用戶數(shù)據(jù)價值最大化。系統(tǒng)功能模塊設(shè)計如圖2所示。

本系統(tǒng)分為兩個模塊,分別是存儲模塊和服務(wù)模塊,用戶本身使用系統(tǒng)只開放存儲管理模塊,服務(wù)模塊需要用戶向聯(lián)系管理員申請進(jìn)行激活,一方面用戶可最大程度地對自己的數(shù)據(jù)進(jìn)行存儲和管理,另一方面用戶可將數(shù)據(jù)一鍵自動分類管理,用戶只需要上傳數(shù)據(jù),大大節(jié)省了時間,這樣可對用戶的數(shù)據(jù)進(jìn)行最大化的整理和美化。

2.3 存儲模塊設(shè)計

用戶上傳原始數(shù)據(jù),可選擇多種格式數(shù)據(jù)進(jìn)行批量上傳,系統(tǒng)可自動對數(shù)據(jù)類型進(jìn)行識別并添加至對應(yīng)分類中,也可以自定義進(jìn)行分類存儲。設(shè)置圖像上傳接口,支持用戶上傳圖像文件,并對上傳的圖像進(jìn)行預(yù)處理、格式轉(zhuǎn)換、壓縮等操作,以節(jié)省存儲空間和提高訪問效率。設(shè)置圖像數(shù)據(jù)管理權(quán)限確保只有授權(quán)用戶能夠訪問和使用特定的圖像數(shù)據(jù),以保障圖像數(shù)據(jù)的安全性和隱私性。根據(jù)存儲圖像的存儲數(shù)據(jù)信息,如上傳時間、地點(diǎn)、相關(guān)標(biāo)簽等信息進(jìn)行圖像檢索,用戶可對檢索出的數(shù)據(jù)進(jìn)行導(dǎo)出、刪除等操作。

2.4 服務(wù)模塊設(shè)計

服務(wù)模塊分為兩類別,一種是用戶對數(shù)據(jù)的處理包括對圖像的裁剪、美化、旋轉(zhuǎn)、格式轉(zhuǎn)化等操作,用戶對圖像的自定義管理服務(wù)可對圖像進(jìn)行分類、分享、查詢等操作。用戶可對每次上傳至系統(tǒng)的數(shù)據(jù)進(jìn)行管理分類,數(shù)據(jù)可自動生成縮略圖。原始數(shù)據(jù)上傳后,再刪除的數(shù)據(jù)系統(tǒng)會進(jìn)行自動備份,保存一周后數(shù)據(jù)庫事務(wù)進(jìn)行自動刪除,在此期間,用戶可通過回收站對數(shù)據(jù)進(jìn)行永久刪除或恢復(fù)至存儲系統(tǒng)中。另一種是用戶可將數(shù)據(jù)交予系統(tǒng)制作成個人主頁,個人主頁可直接分享。根據(jù)用戶個人需求可單獨(dú)為用戶拍攝個人主頁的影片并定制主題,為用戶打造屬于自己的獨(dú)一無二的主題風(fēng)格,當(dāng)然用戶也可直接在論壇分享自己的主頁,在論壇分享的主頁也可評論留言。

3 系統(tǒng)實(shí)現(xiàn)

3.1 運(yùn)行環(huán)境及工具選擇

根據(jù)系統(tǒng)的需求,最終決定將系統(tǒng)搭建在較為穩(wěn)定的Ubuntu系統(tǒng)上[5],將開發(fā)環(huán)境搭建在Windows系統(tǒng)上,運(yùn)行環(huán)境搭建在Ubuntu系統(tǒng)上包括Hadoop 分布式架構(gòu)、MySQL數(shù)據(jù)庫、Django 框架等,開發(fā)語言選擇與Django契合的Python,開發(fā)工具選擇企業(yè)開發(fā)人員都在使用的Pycharm 和Notepad++。Pycharm是一款集成開發(fā)工具是一款非常人性化的開發(fā)工具,擁有頁面風(fēng)格版式調(diào)整、代碼補(bǔ)全、支持各種豐富的插件、版本控制及單元測試等。Notepad++是一款開源的編輯器,支持多窗口化、多種語言的語法編輯高亮顯示和檢視,非常適合用作代碼走查的工具。因為本系統(tǒng)在性能上有一定要求,故選擇Notepad++增加代碼可讀性。

3.2 用戶及管理員登錄注冊功能實(shí)現(xiàn)

普通用戶在注冊頁面輸入用戶名、密碼、郵箱等信息進(jìn)行登錄注冊,管理員賬號通過系統(tǒng)管理后臺添加,普通用戶和管理員都可以在登錄頁面選擇輸入郵箱和密碼進(jìn)行登錄。

3.3 圖像分類管理功能實(shí)現(xiàn)

用戶在上傳原始數(shù)據(jù)時即可對圖像數(shù)據(jù)進(jìn)行分類,圖像分類種類都是由用戶自定義的,以此來增加數(shù)據(jù)存儲的多樣性,同一分類下可存儲大量的數(shù)據(jù)。圖像分類管理界面如圖3所示。

3.4 用戶管理界面實(shí)現(xiàn)

系統(tǒng)管理員登錄系統(tǒng)后,點(diǎn)擊系統(tǒng)左側(cè)工具欄中的用戶管理,即可進(jìn)入用戶管理界面,管理員可對用戶永久刪除的數(shù)據(jù)進(jìn)行恢復(fù),注意永久刪除的數(shù)據(jù)只可在系統(tǒng)中存儲一年,之后數(shù)據(jù)將在數(shù)據(jù)節(jié)點(diǎn)中永久刪除。管理也可對用戶進(jìn)行權(quán)限提升,方便后續(xù)為用戶提供服務(wù)模塊中的主頁定制服務(wù)。用戶管理界面如圖4所示。

3.5 回收站功能實(shí)現(xiàn)

回收站旨在為用戶提供誤刪除數(shù)據(jù)恢復(fù)功能,對誤刪除的數(shù)據(jù),用戶可自行在7天內(nèi)進(jìn)行恢復(fù),當(dāng)然用戶也可對需要永久刪除的數(shù)據(jù)進(jìn)行永久刪除。

4 系統(tǒng)測試

4.1 系統(tǒng)使用效果測試

本節(jié)主要是對系統(tǒng)的功能進(jìn)行了測試,查看系統(tǒng)功能是否正常和符合設(shè)計。測試主要采用黑盒測試與白盒測試。黑盒測試主要測試系統(tǒng)的各個功能模塊是否符合系統(tǒng)的設(shè)計需求以及能否返回正確的結(jié)果,黑盒測試不考慮系統(tǒng)的內(nèi)部構(gòu)造和邏輯處理等問題。白盒測試則與之相反,只考慮系統(tǒng)內(nèi)部結(jié)構(gòu)和邏輯實(shí)現(xiàn)等問題,而不考慮系統(tǒng)的功能實(shí)現(xiàn)。以登錄進(jìn)入首頁為例進(jìn)行黑盒測試與白盒測試。登錄進(jìn)入系統(tǒng)的首頁如圖5所示。

用戶可根據(jù)首頁圖表更加直觀地查看所存儲的圖像,更加直觀地查看圖像類別及種類數(shù)量。首次登錄后首頁統(tǒng)計圖加載慢的情況,這是因為初次登錄時數(shù)據(jù)量較大,需要一定的查詢時間。對于單個圖像的檢索幾乎不存在查詢緩慢的情況,同時對檢索出的圖像也可進(jìn)行一系列操作,比如圖像編輯、查看此圖像再分享后的評論、移除單個圖像等操作。在批量上傳方面支持圖片與視頻混合上傳,系統(tǒng)會自動識別圖像類別進(jìn)行分類。

4.2 系統(tǒng)性能測試

性能測試時評估系統(tǒng)是否達(dá)到用戶主觀感受的一個標(biāo)準(zhǔn),根據(jù)表1可以看到數(shù)據(jù)在批量上傳處理時性能的各項指標(biāo),這里列出數(shù)據(jù)的最大值和最小值可更加直觀感受到存儲系統(tǒng)對數(shù)據(jù)的處理能力和對系統(tǒng)的評估。可以看到接口響應(yīng)和事務(wù)響應(yīng)的最大值都達(dá)到了7 000ms,這里的接口耗時并不是單個接口而是多個接口的響應(yīng)時間,這里的接口是單個系列的接口,比如上傳的接口會回調(diào)數(shù)據(jù)加載、數(shù)據(jù)存儲等接口。

根據(jù)系統(tǒng)性能的最關(guān)鍵指標(biāo)探尋性能瓶頸[6]。系統(tǒng)都有一個相對極限,在訪問壓力下,TPS會上升到一個最大值,如果壓力繼續(xù)增大,TPS反而會下降。這個峰值就是系統(tǒng)的最大性能,并發(fā)數(shù)-性能測試(LoadRuner/ab)中特定術(shù)語,為模擬現(xiàn)實(shí)中的實(shí)際用戶,測試軟件使用虛擬用戶代替真實(shí)的用戶[7]。系統(tǒng)性能測試后各項指標(biāo)表如表1所示。

5 結(jié)束語

本文首先介紹了用戶圖像存儲系統(tǒng)實(shí)現(xiàn)的各個功能模塊,基于Hadoop和Django 的圖像系統(tǒng)隨著圖像數(shù)據(jù)的快速增長,圖像存儲系統(tǒng)需要具備更強(qiáng)大的存儲和處理能力。未來的圖像存儲系統(tǒng)將繼續(xù)優(yōu)化不斷迭代,通過橫向擴(kuò)展和并行處理,實(shí)現(xiàn)對PB級甚至EB級規(guī)模的圖像數(shù)據(jù)的高效管理和處理。未來圖像存儲系統(tǒng)將不再局限于圖像存儲而是多模數(shù)據(jù)進(jìn)行發(fā)展比如:音頻、三模數(shù)據(jù)等,在多模數(shù)據(jù)的存儲同時支持違規(guī)圖像的在線線程檢測,而不是一味地只存儲不檢測。

參考文獻(xiàn):

[1] 岳茹.云計算環(huán)境下的數(shù)據(jù)存儲與管理技術(shù)研究[J].科技資訊,2023,21(21):29-32.

[2] 陳新房,趙晗清,劉義卿.Hadoop核心技術(shù)與實(shí)戰(zhàn)課程教材建設(shè)的思考[J].電腦與電信,2022(12):40-43.

[3] 郭鶴楠.基于Django和Python技術(shù)的網(wǎng)站設(shè)計與實(shí)現(xiàn)[J].數(shù)字通信世界,2023(6):60-62.

[4] 趙停停.基于MySQL數(shù)據(jù)庫技術(shù)的Web動態(tài)網(wǎng)頁設(shè)計研究[J].信息與電腦(理論版),2023,35(17):174-176.

[5] 王春程,田羽,方譽(yù),等.Linux系統(tǒng)容器兼容性應(yīng)用研究[J].自動化應(yīng)用,2023,64(20):224-226,230.

[6] 付豪.面向大數(shù)據(jù)分析應(yīng)用平臺的性能分析系統(tǒng)[D].貴陽:貴州大學(xué),2022.

[7] 劉東旭.基于LoadRunner的性能測試技術(shù)研究——以某系統(tǒng)登錄模塊為例[J].滁州職業(yè)技術(shù)學(xué)院學(xué)報,2023,22(2):43-48.

【通聯(lián)編輯:朱寶貴】

猜你喜歡
數(shù)據(jù)存儲
簡單的數(shù)據(jù)修復(fù)
大數(shù)據(jù)時代檔案信息建設(shè)的認(rèn)識和實(shí)踐
淺談電力大數(shù)據(jù)平臺關(guān)鍵技術(shù)研究與應(yīng)用
開源數(shù)據(jù)庫數(shù)據(jù)存儲的實(shí)現(xiàn)路徑分析
基于Android開發(fā)的APP數(shù)據(jù)存儲研究
哈希算法在物聯(lián)網(wǎng)數(shù)據(jù)存儲中的應(yīng)用
空難事故跨媒體信息采集與檢索方法的研究
基于STM32的AD采集與SD卡數(shù)據(jù)存儲
淺談信息系統(tǒng)工程和POJO模型組件開發(fā)
基于MongoDB的調(diào)查決策系統(tǒng)數(shù)據(jù)存儲方案設(shè)計
锦州市| 萨迦县| 正蓝旗| 奈曼旗| 西贡区| 镇赉县| 邛崃市| 阿荣旗| 莱芜市| 贞丰县| 牡丹江市| 会宁县| 突泉县| 土默特右旗| 湘乡市| 灵宝市| 黄石市| 建湖县| 灯塔市| 兴安盟| 科技| 镇原县| 南涧| 博罗县| 如东县| 文化| 长寿区| 昌乐县| 望都县| 甘肃省| 常宁市| 莎车县| 于都县| 泽普县| 江西省| 巧家县| 离岛区| 嘉定区| 二连浩特市| 洪泽县| 三门县|