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

        ?

        基于Hadoop 的數(shù)據(jù)云盤的設(shè)計(jì)與實(shí)現(xiàn)

        2019-06-27 00:38:58解騰剛馬毓杰
        現(xiàn)代計(jì)算機(jī) 2019年13期
        關(guān)鍵詞:云盤用戶名界面

        解騰剛,馬毓杰

        (西京學(xué)院信息工程學(xué)院,西安710123)

        0 引言

        隨著互聯(lián)網(wǎng)產(chǎn)業(yè)的飛速發(fā)展以及大數(shù)據(jù)技術(shù)的廣泛應(yīng)用,目前已有許多網(wǎng)盤類似百度網(wǎng)盤、華為網(wǎng)盤等均采用大數(shù)據(jù)技術(shù)實(shí)現(xiàn)了用戶日常的數(shù)據(jù)上傳、存儲(chǔ)、下載等功能。但是在網(wǎng)盤內(nèi)提供在線數(shù)據(jù)分析功能的網(wǎng)盤少之又少,使得用戶想要從大量的數(shù)據(jù)中獲取到有用的信息以及從數(shù)據(jù)中發(fā)現(xiàn)規(guī)律變得較為困難,數(shù)據(jù)的潛在價(jià)值難以被挖掘出來。

        目前國內(nèi)外比較常見的分布式文件系統(tǒng)有Google的GFS、Apache 的HDFS、SUN 的Lustre、MongoDB 的GridFS、IBM 的GPFS、淘 寶 的TFS 和 國 人 開 發(fā) 的FastDFS 等,各個(gè)分布式文件系統(tǒng)適用于不同的領(lǐng)域,其中HDFS 是Google GFS 的開源實(shí)現(xiàn),通過網(wǎng)絡(luò)實(shí)現(xiàn)文件在多臺(tái)機(jī)器上的分布式存儲(chǔ),HDFS 提供了在廉價(jià)服務(wù)器集群中進(jìn)行大規(guī)模分布式文件存儲(chǔ)的能力,具有很好的容錯(cuò)性和擴(kuò)展性,可以以較低的成本利用現(xiàn)有機(jī)器實(shí)現(xiàn)大流量和大數(shù)據(jù)量的讀寫,較好地滿足了大規(guī)模數(shù)據(jù)存儲(chǔ)的需求[1]。

        本文提出了基于Hadoop 的數(shù)據(jù)云盤設(shè)計(jì)與實(shí)現(xiàn)方法,使用者可以將其數(shù)據(jù)上傳存儲(chǔ)至該云盤中,并且可以隨時(shí)從云盤中下載數(shù)據(jù),保證了數(shù)據(jù)存儲(chǔ)的安全性,又極大提高了數(shù)據(jù)的應(yīng)用效率[2]。同時(shí)云盤中的數(shù)據(jù)分析功能可以幫助用戶分析數(shù)據(jù)的規(guī)律,讓數(shù)據(jù)的潛在價(jià)值被挖掘出來,為使用者帶來極大的價(jià)值和便利。

        1 系統(tǒng)設(shè)計(jì)

        1.1 功能模塊設(shè)計(jì)

        本云盤系統(tǒng)按功能可分為兩大模塊——用戶模塊和文件管理模塊。其中,用戶模塊包含兩個(gè)功能實(shí)現(xiàn):用戶注冊和用戶登錄;文件管理模塊包含五個(gè)功能實(shí)現(xiàn):查看文件、上傳文件、下載文件、刪除文件和數(shù)據(jù)分析。本系統(tǒng)的功能模塊圖如圖1 所示。

        圖1 系統(tǒng)功能模塊圖

        1.2 運(yùn)行流程設(shè)計(jì)

        本云盤系統(tǒng)由最初的登錄界面開始,用戶需要判斷是否擁有賬戶,如果沒有即跳轉(zhuǎn)到注冊界面進(jìn)行注冊,如果有則進(jìn)行登錄操作。在注冊界面中用戶需輸入用戶名和密碼,在檢查用戶名是否重復(fù)、輸入兩次密碼是否相同后判斷是否注冊成功,成功即進(jìn)入登錄界面,否則重復(fù)注冊操作。在登錄界面中,用戶需輸入用戶名和密碼,判斷是否登錄成功后進(jìn)行下一步操作,成功則進(jìn)入主界面,否則重新登錄。在主界面中,用戶可進(jìn)行文件管理操作(查看文件、上傳文件、下載文件、刪除文件、數(shù)據(jù)分析),在操作結(jié)束后退出云盤即為結(jié)束使用。本系統(tǒng)的系統(tǒng)流程圖如圖2 所示。

        圖2 系統(tǒng)運(yùn)行流程圖

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

        本系統(tǒng)采用全分布式Hadoop 集群作為運(yùn)行平臺(tái),使用HDFS 分布式文件系統(tǒng)作為底層存儲(chǔ),系統(tǒng)分為前臺(tái)和后臺(tái)兩部分,前臺(tái)采用JSP 編寫界面,后臺(tái)使用MySQL、HDFS Java API、MapReduce、AJAX 等實(shí)現(xiàn)云盤用戶注冊功能、用戶登錄功能,用戶在云盤主界面中對文件實(shí)現(xiàn)查看、上傳、下載、刪除以及數(shù)據(jù)分析功能。

        2.1 注冊功能

        在本云盤注冊界面中主要完成用戶注冊操作。用戶在進(jìn)入注冊界面中可以完成如下功能:①要求輸入需要注冊的用戶名。②要求輸入兩次密碼,且輸入的兩次密碼的長度和內(nèi)容相同,否則需要重新注冊。③注冊成功后跳轉(zhuǎn)至登錄界面。④用戶注冊成功會(huì)同時(shí)在HDFS 文件系統(tǒng)下創(chuàng)建名為該用戶的目錄。

        2.2 登錄功能

        在用戶擁有賬號(hào)之后,進(jìn)入登錄界面進(jìn)行登錄云盤操作。登錄界面可以實(shí)現(xiàn)如下功能:①可以判斷用戶是否擁有賬號(hào),如果沒有可以跳轉(zhuǎn)至注冊界面。②輸入用戶名和密碼。③判斷用戶名和密碼是否正確,如果不正確則重新登錄。④登錄成功后跳轉(zhuǎn)至云盤主界面。

        2.3 文件管理功能

        (1)查看文件

        用戶登錄成功后,系統(tǒng)的主界面會(huì)顯示該用戶的文件列表,實(shí)現(xiàn)過程是,系統(tǒng)提取到當(dāng)前登錄用戶的用戶名,以此用戶名創(chuàng)建Path 對象,傳入此Path 對象并調(diào)用FileSystem 的getFileStatus()方法,得到一個(gè)FileStatus 對象,F(xiàn)ileStatus 對象封裝了文件系統(tǒng)中文件和目錄的元數(shù)據(jù),包括文件的長度、塊大小、備份數(shù)、修改時(shí)間、所有者以及權(quán)限等信息[3]。最后,格式化File Status 對象傳到前端頁面展示。關(guān)鍵代碼如下:public FileStatus[]ls(String folder)throws IOException{

        Path path=new Path(folder);//根據(jù)當(dāng)前登錄用戶名創(chuàng)建Path 對象

        FileSystem fs = FileSystem.get(URI.create(hdfsPath),conf);//獲取FileSystem 實(shí)例

        FileStatus[]list=fs.listStatus(path);

        if(list!=null)

        for(FileStatus f:list){

        System.out.printf("%s,folder:%s,大小:%dK ",f.getPath().getName(),(f.isDir()?"目錄":"文件"),f.getLen()/1024);

        }

        fs.close();

        return list;

        }

        (2)上傳文件

        用戶點(diǎn)擊“選擇文件”按鈕后,在彈窗中選擇需要上傳的文件,點(diǎn)擊“上傳文件”按鈕即完成上傳操作。實(shí)現(xiàn)過程是,調(diào)用FileSystem 的copyFromLocalFile 方法,該方法需要傳入兩個(gè)參數(shù),分別是本地文件的路徑和所需上傳到HDFS 文件系統(tǒng)的目標(biāo)路徑。關(guān)鍵代碼如下:

        public void copyFile(String local,String remote)throws IOException{

        FileSystem fs = FileSystem.get(URI.create(hdfsPath),conf);//獲取FileSystem 實(shí)例fs.copyFromLocalFile(new Path(local),new Path(remote));//調(diào)用copyFromLocalFile 方法實(shí)現(xiàn)上傳

        System.out.println("copy from:"+local+"to"+remote);

        fs.close();

        }

        (3)下載文件

        用戶在主界面選擇需要下載的文件,單擊文件后的“下載”字樣,向服務(wù)器提出下載請求,服務(wù)器找到該文件即將文件下載到本地默認(rèn)目錄中。實(shí)現(xiàn)過程是,調(diào)用FileSystem 的copyToLocalFile 方法,該方法需要傳入兩個(gè)參數(shù),分別是HDFS 文件系統(tǒng)中的該文件的路徑和所需下載到本地的目標(biāo)路徑。關(guān)鍵代碼如下:

        public void download(String remote,String local)throws IOException{

        Path path=new Path(remote);

        FileSystem fs = FileSystem.get(URI.create(hdfsPath),conf);//獲取FileSystem 實(shí)例

        fs.copyToLocalFile(path,new Path(local));//調(diào) 用copy-FromLocalFile 方法實(shí)現(xiàn)文件下載

        System.out.println("download:from"+remote+"to"+local);

        fs.close();

        }

        (4)刪除文件

        用戶在主界面選擇需要?jiǎng)h除的文件,單擊文件后的“刪除”字樣,系統(tǒng)會(huì)將此文件從HDFS 文件系統(tǒng)中該用戶的目錄下刪除。實(shí)現(xiàn)過程是,調(diào)用FileSystem的deleteOnExit 方法,該方法需要傳入的參數(shù)為所需刪除文件的路徑。關(guān)鍵代碼如下:

        public void rmr(String folder)throws IOException{

        Path path=new Path(folder);

        FileSystem fs = FileSystem.get(URI.create(hdfsPath),conf);//獲 取FileSystem 實(shí) 例fs.deleteOnExit(path);//調(diào) 用deleteOnExit 方法實(shí)現(xiàn)文件刪除

        fs.close();

        }

        (5)數(shù)據(jù)分析

        用戶在主界面選擇待分析文件,單擊“分析”字樣,系統(tǒng)會(huì)提交該文件到MapReduce 程序,分析完成后會(huì)彈窗提示用戶查看分析結(jié)果,用戶點(diǎn)擊確認(rèn)后,將分析結(jié)果用Echarts 進(jìn)行可視化呈現(xiàn)。數(shù)據(jù)分析功能是通過MapReduce 技術(shù)實(shí)現(xiàn)的,根據(jù)系統(tǒng)需求編寫Map 階段和Reduce 階段的相關(guān)代碼即可,使用JSON 數(shù)據(jù)格式和AJAX 等技術(shù)實(shí)現(xiàn)分析結(jié)果的可視化。以流量統(tǒng)計(jì)為例,根據(jù)用戶流量數(shù)據(jù)文件,統(tǒng)計(jì)出每個(gè)用戶的上行總流量、下行總流量以及總流量。在流量統(tǒng)計(jì)案例中,Map 階段由map task 讀文件,通過TextInputFormat一次讀一行,返回(key,value),其中key 代表用戶手機(jī)號(hào)碼,value 代表對應(yīng)手機(jī)號(hào)碼的流量信息;Shuffle 階段是從Map 結(jié)束到Reduce 開始之間的過程,Shuffle 階段完成了數(shù)據(jù)的分區(qū)、分組、排序的工作[4];Reduce 階段將與一個(gè)key 關(guān)聯(lián)的一組中間數(shù)值進(jìn)行歸約,即對同一手機(jī)號(hào)的流量數(shù)據(jù)進(jìn)行歸約。關(guān)鍵代碼如下:

        protected void map(LongWritable key,Text line,Context context)throws IOException,InterruptedException{

        String lineStr=line.toString();//返回字符串

        String[]values=lineStr.split(" ");//以空格進(jìn)行切割并存入數(shù)組

        String upStr=values[values.length-3];

        String downStr=values[values.length-2];

        int up=Integer.parseInt(upStr);

        int down=Integer.parseInt(downStr);

        FlowBean flow=new FlowBean(up,down,0);//創(chuàng)建Flow-Bean 對象

        context.write(new Text(values[1]),flow);}

        protected void reduce(Text key,Iterable<FlowBean>flows,Context context)

        throws IOException,InterruptedException{

        int totalUp=0;//上行流量

        int totalDown=0;//下行流量

        for(FlowBean flow:flows){

        totalUp+=flow.getUpFlow();

        totalDown+=flow.getDownFlow();

        }

        int totalUpAndDown=totalUp+totalDown;//總流量

        FlowBean flow=new FlowBean(totalUp,totalDown,totalUpAndDown);

        context.write(key,flow);

        }

        3 系統(tǒng)運(yùn)行效果

        該系統(tǒng)注冊界面的運(yùn)行效果如圖3 所示。

        圖3 系統(tǒng)注冊界面運(yùn)行效果圖

        該系統(tǒng)登錄界面的運(yùn)行效果如圖4 所示。

        圖4 系統(tǒng)登錄界面運(yùn)行效果圖

        該系統(tǒng)主界面的運(yùn)行效果如圖5 所示。顯示當(dāng)前登錄用戶網(wǎng)盤內(nèi)的文件信息,包括文件名、文件類型、文件大小和相應(yīng)的操作,單擊文件名后的“刪除”、“下載”字樣,即可將對應(yīng)文件進(jìn)行刪除和下載。

        圖5 系統(tǒng)主界面運(yùn)行效果圖

        點(diǎn)擊“選擇文件”按鈕,系統(tǒng)會(huì)彈出選擇文件的窗口,用戶選擇需要上傳的文件,點(diǎn)擊“上傳文件”按鈕,即可將文件上傳至云盤。上傳文件效果如圖6 所示。

        圖6 上傳文件效果圖

        單擊文件名后的“分析”字樣,系統(tǒng)會(huì)提交該文件到MapReduce 程序,分析完成后會(huì)彈窗提示用戶查看分析結(jié)果,用戶點(diǎn)擊確認(rèn)后,分析結(jié)果會(huì)進(jìn)行可視化呈現(xiàn),以流量統(tǒng)計(jì)為例,可視化運(yùn)行效果如圖7 所示。

        圖7 分析結(jié)果可視化運(yùn)行效果圖

        4 結(jié)語

        本文提出了基于Hadoop 的數(shù)據(jù)云盤的設(shè)計(jì)與實(shí)現(xiàn)詳細(xì)過程,為使用者提供了數(shù)據(jù)存儲(chǔ)以及數(shù)據(jù)分析的功能,在一定程度上為使用者帶來了極大的價(jià)值和便利,同時(shí)又將數(shù)據(jù)的潛在價(jià)值挖掘出來,具有一定的實(shí)際意義。隨著大數(shù)據(jù)技術(shù)的不斷發(fā)展,云存儲(chǔ)必然會(huì)被廣泛應(yīng)用,云盤系統(tǒng)相比于傳統(tǒng)的存儲(chǔ)方式優(yōu)勢也會(huì)更加明顯,也將會(huì)是未來主流的存儲(chǔ)方式。

        猜你喜歡
        云盤用戶名界面
        云盤山
        云盤不再單打獨(dú)斗,阿里云盤生態(tài)體驗(yàn)
        《護(hù)士進(jìn)修雜志》投稿程序
        國企黨委前置研究的“四個(gè)界面”
        基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
        機(jī)智的快遞員
        人機(jī)交互界面發(fā)展趨勢研究
        云端難題巧解決
        阿里發(fā)布SSD云盤 性能大幅提升
        手機(jī)界面中圖形符號(hào)的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        国产小视频在线看不卡| 国产成人一区二区三区影院免费| 色噜噜精品一区二区三区| 日本一二三四高清在线| 又色又爽又高潮免费视频国产| 特级毛片a级毛片免费播放| 人妻有码中文字幕在线不卡| 国产黄色一级大片一区二区| 特级做a爰片毛片免费看| 亚洲精品字幕在线观看| 欧美性爱一区二区三区无a| 国产在线一区二区三区不卡| 婷婷五月深深久久精品| 中文字幕一区二区三区精彩视频 | 天天综合网在线观看视频| 国内精品久久久影院| 男女性搞视频网站免费| 最新国产熟女资源自拍| 熟女无套内射线观56| 国产免费专区| 国产成人久久精品二区三区| 精品国产yw在线观看| 熟妇的荡欲色综合亚洲| 精品国产一区二区三区香蕉| 日本免费影片一区二区| 国产在热线精品视频| 97一区二区国产好的精华液| 国产网友自拍亚洲av| 日本一区三区三区在线观看| 性色av闺蜜一区二区三区| 国产午夜精品一区二区三区软件| 亚洲色一区二区三区四区| 巨茎中出肉欲人妻在线视频| 久久国产精彩视频| 精品自拍偷拍一区二区三区| 久久人人爽人人爽人人片av高请| 天干天干啦夜天干天2017| 欧美高h视频| 日本超级老熟女影音播放| 国产av麻豆mag剧集| 在线观看亚洲AV日韩A∨|