• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于Apache Ftpserver的可自定義文件系統(tǒng)的文件服務(wù)器

    2020-12-24 08:01:42王峰
    軟件 2020年7期
    關(guān)鍵詞:中間件日志客戶端

    摘? 要: 當(dāng)下的計(jì)算機(jī)文件系統(tǒng)發(fā)展進(jìn)程中,因?yàn)榇髷?shù)據(jù)、數(shù)據(jù)安全、業(yè)務(wù)場(chǎng)景定制化等需要,會(huì)有不同的文件系統(tǒng)。比如專屬于大數(shù)據(jù)存儲(chǔ)的開源分布式文件系統(tǒng)hadoop,紅旗文件系統(tǒng),嵌入式定制的linux文件系統(tǒng)。現(xiàn)基于apache的的開源項(xiàng)目ftpserver,此論文提供了一個(gè)可通用的文件系統(tǒng)服務(wù)的中間件方案,此方案可定制化到任何可被java實(shí)現(xiàn)文件接口的文件系統(tǒng)。文件系統(tǒng)服務(wù)可將不同文件系統(tǒng)的文件進(jìn)行對(duì)等傳輸和共享??晒?jié)約機(jī)器資源消耗,節(jié)約一部分開發(fā)量,簡(jiǎn)化軟件架構(gòu)設(shè)計(jì)。

    關(guān)鍵詞: 自定義文件系統(tǒng);文件傳輸服務(wù)器;hadoop文件系統(tǒng);大數(shù)據(jù);中間件

    中圖分類號(hào): TP393.093 ???文獻(xiàn)標(biāo)識(shí)碼: A??? DOI:10.3969/j.issn.1003-6970.2020.07.039

    本文著錄格式:王峰. 基于Apache Ftpserver的可自定義文件系統(tǒng)的文件服務(wù)器[J]. 軟件,2020,41(07):192-196

    File Server For Customizable File System Based on Apache Ftpserver

    WANG Feng

    (School of Statistics, University of International Business and Economics, Beijing 100000, China)

    【Abstract】: In the current development of computer file systems, there will be different file systems because of the need for big data, data security, and customization of business scenarios. For example, the open source distributed file system hadoop which is dedicated to big data storage, redflag file system, and embedded custom linux file system. Now based on apaches open source project ftpserver, this paper provides a common middleware solution for file system services. This solution can be customized to any file system that can be implemented by java. File system services can peer-transfer and share files from different file systems. It can save machine resource consumption, save part of development, and simplify software architecture design.

    【Key words】: Customizable file system; File transform server; Hadoop file system; Big data; Middleware

    0? 引言

    在本人項(xiàng)目開發(fā)過程中,涉及到大數(shù)據(jù)分布式hadoop文件系統(tǒng)。由于工作的合作分工以及網(wǎng)絡(luò)安全的考量,需要對(duì)外提供一個(gè)文件服務(wù)來接收采集數(shù)據(jù),并上傳到云平臺(tái),中間會(huì)把數(shù)據(jù)落到本地磁盤,在本地磁盤上會(huì)做一次本地文件管理以及腳本定制開發(fā)。以上過程需要浪費(fèi)一定的開發(fā)人力,進(jìn)行組織和維護(hù)文件并上傳到云平臺(tái),如果對(duì)數(shù)據(jù)有一定實(shí)時(shí)性要求,軟件整體架構(gòu)不變的情況下,需要做定時(shí)掃描文件更新情況,并做定制化的文件上傳程序。所以,本地文件系統(tǒng)傳輸?shù)酱髷?shù)據(jù)文件系統(tǒng),存在著各種不方便?;谝陨蠁栴},此過程可

    通過一個(gè)中間件來節(jié)約硬件資源,簡(jiǎn)化程序架構(gòu)設(shè)計(jì),減少重復(fù)的定制化開發(fā)。對(duì)于傳統(tǒng)的文件系統(tǒng)平滑過渡到分布式文件系統(tǒng),ftp文件傳輸服務(wù)是一項(xiàng)重要的中間件技術(shù)。所以此項(xiàng)目應(yīng)用而生。項(xiàng)目開發(fā)到現(xiàn)在,已經(jīng)測(cè)試并可用于hadoop文件系統(tǒng)和本地文件系統(tǒng),并將此項(xiàng)目開源到github平臺(tái)。項(xiàng)目名稱為abitmiss-ftpserver,希望此項(xiàng)目可以給不同文件系統(tǒng)的架構(gòu)設(shè)計(jì)提供新的思路,為生產(chǎn)實(shí)踐帶來方便,也希望專業(yè)人士能提供建議、文檔和代碼幫助。

    1 ?項(xiàng)目架構(gòu)

    項(xiàng)目結(jié)構(gòu)簡(jiǎn)單,可進(jìn)行極少的配置更改實(shí)現(xiàn)文件傳輸服務(wù)器的功能,文件傳輸服務(wù)器的其他功能

    需要極少的配置就可以實(shí)現(xiàn)。基于apache ftpserver工程,項(xiàng)目成熟度高,符合標(biāo)準(zhǔn)的文件傳輸協(xié)議規(guī)范。對(duì)用戶來講,使用透明,對(duì)具體的文件系統(tǒng)類型無感知。使用相同的ftp連接和執(zhí)行口令,可實(shí)現(xiàn)文件的用戶驗(yàn)證、上傳、下載、刪除、重命名、拷貝、列表、切換路徑、當(dāng)前路徑顯示等功能。

    1.1 ?中間件說明

    如圖1,在當(dāng)前版本中,只添加實(shí)現(xiàn)了hadoop文件系統(tǒng)的ftpserver。在原始的apache ftpserver中,只支持本機(jī)文件系統(tǒng),經(jīng)添加hadoop文件系統(tǒng)的實(shí)現(xiàn)代碼,可支持hadoop文件系統(tǒng)。相應(yīng)的,其他文件系統(tǒng),在支持java實(shí)現(xiàn)文件系統(tǒng)的接口的情況下,可通過添加相應(yīng)的定制化代碼加以支持。

    對(duì)于hadoop文件系統(tǒng),abitmiss-ftpserver服務(wù)可部署到任何安裝有hadoop的gateway組件或者安裝有datanode、namenode的節(jié)點(diǎn)上,可安裝到不同的機(jī)器上做網(wǎng)絡(luò)負(fù)載均衡,可提供active mode和passive mode兩種文件傳輸協(xié)議服務(wù)模式。對(duì)于客戶端來講,ftp服務(wù)的使用是透明的,對(duì)ftp服務(wù)器所使用的具體文件系統(tǒng)類型無感知,只需要知道機(jī)器的ip、端口信息用戶驗(yàn)證信息即可。ftp客戶端命令使用和本機(jī)文件系統(tǒng)的客戶端命令使用方式相同。

    在工程項(xiàng)目規(guī)劃中,可因?yàn)榇酥虚g件,簡(jiǎn)化傳統(tǒng)數(shù)據(jù)平臺(tái)遷移到大數(shù)據(jù)平臺(tái)思考方式,簡(jiǎn)化工程分工,節(jié)約開發(fā)工作量,平滑過渡數(shù)據(jù)遷移模塊,節(jié)約人力成本。在軟件架構(gòu)設(shè)計(jì)中,提供了一種簡(jiǎn)便的設(shè)計(jì)方式。在軟件實(shí)現(xiàn)中。相對(duì)來講,相對(duì)實(shí)時(shí)性的傳輸數(shù)據(jù)到大數(shù)據(jù)平臺(tái)。

    1.2? 程序組織結(jié)構(gòu)

    Apache Ftpserver模塊修改代碼塊中文件系統(tǒng)的Factory的對(duì)象后,添加并更改文件系統(tǒng)為定制的文件系統(tǒng),并添加定制的文件系統(tǒng)處理類、工廠類等,得到Abitmiss FtpServer(此項(xiàng)目名稱)。其中apache ftpserver,包含基礎(chǔ)的ftpserver的服務(wù)器配置、監(jiān)聽端口配置、用戶配置、基礎(chǔ)的ftp命令實(shí)現(xiàn)、ssl/tls安全支持、日志支持等。Abitmiss ftpserver只是在apache ftpserver基礎(chǔ)上修改文件系統(tǒng)為自定義文件系統(tǒng):hadoop文件系統(tǒng)。其中此服務(wù)基礎(chǔ)功能基于apache ftpserver項(xiàng)目,所以,此工程具有apache ftpserver所具有的功能。在此十分感謝此開源項(xiàng)目,為此中間件項(xiàng)目的實(shí)現(xiàn)提供了便利的條件和基礎(chǔ)。

    1.3 ?工程路徑結(jié)構(gòu)

    項(xiàng)目重新組織了工程結(jié)構(gòu),使工程路徑組織結(jié)構(gòu)更標(biāo)準(zhǔn)、明晰、規(guī)整。此工程包名稱格式為abitmiss-ftpserver-${version}-RELEASE.tar.gz。以下為路徑結(jié)構(gòu)說明:

    bin路徑,是程序服務(wù)程序的入口,可以帶入?yún)?shù)達(dá)到abitmiss-ftpserver啟動(dòng)(start)、停止(stop)、狀態(tài)(status)、重啟(restart)的程序操作。此路徑可放入到系統(tǒng)環(huán)境變量中,供用戶在操作系統(tǒng)任意路徑下使用命令。

    sbin路徑包含程序啟動(dòng)、停止、狀態(tài)的具體腳本以及程序環(huán)境變量配置信息。在部署運(yùn)行之前,可根據(jù)平臺(tái)環(huán)境的具體情況,對(duì)程序環(huán)境變量配置信息做一定的更改,以滿足程序運(yùn)行條件。

    conf路徑為程序的配置信息,包含程序配置、用戶配置、日志配置信息、ftp服務(wù)配置信息。此路徑下的配置文件,需要根據(jù)不同的部署情況和平臺(tái)環(huán)境情況,做一定的配置更改。

    logs路徑包含程序執(zhí)行的日志信息,存儲(chǔ)日志信息。由conf路徑下的log4j.log文件決定??筛膌og4j.log配置文件更改日志打印方式和存儲(chǔ)方式。

    dependency路徑為程序所依賴的jar包。此依賴項(xiàng)不包含hadoop依賴性jar包,hadoop依賴性jar包需要在conf路徑下配置。

    lib路徑為此程序的定制jar包。此路徑只能包含一個(gè).jar結(jié)尾的文件。啟動(dòng)時(shí)會(huì)通配.jar結(jié)尾文件并僅且只有一個(gè)。

    程序路徑結(jié)構(gòu)如圖3。

    2 ?測(cè)試情況

    此中間件程序現(xiàn)有階段僅支持hadoop文件系統(tǒng)和原生的本機(jī)文件系統(tǒng)的文件傳輸服務(wù)。故分別做了一定的測(cè)試。測(cè)試過程如下:

    2.1? 2.1 ?測(cè)試環(huán)境基礎(chǔ)條件

    采用esxi系統(tǒng)虛擬出8臺(tái)虛擬主機(jī)(如圖4)來安裝大數(shù)據(jù)平臺(tái),每臺(tái)機(jī)器配置如下(詳見圖5)。

    2 core cpu

    12GB RAM memory

    40GB + 200GB ROM disk memory

    1000Mbps bandwidth network

    系統(tǒng)及大數(shù)據(jù)平臺(tái)部署情況:

    CentOS7系統(tǒng)

    Java Development Kit 8u191

    Cloudera Manager CDH6.1.1

    Hadoop 3.0.0

    大數(shù)據(jù)平臺(tái)組件部署信息如圖6。

    本次測(cè)試只用到了大數(shù)據(jù)組件的hadoop file system角色組件,其他組件不用。其中hdfs角色配置信息如圖7。

    2.2? Hadoop文件系統(tǒng)測(cè)試情況

    部署程序到任何一臺(tái)包含有hdfs客戶端配置的機(jī)器上并解壓。

    到工程路徑的conf路徑下,修改相應(yīng)配置文件的配置信息(詳情配置見工程說明);另有工程依賴的環(huán)境配置信息到sbin路徑下配置。開通防火墻ftp端口對(duì)外訪問權(quán)限。配置根路徑為hadoop文件系統(tǒng)的/user/test/abc,路徑目錄結(jié)構(gòu)信息如圖8。

    到工程路徑下啟動(dòng)運(yùn)行abitmiss ftpserver程序,然后在任意一臺(tái)可連接此ftpserver所在機(jī)器的主機(jī)(作為客戶端主機(jī))上,執(zhí)行ftp命令連接abitmiss ftpserver服務(wù)并做相應(yīng)的用戶驗(yàn)證,然后測(cè)試ls、get、put、pwd、cd等ftp命令。到工程路徑的logs路徑下查看日志信息,日志信息正常顯示并無報(bào)錯(cuò)和告警信息。目錄結(jié)構(gòu)信息以及測(cè)試命令過程如圖9。

    經(jīng)驗(yàn)證,上傳和下載數(shù)據(jù)文件和原始文件md5值相同,為同一文件??烧?zhí)行cd、pwd、put、get等命令并得到相應(yīng)的預(yù)期結(jié)果。ftp路徑結(jié)構(gòu)信息和hadoop路徑結(jié)構(gòu)信息可一一對(duì)應(yīng)。由此,可驗(yàn)證此工程有效,可實(shí)現(xiàn)hadoop文件系統(tǒng)的ftp服務(wù)功能。

    2.3 ?本機(jī)文件系統(tǒng)測(cè)試情況

    關(guān)閉上述工程,修改配置項(xiàng),改為本地文件系統(tǒng)的ftpserver配置(詳情配置見工程說明)。修改ftpserver根路徑為/home/test;然后到此工程路徑下啟動(dòng)abitmiss ftpserver服務(wù)程序;最后到客戶端主機(jī)執(zhí)行ftp命令連接ftpserver主機(jī),驗(yàn)證用戶信息,并執(zhí)行l(wèi)s、pwd等命令。且到工程路徑下的logs路徑查看日志信息,日志打印正常,并無看到告警和報(bào)錯(cuò)日志輸出。測(cè)試命令過程如圖10。

    經(jīng)驗(yàn)證,此功能和原有的apache ftpserver功能相同??烧?shí)現(xiàn)本地文件系統(tǒng)的ftp服務(wù)功能。

    3 ?結(jié)論

    程序測(cè)試并運(yùn)行正常,并可自定義文件系統(tǒng)為hadoop文件系統(tǒng)。對(duì)于客戶端來講,使用相同的ftp命令,實(shí)現(xiàn)用戶驗(yàn)證、上傳、下載、列表、拷貝、重命名、刪除、當(dāng)前路徑顯示、路徑切換等功能。

    以此類推,此工程項(xiàng)目可添加其他類型的文件系統(tǒng)。只要定制化的文件系統(tǒng),可以用java語言實(shí)現(xiàn)或調(diào)用其文件系統(tǒng)操作接口,理論上都可以集成到此項(xiàng)目中。對(duì)于大數(shù)據(jù)平臺(tái)系統(tǒng),可安裝到不同的機(jī)器上,做網(wǎng)路負(fù)載均衡。

    工程已經(jīng)做了開源,可到github上clone代碼到編譯器中,進(jìn)行修改和驗(yàn)證,也歡迎提出寶貴意見,協(xié)助增加、修改此工程的其他功能。

    程序使用基于apache ftpserver基礎(chǔ)做服務(wù),符合標(biāo)準(zhǔn)的文件傳輸協(xié)議規(guī)范,工程邏輯實(shí)現(xiàn)成熟度較高。對(duì)客戶端來講是透明的,客戶端無感知,可復(fù)用客戶端原始的代碼和邏輯,客戶端工程維護(hù)成本低,可平滑遷移到新的文件系統(tǒng)平臺(tái)。

    工程缺點(diǎn)說明:大數(shù)據(jù)平臺(tái)在kerberos驗(yàn)證下的情況,未作長(zhǎng)期穩(wěn)定性測(cè)試。已知的暫未處理的缺點(diǎn):在kerberos驗(yàn)證過期的情況下,需要重新實(shí)例化hadoop的filesystem實(shí)例。目前沒有實(shí)現(xiàn)自動(dòng)更新hadoop的filesystem實(shí)例的功能。當(dāng)前的處理方式,如果有kerberos驗(yàn)證的情況下,在kerberos驗(yàn)證過期之前重啟此服務(wù)。

    參考文獻(xiàn)

    1. 胡棟梁, 秦曉軍, 王曉鋒. 基于消息中間件的分布式網(wǎng)絡(luò)掃描研究[J/OL]. 計(jì)算機(jī)工程: 1-15[2020-03-01]. https: //doi. org/10. 19678/j. issn. 1000-3428. 0056018.

    2. 劉文杰. 基于HDFS的大數(shù)據(jù)文件傳輸實(shí)驗(yàn)設(shè)計(jì)[J]. 實(shí)驗(yàn)室研究與探索, 2019, 38(12): 132-134+215.

    3. 陳芳州. 基于HDFS的云環(huán)境數(shù)據(jù)存儲(chǔ)優(yōu)化技術(shù)研究[D]. 南京郵電大學(xué), 2019.

    4. 戴威. 一種跨HDFS集群的文件資源分布式高效存儲(chǔ)方法[J]. 電子設(shè)計(jì)工程, 2019, 27(21): 14-17+22.

    5. 趙華茗. 搭建基于云計(jì)算的開源海量數(shù)據(jù)挖掘平臺(tái)[J]. 現(xiàn)代圖書情報(bào)技術(shù), 2010(10): 76-81.

    6. 鄭華兵. FTP服務(wù)器在公司企業(yè)網(wǎng)的應(yīng)用研究[J]. 通訊世界, 2019, 26(10): 136-137.

    猜你喜歡
    中間件日志客戶端
    一名老黨員的工作日志
    扶貧日志
    心聲歌刊(2020年4期)2020-09-07 06:37:14
    RFID中間件技術(shù)及其應(yīng)用研究
    電子制作(2018年14期)2018-08-21 01:38:10
    縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
    孵化垂直頻道:新聞客戶端新策略
    基于VanConnect中間件的設(shè)計(jì)與開發(fā)
    基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
    游學(xué)日志
    中間件在高速公路領(lǐng)域的應(yīng)用
    一種基于粗集和SVM的Web日志挖掘模型
    永善县| 达日县| 华池县| 永吉县| 墨竹工卡县| 卢龙县| 镇雄县| 南陵县| 临沂市| 罗田县| 桑日县| 桦甸市| 鲁甸县| 兴海县| 南汇区| 翼城县| 陇西县| 丹棱县| 龙门县| 惠东县| 万载县| 钦州市| 洛宁县| 高安市| 龙岩市| 岑溪市| 个旧市| 茂名市| 东光县| 隆安县| 绥宁县| 永春县| 虎林市| 剑阁县| 务川| 辉南县| 金乡县| 安化县| 綦江县| 南川市| 华安县|