




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、題目:HHadooop完完全分布布式環(huán)境境下的網(wǎng)網(wǎng)盤項(xiàng)目目姓名:王王宏磊 學(xué)號(hào):2011500080005466專業(yè):軟件工工程 班班級(jí):115-001班手機(jī):117866308872772姓名:苗苗純?cè)磳W(xué)學(xué)號(hào):2201550088005524專專業(yè):軟軟件工程程 班級(jí)級(jí):155-011班手機(jī):117866308858995項(xiàng)目要求滿分實(shí)際得分分起評(píng)分達(dá)到題目目基本要要求50流暢性程序運(yùn)行行過(guò)程完完整流暢暢,能清清楚說(shuō)明明問(wèn)題10美觀性程序界面面美觀舒舒適10回答問(wèn)題題能正確回回答老師師就代碼碼和程序序設(shè)計(jì)的的問(wèn)題10安裝步驟驟清晰明了了10編程風(fēng)格格程序書寫寫正規(guī),程程序注釋釋完整規(guī)規(guī)范10
2、總評(píng)Partt1、安安裝說(shuō)明明一、虛擬擬機(jī)和llinuux系統(tǒng)統(tǒng)的安裝裝我們選擇擇的虛擬擬機(jī)是VVMwaare Worrksttatiion Proo14.0,llinuux系統(tǒng)統(tǒng)的版本本是CeentOOS-66.6-x866_644-biin-DDVD11.isso安裝虛擬擬機(jī),運(yùn)運(yùn)行VMMwarre WWorkkstaatioon PPro114.00,選擇擇合適的的安裝路路徑,從從網(wǎng)上找找到該版版本虛擬擬機(jī)的注注冊(cè)碼,輸輸入后一一直點(diǎn)下下一步直直到安裝裝完成即即可。安裝liinuxx系統(tǒng),打打開虛擬擬機(jī),點(diǎn)點(diǎn)擊文件件-新建虛虛擬機(jī),選選擇自定定義,下一步步,為了了防止版版本問(wèn)題題,這里里
3、選擇硬硬件兼容容性為110.xx,選擇擇linnux系系統(tǒng)鏡像像的路徑徑,設(shè)置置linnux系系統(tǒng)的用用戶名和和密碼然然后點(diǎn)擊擊下一步步,處理理機(jī)數(shù)量量選擇11個(gè)即可可,內(nèi)存存暫時(shí)設(shè)設(shè)置為11g,若若以后內(nèi)內(nèi)存不夠夠可以再再修改,網(wǎng)網(wǎng)絡(luò)類型型選擇NNAT,剩剩下的均均為默認(rèn)認(rèn)設(shè)置,一一直下一一步直到到完成。完成之后后打開該該新建的的虛擬機(jī)機(jī),虛擬擬機(jī)會(huì)自自動(dòng)安裝裝linnux操操作系統(tǒng)統(tǒng),等待待其安裝裝。安裝裝完成之之后輸入入用戶名名和密碼碼登錄到到linnux系系統(tǒng)中。關(guān)閉防火火墻和sseliinuxx學(xué)習(xí)環(huán)境境可以直直接把防防火墻關(guān)關(guān)閉掉(1) 用rooot用用戶登錄錄后,執(zhí)執(zhí)行查看看防火
4、墻墻狀態(tài)。shelll命令令為: serrvicce iiptaablees sstattus(2) 用seerviice ipttablles stoop關(guān)閉閉防火墻墻,這個(gè)個(gè)是臨時(shí)時(shí)關(guān)閉防防火墻。 (3) 如果果要永久久關(guān)閉防防火墻用用。chkcconffig ipttablles offfseliinuxx是Liinuxx一個(gè)子安安全機(jī)制制,學(xué)習(xí)習(xí)環(huán)境可可以將它它禁用。用命令vvim /ettc/ssyscconffig/sellinuux打開開文件設(shè)設(shè)置SEELINNUX為為dissablled。二、Haadooop開發(fā)發(fā)環(huán)境的的搭建1、3臺(tái)臺(tái)主機(jī)的的hosstnaame修修改和IIp
5、地址址綁定(三臺(tái)主主機(jī)均以以rooot用戶戶登錄)(1)33臺(tái)主機(jī)機(jī)的基本本網(wǎng)絡(luò)環(huán)環(huán)境CenttOS66,644位,在在虛擬機(jī)機(jī)下實(shí)現(xiàn)現(xiàn)。在虛擬機(jī)機(jī)下安裝裝了一個(gè)個(gè)cenntoss6系統(tǒng)統(tǒng),然后后克隆該該虛擬機(jī)機(jī)為3個(gè)個(gè)虛擬機(jī)機(jī),其IIp地址址和主機(jī)機(jī)名分別別如下:192.1988.1662.1133hhadooop192.1688.1662.1131hhadooop00192.1688.1662.1132hhadooop11(2)IIP地址址與hoostnnamee綁定在haddoopp主機(jī)下下,在控控制臺(tái)中中輸入vvi /etcc/syyscoonfiig/nnetwworkk,將hhos
6、ttnamme修改改為haadooop,在在haddoopp0主機(jī)機(jī)下操作作類似,將將HOSSTNAAME修修改為hhadooop00;在hhadooop11主機(jī)下下操作類類似,將將HOSSTNAAME修修改為hhadooop11。在haddoopp主機(jī)下下,輸入入:vii /eetc/hossts,在在hossts下下添加如如下內(nèi)容容192.1688.1662.1133 haadooop192.1688.1662.1131 haadooop0 192.1688.1662.1132 haadooop1 然后通過(guò)過(guò)scpp命令,將將修改好好的hoostss復(fù)制到到haddoopp0和hhadoo
7、op11的/eetc/hossts文文件夾下下覆蓋:scp /eetc/hossts rooothaddoopp0:/etcc/hoostss scp /eetc/hossts rooothaddoopp1:/etcc/hoostss(3)測(cè)測(cè)試3太太主機(jī)之之間是否否能Piing通通在3臺(tái)主主機(jī)下分分別輸入入:pingg haadooop pingg haadooop0 pingg haadooop1 如果3太太主機(jī)都都能piing通通,那說(shuō)說(shuō)明前面面的配置置成功2、SSSH免密密碼登錄錄在haddoopp主機(jī)下下:查看當(dāng)前前用戶下下(rooot)是否有有.sssh的隱隱藏文件件,如果果沒(méi)有就
8、就創(chuàng)建一一個(gè)命令為mmkdiir .sshh(2)生成公公鑰輸入sssh-kkeyggen -t rsaa -PP (注注:最后后是二個(gè)個(gè)單引號(hào)號(hào),表示示不設(shè)置置密碼)然后分發(fā)發(fā)公鑰到目標(biāo)標(biāo)機(jī)器ssh-coppy-iid -i /.sssh/id_rsaa.puub rrootthaddoopp1ssh-coppy-iid -i /.sssh/id_rsaa.puub rrootthaddoopp0 (注意不不要忘記記了參數(shù)數(shù)-i)(3)驗(yàn)驗(yàn)證SSSH是否否安裝成成功,以以及是否否可以免免密碼登登陸本機(jī)機(jī)ssh loocallhosstssh haddoopp0 ssh haddoopp1在第
9、一次次登陸是是需要密密碼,以以后則不不要。到到此,sssh的的免密碼碼登陸完完成附:如果果失敗,有有可能是是以下原原因(在在配置過(guò)過(guò)程中我我們遇到到的是第第一種情情況,權(quán)權(quán)限不足足):1、權(quán)限限問(wèn)題.sshh目錄,以以及/hhomee/當(dāng)前前用戶 需要7700權(quán)權(quán)限,參參考以下下操作調(diào)調(diào)整sudoo chhmodd 7000 /.ssshsudoo chhmodd 7000 /homme/當(dāng)當(dāng)前用戶戶.sshh目錄下下的auuthoorizzed_keyys文件件需要6600或或6444權(quán)限,參參考以下下操作調(diào)調(diào)整sudoo chhmodd 6000 /.sssh/autthorrizeed_
10、kkeyss2、SttricctMoodess問(wèn)題編輯sudoo vii /eetc/sshh/ssshd_connfigg找到#StrricttModdes yess改成StriictMModees nno如果還不不行,可可以用sssh -vvvv 目目標(biāo)機(jī)器器ip 查看詳詳情,根根據(jù)輸出出內(nèi)容具具體問(wèn)題題具體分分析了參考網(wǎng)址址: HYPERLINK /yjmyzz/p/4481720.html htttpss:/m/yjjmyzzz/pp/444817720.htmml3、安裝裝和配置置haddoopp(1)解解壓安裝裝haddoopp2.99.0在haddoopp主機(jī)下下:下載并將將ha
11、ddoopp-2.9.00.taar.ggz解壓壓到當(dāng)前前用戶目目錄下(/usrr/loocall)tar -zxxvf hhadooop-2.99.0.tarr.gzz然后將hhadooop文文件夾重重命名為為haddoopp。(2)配配置haadooop在haddoopp主機(jī)下下:進(jìn)入haadooop文件件夾下的的etcc文件夾夾下的hhadooop文文件夾,修修改配置置文件。1.指定定jdkk安裝位位置:Hadooop-envv.shh:expoort JAAVA_HOMME=/rooot/jjdk11.8/jdkk1.88.0_17112.haadooop核心心配置文文件,配配置HDD
12、FS地地址和段段口號(hào)。coree-siite.xmll fss.deefauult.namme hhdfss:/haddoopp:90000 haadooop.ttmp.dirr /usrr/loocall/haadooop/ttmp 3.hddfs-sitte.xxml,默默認(rèn)的配配置方式式是3,這這里表示示副本數(shù)數(shù)是3,由由于我們們搭建的的子節(jié)點(diǎn)點(diǎn)只有22個(gè),所所以輸入入1或22hdfss-siite.xmll dffs.rrepllicaatioon 22 ddfs.perrmisssioonsfallse 3.1修修改coore-deffaullt.xxml文文件,不不然在之之后的ee
13、cliipsee編程時(shí)時(shí)會(huì)出現(xiàn)現(xiàn)fillesyysnootexxistt “hhdfss”的錯(cuò)錯(cuò)誤,該該文件在在haddoopp安裝目目錄下的的/shharee/dooc/HHadooop/haddoopp-prrojeect-disst/haddoopp-coommoon/下下 fss.hddfs.imppl oorg.apaachee.haadooop.hhdfss.DiistrribuuteddFilleSyysteem TThe FilleSyysteem ffor hdffs: uriis.4.配置置MappRedducee文件,配配置JoobTrrackker的的地址和和端口map
14、rred-sitte.xxml mmaprred.jobb.trrackker haddoopp:90001 5修改改massterrs文件件,如果果沒(méi)有就就創(chuàng)一個(gè)個(gè)空白文文件改名名為maasteers。在其中寫寫入haadooop6.修改改slaavess文件寫入haadooop0 hadooop117.然后后將haadooop文件件夾復(fù)制制到另外外2臺(tái)主主機(jī)。scp -R /uuer/loccal/haddoopp rooothaddoopp0:/uerr/loocall /hhadooop scp -R /uuer/loccal/haddoopp rooothaddoopp1:/uerr
15、/loocall /HHadooop8. 修修改環(huán)境境變量vi /etcc/prrofiileexpoort JAVVA_HHOMEE=/rroott/jddk1.8/jjdk11.8.0_1171expoort HADDOOPP_HOOME=/ussr/llocaal/hhadooop expoort PATTH=.:$HHADOOOP_HOMME/bbin:$JAAVA_HOMME/bbin:$PAATH同樣,將將proofille復(fù)制制到另外外兩臺(tái)主主機(jī)上scp /ettc/pproffilee rooothaddoopp0:/etcc/ scp /ettc/pproffilee roo
16、othaddoopp1:/etcc/注意請(qǐng)先先使用ssourrce /ettc/pproffilee更新命命令(3)啟啟動(dòng)haadooop在haddoopp下:輸入:hadooop nammenoode -foormaat然后通過(guò)過(guò)staart-alll.shh啟動(dòng)所所有進(jìn)程程:.進(jìn)入到到$HAADOOOP_HHOMEE/sbbin目目錄下啟啟動(dòng)sttartt-alll.ssh可以通過(guò)過(guò)jpss命令來(lái)來(lái)查看運(yùn)運(yùn)行的進(jìn)進(jìn)程, 如果果成功運(yùn)運(yùn)行,那那么將會(huì)會(huì)有如下下顯示在haddoopp0和hhadooop11的shhelll中輸入入jpss也會(huì)有有3個(gè)運(yùn)運(yùn)行,其其中daatannodee一定要要
17、檢查是是否存在在,如果果不存在在說(shuō)明配配置存在在問(wèn)題。附:在配配置中,我我們遇到到dattanoode無(wú)無(wú)法啟動(dòng)動(dòng)的問(wèn)題題,經(jīng)查查閱后了了解到是是由于我我們使用用的是664位llinuux系統(tǒng)統(tǒng),需要要下載對(duì)對(duì)應(yīng)的664位編編譯版本本替換原原來(lái)的nnatiive文文件,下下載對(duì)應(yīng)應(yīng)文件后后,將準(zhǔn)準(zhǔn)備好的的64位位的liib包解解壓到已已經(jīng)安裝裝好的hhadooop安安裝目錄錄的liib/nnatiive 和 llib目目錄下:然后增增加環(huán)境境變量:vi /ettc/pproffilee增加下下面的內(nèi)內(nèi)容:expoort HADDOOPP_COOMMOON_LLIB_NATTIVEE_DIIR=
18、$HADDOOPP_HOOME/libb/naativveexpoort HADDOOPP_OPPTS=-DDjavva.llibrraryy.paath=$HAADOOOP_HHOMEE/liib讓環(huán)境變變量生效效souurcee /eetc/proofille 自檢haadooop ccheccknaativve a 指指令檢查查haddoopp chheckknattivee aa 參考地址址: HYPERLINK /jack85986370/article/details/51902871 htttpss:/bloog.ccsdnn.neet/jjackk8599863370/artt
19、iclle/ddetaailss/51190228711httpps:/wwww.ccnbllogss.coom/ffanffanffanttasyy/p/412234112.hhtmll至此,hhadooop啟啟動(dòng)成功功,要想想看集群群狀態(tài),可可以打開開下面兩兩個(gè)網(wǎng)址址:locaalhoost:80888(mmaprreduuce的的webb頁(yè)面,注注意haadooop2.0以前前的版本本端口號(hào)號(hào)為5000300,我使使用的是是2.99.0版版本,所所有端口口號(hào)為880888)locaalhoost:500070(HHDFSS的weeb頁(yè)面面)三、搭建建并測(cè)試試開發(fā)環(huán)環(huán)境(JJAVAA)1、
20、JAAVAjjdk的的安裝(1)查查看是否否已經(jīng)安安裝了jjavaa JDDK。Sheell下下輸入jjavaa vverssionn注意:HHadooop機(jī)機(jī)器上的的JDKK,最好好是Orraclle的JJavaa JDDK,不不然會(huì)有有一些問(wèn)問(wèn)題,比比如可能能沒(méi)有JJPS命命令。 如果安裝裝了其他他版本的的JDKK,卸載載掉。安裝jaava JDKK去下載OOraccle版版本Jaava JDKK:我下下載的是是1.88版本的的jdkk-8uu1711-liinuxx-x664.ttar.gz,然然后將jdkk-8uu1711-liinuxx-x664.ttar.gz解解壓到你你想安裝裝的
21、目錄錄下,這這里我選選的目錄錄是/rroott/jddk1.8Shelll命令令為taar -zxvvf jjdk-8u1171-linnux-x644.taar.ggz -C /rooot/jjdk11.8,也也可以直直接在文文件系統(tǒng)統(tǒng)里右鍵鍵復(fù)制粘粘貼到對(duì)對(duì)應(yīng)目錄錄接下來(lái)添添加環(huán)境境變量,設(shè)置JDDK的環(huán)環(huán)境變量量 JAAVA_HOMME。需需要修改改配置文文件/eetc/proofille,追加expoort JAVVA_HHOMEE=/rroott/jddk1.8/jjdk11.8.0_1171expoort CLAASSPPATHH=.:/rooot/jjdk11.8/jdkk1.8
22、8.0_1711/jrre/llib/rt.jarr:/rroott/jddk1.8/jjdk11.8.0_1171/libb/dtt.jaar:/rooot/jjdk11.8/jdkk1.88.0_1711/liib/ttoolls.jjarexpoort PATTH=$JAVVA_HHOMEE/biin:$PATTH修改完畢畢后,執(zhí)執(zhí)行 ssourrce /ettc/pproffilee三臺(tái)虛擬擬機(jī)上都都要進(jìn)行行對(duì)應(yīng)的的操作,或或者設(shè)置置好以個(gè)個(gè)虛擬機(jī)機(jī)的之后后,將相相應(yīng)的文文件用sscp命命令復(fù)制制到另外外兩臺(tái)虛虛擬機(jī)上上安裝后再再次執(zhí)行行 jaava veersiion,可以看看見已經(jīng)
23、經(jīng)安裝完完成。2、Toomcaat的安安裝(1) 下載載 toomcaat LLinuux 版版本oraccle 官網(wǎng)下下載地址址: HYPERLINK /download-80.cgi htttp:/ttomccat.apaachee.orrg/ddownnloaad-880.ccgi我下載的的是appachhe-ttomccat-7.00.866.taar.ggz,注注意不要要下載88.0及及以上版版本,否否則之后后的編程程會(huì)提示示不兼容容問(wèn)題(2) 在 uusr 目錄下下新建 tommcatt 目錄錄,然后后將 下下載的 tommcatt 用工工具拷貝貝到這個(gè)個(gè)新建的的 toomcaat
24、目錄錄中(3) 解壓 tommcatt 文件件, 由于于文件名名有點(diǎn)長(zhǎng)長(zhǎng),我們們需要給給解壓后后的文件件夾重命命名,以以便后面面引用方方便,我我改為了了tommcatt7.00(4) 配置置環(huán)境變變量(注意:這里我我們前提提是已經(jīng)經(jīng)安裝并并配置好好了 JJDK)追加exxporrt CCATAALINNA_HHOMEE=/uusr/tommcatt/toomcaat7.0expoort PATTH=$JAVVA_HHOMEE/biin:$CATTALIINA_HOMME/bbin:$PAATH輸入如下下命令讓讓配置生生效:ssourrce /ettc/pproffilee啟動(dòng) ttomccat
25、進(jìn)入到 /ussr/ttomccat/tommcatt7.00/biin 目目錄下,輸輸入如下下命令./sttarttup.sh查看 ttomccat 是否啟啟動(dòng)成功功ps -efiigreep jjavaa關(guān)閉的方方法為進(jìn)進(jìn)入到 /ussr/ttomccat/tommcatt8.55/biin 目目錄下,輸輸入如下下命令./shhutddownn.shh驗(yàn)證是否否啟動(dòng)成成功啟動(dòng)toomcaat 之之后,在在瀏覽器器輸入 htttp:loocallhosst:880800。如果果出現(xiàn) tommcatt 的主主頁(yè)則啟啟動(dòng)成功功附:參考考資源;htttp:/wwww.jjb511.neet/aar
26、tiiclee/11166554.hhtm3、mmysqql安裝裝 (1) 下載載mysqql的llinuux版本本,我這這里下載載的是mmysqql-55.6.40-linnux-gliibc22.122-x886_664.ttar.gz (22) 將將安裝包包解壓到到/ussr/llocaal下并并改名為為myssql(3) 添加加myssql用用戶組和和myssql用用戶先檢查是是否有mmysqql用戶戶組和mmysqql用戶戶,命令令為grroupps mmysqql,若無(wú),則則添加;grooupaadd myssqluserraddd -rr -gg myysqll myysqll若
27、添加成成功則再再次grrouppsmyysqll時(shí)會(huì)如如下圖進(jìn)入myysqll目錄更更改權(quán)限限cd /usrr/loocall/myysqll/chowwn -R mmysqql:mmysqql ./執(zhí)行安裝裝腳本./sccrippts/myssql_insstalll_ddb usser=myssql安裝完之之后修改改當(dāng)前目目錄擁有有者為rroott用戶,修修改daata目目錄擁有有者為mmysqqlchowwn -R rroott:rooot ./chowwn -R mmysqql:mmysqql ddataa先啟動(dòng)mmysqql,然然后更改改myssql密密碼./suuppoort-fi
28、lles/myssql.serrverr sttartt如果MyySQLL啟動(dòng)報(bào)報(bào)錯(cuò),則則可能是是已經(jīng)存存在MyySQLL進(jìn)程,殺殺掉即可可ps aaux|greep mmysqqlkilll -99 上邊邊的進(jìn)程程號(hào)#或者下下邊一條條命令即即可殺掉掉所有MMySQQL進(jìn)程程ps aaux|greep mmysqql|aawk pprinnt $2|xaargss kiill -9MySQQL啟動(dòng)動(dòng)之后再再執(zhí)行如如下命令令更改密密碼:./biin/mmysqqladdminn -uu rooot -h loccalhhostt.loocalldommainn paasswwordd rroot
29、t密碼更改改后即可可登錄MMySQQL./biin/mmysqql -h1227.00.0.1 -urooot -prroott登錄之后后將其他他用戶的的密碼也也可改為為roootupdaate myssql.useer sset passswoord=passswoord(rooot) wwherre uuserr=rroott;flussh pprivvileegess;在數(shù)據(jù)庫(kù)庫(kù)中創(chuàng)建建一個(gè)hhadooop數(shù)數(shù)據(jù)庫(kù)并并在haadooop數(shù)據(jù)據(jù)庫(kù)中創(chuàng)創(chuàng)建一個(gè)個(gè)useers表表,為后后面的開開發(fā)做準(zhǔn)準(zhǔn)備增加遠(yuǎn)程程登錄權(quán)權(quán)限本地登陸陸MySSQL后后執(zhí)行如如下命令令grannt aall pr
30、iivillegees oon *.* to rooot% ideentiifieed bby rooot;flussh pprivvileegess;將MySSQL加加入Seerviice系系統(tǒng)服務(wù)務(wù)cp ssuppportt-fiiless/myysqll.seerveer /etcc/innit.d/mmysqqldchkcconffig -aadd myssqlddchkcconffig myssqldd onnservvicee myysqlld rresttartt serrvicce mmysqqld staatuss附:參考考網(wǎng)址:htttps:/t/wwwd05501/art
31、ticlle/ddetaailss/71117116144,注意該該網(wǎng)址中中的第九九步不要要修改mmy.ccnf文文件,否否則會(huì)導(dǎo)導(dǎo)致myysqll啟動(dòng)不不成功4、ecclippse安安裝和配配置(1)官網(wǎng)下下載ecclippse,我下載載的是eecliipsee-jeee-llunaa-SRR2-llinuux-ggtk-x866_644.taar.ggz(2)解壓安裝裝包到/rooot/下下改名為為ecllipsse(3)下載haadooop-eecliipsee-pllugiin-22.7.3.jjar并并放到eecliipsee下的pplugginss目錄下下然后啟動(dòng)動(dòng)ecllipss
32、e,打開eecliipseeWinndoww - prrefeerenncess找到hhadooop, 設(shè)置置haddoopp路徑(4)配置eecliipsee開發(fā)ttomccat新建項(xiàng)目目, 選選擇Weeb pprojjectt設(shè)置項(xiàng)目目名稱選擇neew RRunttimee在彈出對(duì)對(duì)話框配配置toomcaat版本本以及ttomccat位位置然后下一一步, 下一步步勾選weeb.xxml,并并完成(5) 鏈鏈接數(shù)據(jù)據(jù)庫(kù)在Winndoww菜單欄欄下打開開Opeen PPerssperrtivve,選選擇 DDataabasse DDeveeloppmennt。然后再DDataabasse CC
33、onnnecttionns文件件夾下郵郵件選擇擇Neww .;然后再UURL上上填上剛剛剛創(chuàng)建建的haadooop數(shù)據(jù)據(jù)庫(kù);點(diǎn)擊 TTestt Coonneectiion,測(cè)測(cè)試鏈接接成功。至此,有有關(guān)haadooop網(wǎng)盤盤開發(fā)的的所有配配置已經(jīng)經(jīng)配置完完畢,接接下來(lái)就就可以開開始代碼碼部分了了PARTT2代碼碼部分UI界面面登錄界面面:輸入賬號(hào)號(hào)密碼正正確后會(huì)會(huì)登錄到到該用戶戶的網(wǎng)盤盤,若該該用戶不不存在可可以點(diǎn)擊擊注冊(cè)進(jìn)進(jìn)行賬號(hào)號(hào)的注冊(cè)冊(cè),注冊(cè)冊(cè)完畢后后即可進(jìn)進(jìn)行登錄錄相關(guān)代碼碼:登錄界面面數(shù)據(jù)提提交:我的網(wǎng)盤盤登錄忘記密密碼?記住我我使使用以下下賬號(hào)直直接登錄錄QQ登錄錄微博登登錄微信登
34、登錄沒(méi)沒(méi)有賬號(hào)號(hào)?立即注注冊(cè)ssduwwh.ccom&nbssp;&nbssp;&nbssp;&nbssp;&nbssp;歡歡迎您使使用本網(wǎng)網(wǎng)盤對(duì)登錄界界面提交交的數(shù)據(jù)據(jù)進(jìn)行處處理:publliccclasssLooginnSerrvleetexxtennds HtttpSeervllet prottecttedvvoidddoGGet(HtttpSeervlletRRequuestt reequeest, HtttpSServvlettRessponnse ressponnse) thhrowws SServvlettExccepttionn, IIOExxcepptioon thiss.d
35、ooPosst(reqquesst, ressponnse);prottecttedvvoidddoPPostt(HtttpSServvlettReqquesst rrequuestt, HHttppSerrvleetReespoonsee reespoonsee) thhrowws SServvlettExccepttionn, IIOExxcepptioon Strringg ussernnamee = reqquesst.ggetPParaametter(ussernnamee);Strringg paasswwordd = reqquesst.ggetPParaametter(paas
36、swwordd);UseerBeeanCCl uubc = nnewUUserrBeaanCll();if(uubc.cheeckUUserr(ussernnamee, paasswwordd)/用戶戶合法,跳跳轉(zhuǎn)到界界面HtttpSeessiion sesssioon = reequeest.gettSesssioon(); sesssionn.seetAtttriibutte(ussernnamee, useernaame);JobbConnf cconff = HdffsDAAO.cconffig(); HHdfssDAOO hddfs = nnew HdffsDAAO(cconff);
37、FileeStaatuss lisst = hddfs.ls(/+useernaame);requuestt.seetAtttriibutte(liist,lisst);requuestt.geetReequeestDDisppatccherr(inndexx.jssp?uuserr=+useernaame+).forrwarrd(rrequuestt, reespoonsee);elsse/用戶戶不合法法,調(diào)回回登錄界界面,并并提示錯(cuò)錯(cuò)誤信息息 Syysteem.oout.priintlln(=Errrorr!=n);requuestt.geetReequeestDDisppatccherr
38、(looginn.jssp).foorwaard(reqquesst, ressponnse);注冊(cè)界面面:用戶輸入入用戶名名郵箱密密碼驗(yàn)證證碼之后后點(diǎn)擊注注冊(cè)即可可注冊(cè)成成功,然然后用戶戶便可通通過(guò)登錄錄賬號(hào)登登錄到自自己的網(wǎng)網(wǎng)盤相關(guān)代碼碼注冊(cè)界面面代碼:我的網(wǎng)盤盤歡迎注注冊(cè)已閱讀讀并同意意XXXXXX使使用協(xié)議議使使用以下下賬號(hào)直直接注冊(cè)冊(cè)QQ注冊(cè)冊(cè)微博注注冊(cè)微信注注冊(cè)已已有賬號(hào)號(hào)?立即登登錄ssduwwh.ccom&nbssp;&nbssp;&nbssp;&nbssp;&nbssp;歡歡迎您使使用本網(wǎng)網(wǎng)盤對(duì)注冊(cè)界界面提交交的數(shù)據(jù)據(jù)進(jìn)行處處理:publlic claass Creeatee
39、Serrvleet eexteendss HtttpSServvlettprootecctedd vooid doGGet(HtttpSeervlletRRequuestt reequeest, HtttpSServvlettRessponnse ressponnse) thhrowws SServvlettExccepttionn, IIOExxcepptioon thiss.dooPosst(rrequuestt, rrespponsse);prootecctedd vooid doPPostt(HtttpSServvlettReqquesst rrequuestt, HHttppSerr
40、vleetReespoonsee reespoonsee) tthroows SerrvleetExxcepptioon, IOEExceeptiion /獲取取提交的的數(shù)據(jù)Strringg idd=reequeest.gettParrameeterr(iid);Strringg ussernnamee = reqquesst.ggetPParaametter(ussernnamee);Strringg paasswwordd = reqquesst.ggetPParaametter(paasswwordd);Strringg emmal = rrequuestt.geetPaarammete
41、er(emaal);/創(chuàng)建建新建用用戶的對(duì)對(duì)象UseerCrreatte uubc = nnew UseerCrreatte();tryy if(ubcc.crreatteUsser(id,useernaame,passswoord,emaal)/用用戶創(chuàng)建建成功,hdffs中創(chuàng)創(chuàng)建文件件夾JobbConnf cconff = HdffsDAAO.cconffig(); HddfsDDAO hdffs = neew HHdfssDAOO(coonf);hdfss.mkkdirrs(/+useernaame+/ttestt);/跳轉(zhuǎn)轉(zhuǎn)界面requuestt.geetReequeestDDispp
42、atccherr(llogiin.jjsp).fforwwardd(reequeest, reespoonsee);elsse/用用戶創(chuàng)建建失敗,調(diào)調(diào)回登錄錄界面,并并提示錯(cuò)錯(cuò)誤信息息Sysstemm.ouut.pprinntlnn(iinseert intto uuserrs vvaluues(+id+,+useernaame+,+emaal+,+ppasssworrd+););requuestt.geetReequeestDDisppatccherr(zzhucce.jjsp).fforwwardd(reequeest, reespoonsee); ccatcch (SQLLExccept
43、tionn e) / TODDO AAutoo-geenerrateed ccatcch bblocckSysstemm.ouut.pprinntlnn(iinseert intto uuserrs vvaluues(+id+,+useernaame+,+emaal+,+ppasssworrd+););e.prrinttStaackTTracce();網(wǎng)盤主界界面:相關(guān)代碼碼:Maiin UUI! Coomprresssed Verrsioon BacckgrrounndsBlooc sstylleSiddebaar sstylle Hi, Useer |退出請(qǐng)輸入入關(guān)鍵字字全部文件件用戶信信
44、息用戶名名手機(jī)號(hào)號(hào)郵箱密碼修改信信息修改郵郵箱修改密密碼更換綁綁定手機(jī)機(jī)號(hào)更多網(wǎng)盤文件文件名名屬性大小刪除下載%Strringg paath=nulll;patth=llistt0.geetPaath().ttoSttrinng().suubsttrinng(118,llistt0.geetPaath().ttoSttrinng().leengtth()-liist0.gettPatth().geetNaame().ttoSttrinng().leengtth().ttoSttrinng();if(llistt != nuull)for (innt ii=0; i%if(llistti.iss
45、Dirr()outt.prrintt( +llistti.geetPaath().ggetNNamee()+);elsseoutt.prrintt(+llistti.geetPaath().ggetNNamee()+);%ahreef=DelleteeFilleSeervllet?fillePaath=&mmypaath=ahreef=DowwnlooadSServvlett?fiilePPathh=&mmypaath=下載forrmcllasss=foorm-inllineemetthodd=POOSTencctyppe=MUULTIIPARRT/FFORMM-DAATAacttionn=U
46、pploaadSeervllet?fillepaath=?12 2122?二、數(shù)據(jù)據(jù)交互數(shù)據(jù)庫(kù)連連接:publliccclasss CConnnDB privvatee Coonneectiion ct = nuull;publlic Connnecctioon ggetCConnn()try /加載載驅(qū)動(dòng)Claass.forrNamme(comm.myysqll.jddbc.Driiverr);/得到到連接ct = DrriveerMaanagger.gettConnnecctioon(jdbbc:mmysqql:/loocallhosst:333066/haadooop?uuserr=ro
47、oot&passswoord=rooot); ccatcch (Exccepttionn e) / TTODOO Auuto-genneraatedd caatchh bllockke.prrinttStaackTTracce();retuurncct;檢測(cè)用戶戶登錄是是否合法法:publlic claass UseerBeeanCCl priivatte SStattemeent sm = nnulll;priivatte CConnnecttionn ctt = nulll;priivatte RResuultSSet rs = nnulll;pubblicc vooid cloose()
48、tryy if(ssm != nnulll)sm.cclosse();sm = nnulll;if(cct != nnulll)ct.cclosse();ct = nnulll;if(rrs != nnulll)rs.cloose();rs = nnulll;cattch (SQQLExxcepptioon ee) / TODDO AAutoo-geenerrateed ccatcch bbloccke.prrinttStaackTTracce();/檢檢查登錄錄用戶是是否合法法pubblicc boooleean cheeckUUserr(Sttrinng uuserr, SStriing
49、passswoord)boooleaan bb = fallse;tryy /獲獲得連接接ct = nnew ConnnDBB().gettConnn();/創(chuàng)創(chuàng)建sttateemenntsm = cct.ccreaateSStattemeent();rs = ssm.eexeccuteeQueery(seelecct * frrom useers wheere useernaame=+usser+);if(rs.nexxt()/說(shuō)說(shuō)明用戶戶存在Strringg pwwd = rss.geetSttrinng(33);if(passswoord.equualss(pwwd)/說(shuō)說(shuō)明密碼碼正確b
50、 = trrue;elsseb = faalsee;elsseb = faalsee; ccatcch (SQLLExccepttionn e) e.prrinttStaackTTracce();finnalllythiss.cllosee();retturnn b;用戶注注冊(cè)部分分與數(shù)據(jù)據(jù)庫(kù)的交交互主要要代碼:publlicbboolleanncreeateeUseer(SStriing id,SStriing useer, Strringg paasswwordd,Sttrinng eemall) thhrowws SSQLEExceeptiionboolleannb = fallse;t
51、ry /獲得得連接ct = neew CConnnDB().ggetCConnn();/創(chuàng)建建staatemmenttsm = ctt.crreatteSttateemennt();sm.eexeccutee(innserrt iintoo usserss vaaluees(+id+,+useer+,+emaal+,+passswoord+););b = truue;finnalllythiss.cllosee();retuurnbb;數(shù)據(jù)訪問(wèn)問(wèn)層:HdfssDAOO.jaavapublliccclasss HHdfssDAOO /HDDFS訪訪問(wèn)地址址privvateestaaticcfin
52、nal Strringg HDDFS = hdffs:/haadooop:990000; publlicHHdfssDAOO(Coonfiigurratiion connf) thiss(HDFFS, connf); publlicHHdfssDAOO(Sttrinng hhdfss, CConffiguurattionn coonf) thiss.hdffsPaath = hhdfss; thiss.connf = coonf; /hddfs路路徑privvatee Sttrinng hhdfssPatth; /Haadooop系統(tǒng)統(tǒng)配置privvatee Coonfiigurratiion
53、 connf; /啟動(dòng)動(dòng)函數(shù)publlicsstatticvvoidd maain(Strringg arggs) thrrowss IOOExccepttionn JoobCoonf connf = coonfiig(); HHdfssDAOO hddfs = nnew HdffsDAAO(cconff); /加載載Haddoopp配置文文件publlicsstattic JobbConnf cconffig() JoobCoonf connf = neewJoobCoonf(HdffsDAAO.cclasss); conff.seetJoobNaame(HddfsDDAO); conff.
54、adddReesouurcee($HHADOOOP_HOMME/eetc/haddoopp/coore-sitte.xxml); conff.adddReesouurcee($HHADOOOP_HOMME/eetc/haadooop/hhdfss-siite.xmll); conff.adddReesouurcee($HHADOOOP_HOMME/eetc/haadooop/mmaprred-sitte.xxml); retuurncconff; /在根根目錄下下創(chuàng)建文文件夾publlicvvoiddmkddirss(Sttrinng ffoldder) thhrowws IIOExxcepp
55、tioon Paath patth = neew PPathh(fooldeer); FiileSSysttem fs = FiileSSysttem.gett(URRI.ccreaate(hdffsPaath), cconff); if(!fs.eexissts(patth) fs.mmkdiirs(patth); SSysttem.outt.prrinttln(Crreatte: + fooldeer); fs.cclosse(); /某個(gè)個(gè)文件夾夾的文件件列表publlicFFileeStaatuss ls(Strringg fooldeer) thrrowss IOOExcceptti
56、onn Paath patth = neew PPathh(fooldeer); FiileSSysttem fs = FiileSSysttem.gett(URRI.ccreaate(hdffsPaath), cconff); FileeStaatuss lisst = fss.liistSStattus(patth); Syysteem.oout.priintlln(ls: + ffoldder); Syysteem.oout.priintlln(=); if(llistt != nuull) for (FiileSStattus f :liist) SSysttem.outt.prrin
57、ttf(%s, fooldeer: %s, 大小小: %dKn, f.geetPaath().ggetNNamee(), (ff.isDDir()?目錄:文件), f.geetLeen()/10024); Syysteem.oout.priintlln(=); fs.cclosse(); retuurnllistt; publlicvvoiddcoppyFiile(Strringg loocall, SStriing remmotee) thhrowws IIOExxcepptioon FiileSSysttem fs = FiileSSysttem.gett(URRI.ccreaate(hd
58、ffsPaath), cconff); /reemotte/用用戶/用戶下下的文件件或文件件夾fs.ccopyyFroomLoocallFille(neww Paath(loccal), nnew Patth(rremoote); SSysttem.outt.prrinttln(coopy froom: + loocall + tto + remmotee); fs.cclosse(); /刪除除文件或或文件夾夾publlicvvoiddrmrr(Sttrinng ffoldder) thhrowws IIOExxcepptioon Paath patth = neew PPathh(fool
59、deer); FiileSSysttem fs = FiileSSysttem.gett(URRI.ccreaate(hdffsPaath), cconff); fs.ddeleeteOOnExxit(patth); Syysteem.oout.priintlln(Delletee: + follderr); fs.cclosse(); /下載載文件到到本地系系統(tǒng)publlicvvoidddowwnlooad(Strringg reemotte, Strringg loocall) thhrowws IIOExxcepptioon Paath patth = neew PPathh(reemo
60、tte); FiileSSysttem fs = FiileSSysttem.gett(URRI.ccreaate(hdffsPaath), cconff); fs.ccopyyToLLocaalFiile(patth, neww Paath(loccal); Syysteem.oout.priintlln(dowwnlooad: frrom + remmotee + tto + loccal); fs.cclosse(); 三、功能能實(shí)現(xiàn)文件上傳傳功能:(1)選選擇要上上傳的文文件(2)上上傳完畢畢:主要代碼碼:publliccclasssUpploaadSeervlleteexteends
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025電纜租賃合同范本
- 2025年解除勞動(dòng)合同協(xié)議書下載
- 醫(yī)院入股協(xié)議合同范本
- 車輛貸款的合同范本
- 商鋪抵款合同范本
- 租賃協(xié)議車位合同范本
- 測(cè)繪協(xié)議合同范本
- 2025電商聯(lián)銷合同
- 飲品代理加盟合同范本
- 租公寓房合同范本
- 傳統(tǒng)白酒生產(chǎn)項(xiàng)目商業(yè)計(jì)劃書
- 2025年教師資格證考試綜合素質(zhì)(中學(xué))試題及答案
- 江蘇省淮安市2024-2025學(xué)年高一下學(xué)期期末考試物理試卷(解析版)
- 《基孔肯雅熱防控技術(shù)指南(2025年版)》解讀課件
- 2025年呼倫貝爾市生態(tài)環(huán)境局所屬事業(yè)單位引進(jìn)人才(2人)模擬試卷附答案詳解(綜合卷)
- 2025年中國(guó)建設(shè)銀行招聘考試(綜合知識(shí))歷年參考題庫(kù)含答案詳解(5套)
- BMS基礎(chǔ)知識(shí)培訓(xùn)課件
- 承接戰(zhàn)略貼近業(yè)務(wù)人力資源規(guī)劃設(shè)計(jì)到應(yīng)用
- 2025年廣元市專業(yè)技術(shù)人員公需科目繼續(xù)教育考試試題及答案
- 消防外管網(wǎng)維修合同范本
- 飛行員心理健康培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論