版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目:HHadooop完完全分布布式环境境下的网网盘项目目姓名:王王宏磊 学号:2011500080005466专业:软件工工程 班班级:115-001班手机:117866308872772姓名:苗苗纯源学学号:2201550088005524专专业:软软件工程程 班级级:155-011班手机:117866308858995项目要求满分实际得分分起评分达到题目目基本要要求50流畅性程序运行行过程完完整流畅畅,能清清楚说明明问题10美观性程序界面面美观舒舒适10回答问题题能正确回回答老师师就代码码和程序序设计的的问题10安装步骤骤清晰明了了10编程风格格程序书写写正规,程程序注释释完整规规范10
2、总评Partt1、安安装说明明一、虚拟拟机和llinuux系统统的安装装我们选择择的虚拟拟机是VVMwaare Worrksttatiion Proo14.0,llinuux系统统的版本本是CeentOOS-66.6-x866_644-biin-DDVD11.isso安装虚拟拟机,运运行VMMwarre WWorkkstaatioon PPro114.00,选择择合适的的安装路路径,从从网上找找到该版版本虚拟拟机的注注册码,输输入后一一直点下下一步直直到安装装完成即即可。安装liinuxx系统,打打开虚拟拟机,点点击文件件-新建虚虚拟机,选选择自定定义,下一步步,为了了防止版版本问题题,这里里
3、选择硬硬件兼容容性为110.xx,选择择linnux系系统镜像像的路径径,设置置linnux系系统的用用户名和和密码然然后点击击下一步步,处理理机数量量选择11个即可可,内存存暂时设设置为11g,若若以后内内存不够够可以再再修改,网网络类型型选择NNAT,剩剩下的均均为默认认设置,一一直下一一步直到到完成。完成之后后打开该该新建的的虚拟机机,虚拟拟机会自自动安装装linnux操操作系统统,等待待其安装装。安装装完成之之后输入入用户名名和密码码登录到到linnux系系统中。关闭防火火墙和sseliinuxx学习环境境可以直直接把防防火墙关关闭掉(1) 用rooot用用户登录录后,执执行查看看防火
4、墙墙状态。shelll命令令为: serrvicce iiptaablees sstattus(2) 用seerviice ipttablles stoop关闭闭防火墙墙,这个个是临时时关闭防防火墙。 (3) 如果果要永久久关闭防防火墙用用。chkcconffig ipttablles offfseliinuxx是Liinuxx一个子安安全机制制,学习习环境可可以将它它禁用。用命令vvim /ettc/ssyscconffig/sellinuux打开开文件设设置SEELINNUX为为dissablled。二、Haadooop开发发环境的的搭建1、3台台主机的的hosstnaame修修改和IIp
5、地址址绑定(三台主主机均以以rooot用户户登录)(1)33台主机机的基本本网络环环境CenttOS66,644位,在在虚拟机机下实现现。在虚拟机机下安装装了一个个cenntoss6系统统,然后后克隆该该虚拟机机为3个个虚拟机机,其IIp地址址和主机机名分别别如下:192.1988.1662.1133hhadooop192.1688.1662.1131hhadooop00192.1688.1662.1132hhadooop11(2)IIP地址址与hoostnnamee绑定在haddoopp主机下下,在控控制台中中输入vvi /etcc/syyscoonfiig/nnetwworkk,将hhos
6、ttnamme修改改为haadooop,在在haddoopp0主机机下操作作类似,将将HOSSTNAAME修修改为hhadooop00;在hhadooop11主机下下操作类类似,将将HOSSTNAAME修修改为hhadooop11。在haddoopp主机下下,输入入:vii /eetc/hossts,在在hossts下下添加如如下内容容192.1688.1662.1133 haadooop192.1688.1662.1131 haadooop0 192.1688.1662.1132 haadooop1 然后通过过scpp命令,将将修改好好的hoostss复制到到haddoopp0和hhadoo
7、op11的/eetc/hossts文文件夹下下覆盖:scp /eetc/hossts rooothaddoopp0:/etcc/hoostss scp /eetc/hossts rooothaddoopp1:/etcc/hoostss(3)测测试3太太主机之之间是否否能Piing通通在3台主主机下分分别输入入:pingg haadooop pingg haadooop0 pingg haadooop1 如果3太太主机都都能piing通通,那说说明前面面的配置置成功2、SSSH免密密码登录录在haddoopp主机下下:查看当前前用户下下(rooot)是否有有.sssh的隐隐藏文件件,如果果没有就
8、就创建一一个命令为mmkdiir .sshh(2)生成公公钥输入sssh-kkeyggen -t rsaa -PP (注注:最后后是二个个单引号号,表示示不设置置密码)然后分发发公钥到目标标机器ssh-coppy-iid -i /.sssh/id_rsaa.puub rrootthaddoopp1ssh-coppy-iid -i /.sssh/id_rsaa.puub rrootthaddoopp0 (注意不不要忘记记了参数数-i)(3)验验证SSSH是否否安装成成功,以以及是否否可以免免密码登登陆本机机ssh loocallhosstssh haddoopp0 ssh haddoopp1在第
9、一次次登陆是是需要密密码,以以后则不不要。到到此,sssh的的免密码码登陆完完成附:如果果失败,有有可能是是以下原原因(在在配置过过程中我我们遇到到的是第第一种情情况,权权限不足足):1、权限限问题.sshh目录,以以及/hhomee/当前前用户 需要7700权权限,参参考以下下操作调调整sudoo chhmodd 7000 /.ssshsudoo chhmodd 7000 /homme/当当前用户户.sshh目录下下的auuthoorizzed_keyys文件件需要6600或或6444权限,参参考以下下操作调调整sudoo chhmodd 6000 /.sssh/autthorrizeed_
10、kkeyss2、SttricctMoodess问题编辑sudoo vii /eetc/sshh/ssshd_connfigg找到#StrricttModdes yess改成StriictMModees nno如果还不不行,可可以用sssh -vvvv 目目标机器器ip 查看详详情,根根据输出出内容具具体问题题具体分分析了参考网址址: HYPERLINK /yjmyzz/p/4481720.html htttpss:/m/yjjmyzzz/pp/444817720.htmml3、安装装和配置置haddoopp(1)解解压安装装haddoopp2.99.0在haddoopp主机下下:下载并将将ha
11、ddoopp-2.9.00.taar.ggz解压压到当前前用户目目录下(/usrr/loocall)tar -zxxvf hhadooop-2.99.0.tarr.gzz然后将hhadooop文文件夹重重命名为为haddoopp。(2)配配置haadooop在haddoopp主机下下:进入haadooop文件件夹下的的etcc文件夹夹下的hhadooop文文件夹,修修改配置置文件。1.指定定jdkk安装位位置:Hadooop-envv.shh:expoort JAAVA_HOMME=/rooot/jjdk11.8/jdkk1.88.0_17112.haadooop核心心配置文文件,配配置HDD
12、FS地地址和段段口号。coree-siite.xmll fss.deefauult.namme hhdfss:/haddoopp:90000 haadooop.ttmp.dirr /usrr/loocall/haadooop/ttmp 3.hddfs-sitte.xxml,默默认的配配置方式式是3,这这里表示示副本数数是3,由由于我们们搭建的的子节点点只有22个,所所以输入入1或22hdfss-siite.xmll dffs.rrepllicaatioon 22 ddfs.perrmisssioonsfallse 3.1修修改coore-deffaullt.xxml文文件,不不然在之之后的ee
13、cliipsee编程时时会出现现fillesyysnootexxistt “hhdfss”的错错误,该该文件在在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文件件,如果果没有就就创一个个空白文文件改名名为maasteers。在其中写写入haadooop6.修改改slaavess文件写入haadooop0 hadooop117.然后后将haadooop文件件夹复制制到另外外2台主主机。scp -R /uuer/loccal/haddoopp rooothaddoopp0:/uerr/loocall /hhadooop scp -R /uuer/loccal/haddoopp rooothaddoopp1:/uerr
15、/loocall /HHadooop8. 修修改环境境变量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复制制到另外外两台主主机上scp /ettc/pproffilee rooothaddoopp0:/etcc/ scp /ettc/pproffilee roo
16、othaddoopp1:/etcc/注意请先先使用ssourrce /ettc/pproffilee更新命命令(3)启启动haadooop在haddoopp下:输入:hadooop nammenoode -foormaat然后通过过staart-alll.shh启动所所有进程程:.进入到到$HAADOOOP_HHOMEE/sbbin目目录下启启动sttartt-alll.ssh可以通过过jpss命令来来查看运运行的进进程, 如果果成功运运行,那那么将会会有如下下显示在haddoopp0和hhadooop11的shhelll中输入入jpss也会有有3个运运行,其其中daatannodee一定要要
17、检查是是否存在在,如果果不存在在说明配配置存在在问题。附:在配配置中,我我们遇到到dattanoode无无法启动动的问题题,经查查阅后了了解到是是由于我我们使用用的是664位llinuux系统统,需要要下载对对应的664位编编译版本本替换原原来的nnatiive文文件,下下载对应应文件后后,将准准备好的的64位位的liib包解解压到已已经安装装好的hhadooop安安装目录录的liib/nnatiive 和 llib目目录下:然后增增加环境境变量:vi /ettc/pproffilee增加下下面的内内容:expoort HADDOOPP_COOMMOON_LLIB_NATTIVEE_DIIR=
18、$HADDOOPP_HOOME/libb/naativveexpoort HADDOOPP_OPPTS=-DDjavva.llibrraryy.paath=$HAADOOOP_HHOMEE/liib让环境变变量生效效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启启动成功功,要想想看集群群状态,可可以打开开下面两两个网址址:locaalhoost:80888(mmaprreduuce的的webb页面,注注意haadooop2.0以前前的版本本端口号号为5000300,我使使用的是是2.99.0版版本,所所有端口口号为880888)locaalhoost:500070(HHDFSS的weeb页面面)三、搭建建并测试试开发环环境(JJAVAA)1、
20、JAAVAjjdk的的安装(1)查查看是否否已经安安装了jjavaa JDDK。Sheell下下输入jjavaa vverssionn注意:HHadooop机机器上的的JDKK,最好好是Orraclle的JJavaa JDDK,不不然会有有一些问问题,比比如可能能没有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,也也可以直直接在文文件系统统里右键键复制粘粘贴到对对应目录录接下来添添加环境境变量,设置JDDK的环环境变量量 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修改完毕毕后,执执行 ssourrce /ettc/pproffilee三台虚拟拟机上都都要进行行对应的的操作,或或者设置置好以个个虚拟机机的之后后,将相相应的文文件用sscp命命令复制制到另外外两台虚虚拟机上上安装后再再次执行行 jaava veersiion,可以看看见已经
23、经安装完完成。2、Toomcaat的安安装(1) 下载载 toomcaat LLinuux 版版本oraccle 官网下下载地址址: HYPERLINK /download-80.cgi htttp:/ttomccat.apaachee.orrg/ddownnloaad-880.ccgi我下载的的是appachhe-ttomccat-7.00.866.taar.ggz,注注意不要要下载88.0及及以上版版本,否否则之后后的编程程会提示示不兼容容问题(2) 在 uusr 目录下下新建 tommcatt 目录录,然后后将 下下载的 tommcatt 用工工具拷贝贝到这个个新建的的 toomcaat
24、目录录中(3) 解压 tommcatt 文件件, 由于于文件名名有点长长,我们们需要给给解压后后的文件件夹重命命名,以以便后面面引用方方便,我我改为了了tommcatt7.00(4) 配置置环境变变量(注意:这里我我们前提提是已经经安装并并配置好好了 JJDK)追加exxporrt CCATAALINNA_HHOMEE=/uusr/tommcatt/toomcaat7.0expoort PATTH=$JAVVA_HHOMEE/biin:$CATTALIINA_HOMME/bbin:$PAATH输入如下下命令让让配置生生效:ssourrce /ettc/pproffilee启动 ttomccat
25、进入到 /ussr/ttomccat/tommcatt7.00/biin 目目录下,输输入如下下命令./sttarttup.sh查看 ttomccat 是否启启动成功功ps -efiigreep jjavaa关闭的方方法为进进入到 /ussr/ttomccat/tommcatt8.55/biin 目目录下,输输入如下下命令./shhutddownn.shh验证是否否启动成成功启动toomcaat 之之后,在在浏览器器输入 htttp:loocallhosst:880800。如果果出现 tommcatt 的主主页则启启动成功功附:参考考资源;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,若无,则则添加;grooupaadd myssqluserraddd -rr -gg myysqll myysqll若
27、添加成成功则再再次grrouppsmyysqll时会如如下图进入myysqll目录更更改权限限cd /usrr/loocall/myysqll/chowwn -R mmysqql:mmysqql ./执行安装装脚本./sccrippts/myssql_insstalll_ddb usser=myssql安装完之之后修改改当前目目录拥有有者为rroott用户,修修改daata目目录拥有有者为mmysqqlchowwn -R rroott:rooot ./chowwn -R mmysqql:mmysqql ddataa先启动mmysqql,然然后更改改myssql密密码./suuppoort-fi
28、lles/myssql.serrverr sttartt如果MyySQLL启动报报错,则则可能是是已经存存在MyySQLL进程,杀杀掉即可可ps aaux|greep mmysqqlkilll -99 上边边的进程程号#或者下下边一条条命令即即可杀掉掉所有MMySQQL进程程ps aaux|greep mmysqql|aawk pprinnt $2|xaargss kiill -9MySQQL启动动之后再再执行如如下命令令更改密密码:./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;在数据库库中创建建一个hhadooop数数据库并并在haadooop数据据库中创创建一个个useers表表,为后后面的开开发做准准备增加远程程登录权权限本地登陆陆MySSQL后后执行如如下命令令grannt aall pr
30、iivillegees oon *.* to rooot% ideentiifieed bby rooot;flussh pprivvileegess;将MySSQL加加入Seerviice系系统服务务cp ssuppportt-fiiless/myysqll.seerveer /etcc/innit.d/mmysqqldchkcconffig -aadd myssqlddchkcconffig myssqldd onnservvicee myysqlld rresttartt serrvicce mmysqqld staatuss附:参考考网址:htttps:/t/wwwd05501/art
31、ticlle/ddetaailss/71117116144,注意该该网址中中的第九九步不要要修改mmy.ccnf文文件,否否则会导导致myysqll启动不不成功4、ecclippse安安装和配配置(1)官网下下载ecclippse,我下载载的是eecliipsee-jeee-llunaa-SRR2-llinuux-ggtk-x866_644.taar.ggz(2)解压安装装包到/rooot/下下改名为为ecllipsse(3)下载haadooop-eecliipsee-pllugiin-22.7.3.jjar并并放到eecliipsee下的pplugginss目录下下然后启动动ecllipss
32、e,打开eecliipseeWinndoww - prrefeerenncess找到hhadooop, 设置置haddoopp路径(4)配置eecliipsee开发ttomccat新建项目目, 选选择Weeb pprojjectt设置项目目名称选择neew RRunttimee在弹出对对话框配配置toomcaat版本本以及ttomccat位位置然后下一一步, 下一步步勾选weeb.xxml,并并完成(5) 链链接数据据库在Winndoww菜单栏栏下打开开Opeen PPerssperrtivve,选选择 DDataabasse DDeveeloppmennt。然后再DDataabasse CC
33、onnnecttionns文件件夹下邮邮件选择择Neww .;然后再UURL上上填上刚刚刚创建建的haadooop数据据库;点击 TTestt Coonneectiion,测测试链接接成功。至此,有有关haadooop网盘盘开发的的所有配配置已经经配置完完毕,接接下来就就可以开开始代码码部分了了PARTT2代码码部分UI界面面登录界面面:输入账号号密码正正确后会会登录到到该用户户的网盘盘,若该该用户不不存在可可以点击击注册进进行账号号的注册册,注册册完毕后后即可进进行登录录相关代码码:登录界面面数据提提交:我的网盘盘登录忘记密密码?记住我我使使用以下下账号直直接登录录QQ登录录微博登登录微信登
34、登录没没有账号号?立即注注册ssduwwh.ccom&nbssp;&nbssp;&nbssp;&nbssp;&nbssp;欢欢迎您使使用本网网盘对登录界界面提交交的数据据进行处处理: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)/用户户合法,跳跳转到界界面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/用户户不合法法,调回回登录界界面,并并提示错错误信息息 Syysteem.oout.priintlln(=Errrorr!=n);requuestt.geetReequeestDDisppatccherr
38、(looginn.jssp).foorwaard(reqquesst, ressponnse);注册界面面:用户输入入用户名名邮箱密密码验证证码之后后点击注注册即可可注册成成功,然然后用户户便可通通过登录录账号登登录到自自己的网网盘相关代码码注册界面面代码:我的网盘盘欢迎注注册已阅读读并同意意XXXXXX使使用协议议使使用以下下账号直直接注册册QQ注册册微博注注册微信注注册已已有账号号?立即登登录ssduwwh.ccom&nbssp;&nbssp;&nbssp;&nbssp;&nbssp;欢欢迎您使使用本网网盘对注册界界面提交交的数据据进行处处理: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 /获取取提交的的数据Strringg idd=reequeest.gettParrameeterr(iid);Strringg ussernnamee = reqquesst.ggetPParaametter(ussernnamee);Strringg paasswwordd = reqquesst.ggetPParaametter(paasswwordd);Strringg emmal = rrequuestt.geetPaarammete
41、er(emaal);/创建建新建用用户的对对象UseerCrreatte uubc = nnew UseerCrreatte();tryy if(ubcc.crreatteUsser(id,useernaame,passswoord,emaal)/用用户创建建成功,hdffs中创创建文件件夹JobbConnf cconff = HdffsDAAO.cconffig(); HddfsDDAO hdffs = neew HHdfssDAOO(coonf);hdfss.mkkdirrs(/+useernaame+/ttestt);/跳转转界面requuestt.geetReequeestDDispp
42、atccherr(llogiin.jjsp).fforwwardd(reequeest, reespoonsee);elsse/用用户创建建失败,调调回登录录界面,并并提示错错误信息息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();网盘主界界面:相关代码码:Maiin UUI! Coomprresssed Verrsioon BacckgrrounndsBlooc sstylleSiddebaar sstylle Hi, Useer |退出请输入入关键字字全部文件件用户信信
44、息用户名名手机号号邮箱密码修改信信息修改邮邮箱修改密密码更换绑绑定手机机号更多网盘文件文件名名属性大小删除下载%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?二、数据据交互数据库连连接:publliccclasss CConnnDB privvatee Coonneectiion ct = nuull;publlic Connnecctioon ggetCConnn()try /加载载驱动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;检测用户户登录是是否合法法: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();/创创建sttateemenntsm = cct.ccreaateSStattemeent();rs = ssm.eexeccuteeQueery(seelecct * frrom useers wheere useernaame=+usser+);if(rs.nexxt()/说说明用户户存在Strringg pwwd = rss.geetSttrinng(33);if(passswoord.equualss(pwwd)/说说明密码码正确b
50、 = trrue;elsseb = faalsee;elsseb = faalsee; ccatcch (SQLLExccepttionn e) e.prrinttStaackTTracce();finnalllythiss.cllosee();retturnn b;用户注注册部分分与数据据库的交交互主要要代码:publlicbboolleanncreeateeUseer(SStriing id,SStriing useer, Strringg paasswwordd,Sttrinng eemall) thhrowws SSQLEExceeptiionboolleannb = fallse;t
51、ry /获得得连接ct = neew CConnnDB().ggetCConnn();/创建建staatemmenttsm = ctt.crreatteSttateemennt();sm.eexeccutee(innserrt iintoo usserss vaaluees(+id+,+useer+,+emaal+,+passswoord+););b = truue;finnalllythiss.cllosee();retuurnbb;数据访问问层:HdfssDAOO.jaavapublliccclasss HHdfssDAOO /HDDFS访访问地址址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系统统配置privvatee Coonfiigurratiion
53、 connf; /启动动函数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; /在根根目录下下创建文文件夹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(); /某个个文件夹夹的文件件列表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(); /下载载文件到到本地系系统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(); 三、功能能实现文件上传传功能:(1)选选择要上上传的文文件(2)上上传完毕毕:主要代码码:publliccclasssUpploaadSeervlleteexteends
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海泰康养老行业纠纷群体性事件应急处置预案
- 2025年医药分析研究员面试题库及答案
- 2025年荔湾小学数学笔试真题及答案
- 2025年米易事业单位考试题及答案
- 2025年水木日语教师笔试题目及答案
- 2025年内蒙电力面试几天后笔试及答案
- 2025年迪博咨询笔试及答案
- 2025年教资中学结构化面试题库及答案
- 2026年高考语文全真模拟试卷及答案(二)
- 高端阻燃剂生产线项目可行性研究报告
- YY/T 0910.2-2025医用电气设备医学影像显示系统第2部分:医学影像显示系统的验收和稳定性试验
- 2025至2030中国减肥食品行业项目调研及市场前景预测评估报告
- 前置胎盘大出血休克护理查房
- 签字版离婚协议书范本
- 2026年山东胜利职业学院单招综合素质考试必刷测试卷及答案1套
- 中国烟草笔试试题及答案
- 招聘笔试题(某大型国企)2025年题库(附答案)
- 2025天津津南国有资本投资运营集团有限公司及实控子公司招聘工作人员招聘5人笔试历年参考题库附带答案详解(3卷合一)
- 2025-2030中国精酿啤酒市场消费特征与渠道拓展战略研究报告
- 2025年青海省高考生物真题(含答案解析)
- 廉洁从业宣教培训手册
评论
0/150
提交评论