一種基于hdfs的文件溯源ftp系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式文件系統(tǒng),尤其涉及一種基于HDFS的文件溯源FTP系統(tǒng)。
【背景技術(shù)】
[0002]移動(dòng)互聯(lián)網(wǎng)時(shí)代,移動(dòng)通信行業(yè)的用戶行為數(shù)據(jù)量激增,數(shù)據(jù)分析領(lǐng)域采用先進(jìn)的大數(shù)據(jù)技術(shù)進(jìn)行數(shù)據(jù)分析和數(shù)據(jù)訪問工作。
[0003]Hadoop分布式文件系統(tǒng)被設(shè)計(jì)成適合運(yùn)行在通用硬件上的分布式文件系統(tǒng),它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點(diǎn)。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。HDFS放寬了一部分POSIX約束,來實(shí)現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。
[0004]HDFS-0VER-FTP是一個(gè)開源的,簡單易用的實(shí)現(xiàn)了對HDFS文件系統(tǒng)的上傳和下載的FTP服務(wù)器。但是現(xiàn)有技術(shù)中對上傳文件沒有歷史記錄,不便于后期維護(hù)查看。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術(shù)問題,在于提供一種基于HDFS的文件溯源FTP系統(tǒng),解決了現(xiàn)有技術(shù)中往HDFS文件系統(tǒng)上傳文件后,后期無法維護(hù)和查看,無法進(jìn)行溯源的問題。
[0006]本發(fā)明是這樣實(shí)現(xiàn)的:一種基于HDFS的文件溯源FTP系統(tǒng),包括FTP服務(wù)端、上傳文件模塊、歷史記錄模塊、HDFS文件系統(tǒng)以及文件流池;FTP服務(wù)端從客戶端接收N個(gè)上傳文件請求后發(fā)起N個(gè)并發(fā)線程,每一線程調(diào)用上傳文件模塊上傳客戶端發(fā)送的文件,每一線程對應(yīng)一文件;上傳文件模塊上傳文件到HDFS文件系統(tǒng),所述上傳文件模塊確定文件已上傳到HDFS文件系統(tǒng)后將調(diào)用歷史記錄模塊;歷史記錄模塊從文件流池中獲取空閑的文件流,應(yīng)用所述文件流將文件的上傳信息寫入歷史記錄文件中,所述上傳信息用于文件溯源;文件流池,存儲(chǔ)多個(gè)文件流的介質(zhì),所述每一文件流管理一個(gè)歷史記錄文件;HDFS文件系統(tǒng),存儲(chǔ)被上傳文件的文件系統(tǒng)。
[0007]其中,若所述上傳文件模塊上傳文件到HDFS文件系統(tǒng)失敗,則返回錯(cuò)誤信息至客戶端,客戶端重新發(fā)起上傳文件請求。
[0008]其中,若所述上傳文件模塊上傳文件到HDFS文件系統(tǒng)成功,則返回成功信息至客戶系統(tǒng)。
[0009]其中,所述的上傳信息包括所上傳文件的文件名、開始上傳時(shí)間、結(jié)束上傳時(shí)間、上傳成功與否標(biāo)識。
[0010]其中,所述歷史記錄文件中所記錄的各上傳信息之間用符號間隔。
[0011]其中,所述文件流池為物理硬盤。
[0012]其中,所述文件流池的文件流數(shù)量可配置。
[0013]本發(fā)明的優(yōu)點(diǎn)在于:
[0014]其一、應(yīng)用所述的FTP服務(wù)端,往HDFS文件系統(tǒng)上傳文件時(shí)可以在所述的歷史記錄文件中記錄文件上傳信息,便于后期維護(hù)時(shí)查看、溯源。
[0015]其二、所述的基于HDFS的文件溯源FTP系統(tǒng)實(shí)現(xiàn)并發(fā)的文件上傳、下載功能,并發(fā)的記錄上傳信息,工作效率高,實(shí)時(shí)性好。
【附圖說明】
[0016]圖1為本發(fā)明的一種基于HDFS的文件溯源FTP系統(tǒng)的結(jié)構(gòu)示意圖。
[0017]標(biāo)號說明:
[0018]客戶端-100FTP服務(wù)端-200 上傳文件模塊-300
[0019]歷史記錄模塊-400文件流池-500
【具體實(shí)施方式】
[0020]為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖詳予說明。
[0021]HDFS-0VER-FTP是一個(gè)開源的,簡單易用的實(shí)現(xiàn)了對HDFS文件系統(tǒng)的上傳和下載的FTP服務(wù)端200。本發(fā)明應(yīng)用所述的FTP服務(wù)端200實(shí)現(xiàn)文件的上傳、下載和溯源等功能,本發(fā)明公開一種基于HDFS的文件溯源FTP系統(tǒng),具體的包括:FTP服務(wù)端200、上傳文件模塊300、歷史記錄模塊400、HDFS文件系統(tǒng)以及文件流池500 ;FTP服務(wù)端200從客戶端100接收N個(gè)上傳文件請求后發(fā)起N個(gè)并發(fā)線程,每一線程調(diào)用上傳文件模塊300上傳客戶端100發(fā)送的文件,每一線程對應(yīng)一文件;上傳文件模塊300上傳文件到HDFS文件系統(tǒng),所述上傳文件模塊300確定文件已上傳到HDFS文件系統(tǒng)后將調(diào)用歷史記錄模塊;歷史記錄模塊從文件流池500中獲取空閑的文件流,應(yīng)用所述文件流將文件的上傳信息寫入歷史記錄文件中,所述上傳信息用于文件溯源;文件流池500,存儲(chǔ)多個(gè)文件流的介質(zhì),所述每一文件流管理一個(gè)歷史記錄文件;HDFS文件系統(tǒng),存儲(chǔ)被上傳文件的文件系統(tǒng)。
[0022]參閱圖1所示,多個(gè)客戶端100同時(shí)上傳文件,F(xiàn)TP服務(wù)端200接收到多個(gè)上傳文件的請求,然后發(fā)起多個(gè)線程并發(fā)的處理,每個(gè)線程對應(yīng)一個(gè)文件,每個(gè)線程通過調(diào)用上傳文件模塊300來上傳文件,上傳文件模塊300負(fù)責(zé)把文件上傳到HDFS文件系統(tǒng)中。若上傳文件成功,則此線程會(huì)調(diào)用歷史記錄模塊,歷史記錄模塊從文件流池500里去獲得一個(gè)空閑的文件流,如果暫時(shí)沒有空閑的文件流,則等待一段時(shí)間再去獲取,直至獲得空閑的文件流,通過這個(gè)文件流向?qū)?yīng)的歷史記錄文件中寫入上傳信息,所述的文件流池500中的文件流主要用于解決多線程高并發(fā)的上傳文件時(shí)歷史記錄模塊可能會(huì)帶來的性能問題,以此通過所述的文件流管理歷史記錄文件保障系統(tǒng)穩(wěn)定運(yùn)行。在各種實(shí)施方式中,所述的上傳信息包括所上傳文件的文件名、開始上傳時(shí)間、結(jié)束上傳時(shí)間、上傳成功與否標(biāo)識等,調(diào)用所述的上傳信息即可對所述的文件進(jìn)行溯源,所述上傳信息不僅僅局限于本例所列的類型,所述上傳信息可依據(jù)使用者的需求設(shè)定類別。在又一優(yōu)選的實(shí)施方式中,為了能夠清楚的區(qū)分各個(gè)上傳信息,所述的上傳信息之間用符號間隔,所述的符號可以為分隔符、逗號、加號、斜線等各種能夠表征區(qū)別的符號。
[0023]上述實(shí)施方式的一種改進(jìn)方式中,若所述上傳文件模塊300上傳文件到HDFS文件系統(tǒng)失敗,則返回錯(cuò)誤信息至客戶端100,客戶端100重新發(fā)起上傳文件請求。通過該方式能夠保證所有文件都上傳至所述的HDFS文件系統(tǒng)。
[0024]上述實(shí)施方式的一種改進(jìn)方式中,若所述上傳文件模塊300上傳文件到HDFS文件系統(tǒng)成功,則返回成功信息至客戶端100。該方式便于客戶端100能夠?qū)ι蟼鞒晒Φ奈募M(jìn)行統(tǒng)計(jì),并可應(yīng)用于后期的跟蹤、溯源。
[0025]上述實(shí)施方式中,所述的文件流池500優(yōu)選的采用物理硬盤,文件流池里面存儲(chǔ)了多個(gè)文件流,文件流連接到物理硬盤上的一個(gè)物理文件,文件流可以對這個(gè)物理文件進(jìn)行讀寫操作,即每個(gè)文件流對應(yīng)到物理硬盤上的一個(gè)歷史記錄文件通過文件流可以讀寫所述的歷史記錄文件,所述歷史記錄文件的文件名可配置,本發(fā)明可以通過在配置文件hdfs-over-ftp.properties 中提供 log_prefix_record_operat1ns_put 配置項(xiàng)來讓用戶自定義歷史記錄文件的文件名主體部分,文件名主體部分+當(dāng)前日期+.log構(gòu)成完整的文件名。在又一優(yōu)選的實(shí)施方式中,在配置文件hdfs-over-ftp.properties中提供了 log_max_os配置項(xiàng)來讓用戶自定義文件流池500中緩存的文件流的數(shù)量,達(dá)到文件流池500中的文件流數(shù)量可配置的目的,并且文件流可以根據(jù)自定制的時(shí)間來切換到新的物理文件。
[0026]上所述僅為本發(fā)明一種基于HDFS的文件溯源FTP系統(tǒng)的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于HDFS的文件溯源FTP系統(tǒng),其特征在于:包括FTP服務(wù)端、上傳文件模塊、歷史記錄模塊、HDFS文件系統(tǒng)以及文件流池; FTP服務(wù)端從客戶端接收N個(gè)上傳文件請求后發(fā)起N個(gè)并發(fā)線程,每一線程調(diào)用上傳文件模塊上傳客戶端發(fā)送的文件,每一線程對應(yīng)一文件; 上傳文件模塊上傳文件到HDFS文件系統(tǒng),所述上傳文件模塊確定文件已上傳到HDFS文件系統(tǒng)后將調(diào)用歷史記錄模塊; 歷史記錄模塊從文件流池中獲取空閑的文件流,應(yīng)用所述文件流將文件的上傳信息寫入歷史記錄文件中,所述上傳信息用于文件溯源; 文件流池,存儲(chǔ)多個(gè)文件流的介質(zhì),每一文件流管理一個(gè)歷史記錄文件; HDFS文件系統(tǒng),存儲(chǔ)被上傳文件的文件系統(tǒng)。2.根據(jù)權(quán)利要求1所述的一種基于HDFS的文件溯源FTP系統(tǒng),其特征在于:若所述上傳文件模塊上傳文件到HDFS文件系統(tǒng)失敗,則返回錯(cuò)誤信息至客戶端,客戶端重新發(fā)起上傳文件請求。3.根據(jù)權(quán)利要求2所述的一種基于HDFS的文件溯源FTP系統(tǒng),其特征在于:若所述上傳文件模塊上傳文件到HDFS文件系統(tǒng)成功,則返回成功信息至客戶系統(tǒng)。4.根據(jù)權(quán)利要求3所述的一種基于HDFS的文件溯源FTP系統(tǒng),其特征在于:所述的上傳信息包括所上傳文件的文件名、開始上傳時(shí)間、結(jié)束上傳時(shí)間、上傳成功與否標(biāo)識。5.根據(jù)權(quán)利要求4所述的一種基于HDFS的文件溯源FTP系統(tǒng),其特征在于:所述歷史記錄文件中所記錄的各上傳信息之間用符號間隔。6.根據(jù)權(quán)利要求1所述的一種基于HDFS的文件溯源FTP系統(tǒng),其特征在于:所述文件流池為物理硬盤。7.根據(jù)權(quán)利要求6所述的一種基于HDFS的文件溯源FTP系統(tǒng),其特征在于:所述文件流池的文件流數(shù)量可配置。
【專利摘要】本發(fā)明提供一種基于HDFS的文件溯源FTP系統(tǒng),包括FTP服務(wù)端從客戶端接收N個(gè)上傳文件請求后發(fā)起N個(gè)并發(fā)線程,每一線程調(diào)用上傳文件模塊上傳客戶端發(fā)送的文件,每一線程對應(yīng)一文件;上傳文件模塊上傳文件到HDFS文件系統(tǒng),所述上傳文件模塊確定文件已上傳到HDFS文件系統(tǒng)后將調(diào)用歷史記錄模塊;歷史記錄模塊從文件流池中獲取空閑的文件流,應(yīng)用所述文件流將文件的上傳信息寫入歷史記錄文件中,所述上傳信息用于文件溯源;文件流池,存儲(chǔ)多個(gè)文件流的介質(zhì),每一文件流管理一個(gè)歷史記錄文件;HDFS文件系統(tǒng),存儲(chǔ)被上傳文件的文件系統(tǒng)。應(yīng)用FTP服務(wù)端往HDFS文件系統(tǒng)上傳文件時(shí)可以在所述的歷史記錄文件中記錄文件上傳信息,便于后期維護(hù)時(shí)查看、溯源。
【IPC分類】H04L29/08, G06F17/30
【公開號】CN105357280
【申請?zhí)枴緾N201510678714
【發(fā)明人】張強(qiáng)
【申請人】福建新大陸軟件工程有限公司
【公開日】2016年2月24日
【申請日】2015年10月19日