hadoop网盘环境搭建-代码全部过程_第1页
hadoop网盘环境搭建-代码全部过程_第2页
hadoop网盘环境搭建-代码全部过程_第3页
hadoop网盘环境搭建-代码全部过程_第4页
hadoop网盘环境搭建-代码全部过程_第5页
已阅读5页,还剩72页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、题目:Haadooop完全全分布式式环境下下的网盘盘项目姓名:王宏宏磊 学学号:2201550088005546专专业:软软件工程程 班级级:155-011班手机:177863308772722姓名:苗纯纯源学号号:2001500080005224专业业:软件件工程 班级:15-01班班手机:177863308558955项目要求满分实际得分起评分达到题目基基本要求求50流畅性程序运行过过程完整整流畅,能能清楚说说明问题题10美观性程序界面美美观舒适适10回答问题能正确回答答老师就就代码和和程序设设计的问问题10安装步骤清晰明了10编程风格程序书写正正规,程程序注释释完整规规范10总评Part

2、1、安装说明一、虚拟机和linux系统的安装我们选择的虚拟机是VMware Workstation Pro14.0,linux系统的版本是CentOS-6.6-x86_64-bin-DVD1.iso安装虚拟机机,运行行VMwwaree Woorksstattionn Prro144.0,选选择合适适的安装装路径,从从网上找找到该版版本虚拟拟机的注注册码,输输入后一一直点下下一步直直到安装装完成即即可。安装linnux系系统,打打开虚拟拟机,点点击文件件-新建虚虚拟机,选选择自定定义,下一步步,为了了防止版版本问题题,这里里选择硬硬件兼容容性为110.xx,选择择linnux系系统镜像像的路径径

3、,设置置linnux系系统的用用户名和和密码然然后点击击下一步步,处理理机数量量选择11个即可可,内存存暂时设设置为11g,若若以后内内存不够够可以再再修改,网网络类型型选择NNAT,剩剩下的均均为默认认设置,一一直下一一步直到到完成。完成之后打打开该新新建的虚虚拟机,虚虚拟机会会自动安安装liinuxx操作系系统,等等待其安安装。安安装完成成之后输输入用户户名和密密码登录录到liinuxx系统中中。关闭防火墙墙和seelinnux学习环境可可以直接接把防火火墙关闭闭掉(1) 用用rooot用户户登录后后,执行行查看防防火墙状状态。shelll命令为为: sservvicee ipptabbl

4、ess sttatuus(2) 用用serrvicce iiptaablees sstopp关闭防防火墙,这这个是临临时关闭闭防火墙墙。 (3) 如果要要永久关关闭防火火墙用。chkcoonfiig iiptaablees ooffselinnux是是Linnux一一个子安安全机制制,学习习环境可可以将它它禁用。用命令viim /etcc/syyscoonfiig/sseliinuxx打开文文件设置置SELLINUUX为ddisaableed。二、Haddoopp开发环环境的搭搭建1、3台主主机的hhosttnamme修改改和Ipp地址绑绑定(三三台主机机均以rroott用户登登录)(1)3台

5、台主机的的基本网网络环境境CentOOS6,664位,在在虚拟机机下实现现。在虚拟机下下安装了了一个ccenttos66系统,然然后克隆隆该虚拟拟机为33个虚拟拟机,其其Ip地地址和主主机名分分别如下下:192.1198.1622.1333haadooop192.1168.1622.1331haadooop0192.1168.1622.1332haadooop1(2)IPP地址与与hosstnaame绑绑定在hadooop主主机下,在在控制台台中输入入vi /ettc/ssyscconffig/nettworrk,将将hosstnaame修修改为hhadooop,在hadoop0主机下操作类似

6、,将HOSTNAME修改为hadoop0;在hadoop1主机下操作类似,将HOSTNAME修改为hadoop1。在hadooop主主机下,输输入:vvi /etcc/hoostss,在hhostts下添添加如下下内容192.1168.1622.1333 haddoopp192.1168.1622.1331 haddoopp0 192.1168.1622.1332 haddoopp1 然后通过sscp命命令,将将修改好好的hoostss复制到到haddoopp0和hhadooop11的/eetc/hossts文文件夹下下覆盖:scp /ettc/hhostts rooothhadooop00:

7、/eetc/hossts scp /ettc/hhostts rooothhadooop11:/eetc/hossts(3)测试试3太主机之之间是否否能Piing通通在3台主机机下分别别输入:ping haddoopp ping haddoopp0 ping haddoopp1 如果3太主主机都能能pinng通,那那说明前前面的配配置成功功2、SSHH免密码码登录在hadooop主主机下:查看当前用用户下(rooot)是是否有.sshh的隐藏藏文件,如如果没有有就创建建一个命令为mkkdirr .sssh(2)生生成公钥钥输入sshh-keeygeen -t rrsa -P (注:最后是是二个

8、单单引号,表表示不设设置密码码)然后分发公公钥到目标标机器ssh-ccopyy-idd -ii /.sssh/iid_rrsa.pubb rooothaddoopp1ssh-ccopyy-idd -ii /.sssh/iid_rrsa.pubb rooothaddoopp0 (注意不不要忘记记了参数数-i)(3)验证证SSHH是否安安装成功功,以及及是否可可以免密密码登陆陆本机ssh loccalhhosttssh hhadooop00 ssh hhadooop11在第一次登登陆是需需要密码码,以后后则不要要。到此此,sssh的免免密码登登陆完成成附:如果失失败,有有可能是是以下原原因(在在配

9、置过过程中我我们遇到到的是第第一种情情况,权权限不足足):1、权限问问题.ssh目目录,以以及/hhomee/当前前用户 需要7700权权限,参参考以下下操作调调整sudo chmmod 7000 /.ssshsudo chmmod 7000 /hhomee/当前前用户.ssh目目录下的的autthorrizeed_kkeyss文件需需要6000或6644权权限,参参考以下下操作调调整sudo chmmod 6000 /.sssh/aauthhoriizedd_keeys2、StrricttModdes问问题编辑sudo vi /ettc/sssh/sshhd_cconffig找到#Strii

10、ctMModees yyes改成StricctMoodess noo如果还不行行,可以以用sssh -vvvv 目标标机器iip 查查看详情情,根据据输出内内容具体体问题具具体分析析了参考网址: HYPERLINK /yjmyzz/p/4481720.html htttps:/bbloggs.ccom/yjmmyzzz/p/448817220.hhtmll3、安装和和配置hhadooop(1)解压压安装hhadooop22.9.0在hadooop主主机下:下载并将hhadooop-2.99.0.tarr.gzz解压到到当前用用户目录录下(/usrr/loocall)tar -zxvvf haa

11、dooop-22.9.0.ttar.gz然后将haadooop文件件夹重命命名为hhadooop。(2)配置置haddoopp在hadooop主主机下:进入haddoopp文件夹夹下的eetc文文件夹下的hhadooop文文件夹,修修改配置置文件。1.指定jjdk安安装位置置:Hadooop-eenv.sh:exporrt JAVVA_HHOMEE=/rroott/jddk1.8/jjdk11.8.0_11712.haddoopp核心配配置文件件,配置置HDFFS地址址和段口口号。core-sitte.xxml fs.deffaullt.nnamee hddfs:/hhadooop:90000

12、 haddoopp.tmmp.ddir /uusr/loccal/haddoopp/tmmp 3.hdffs-ssitee.xmml,默默认的配配置方式式是3,这这里表示示副本数数是3,由由于我们们搭建的的子节点点只有22个,所所以输入入1或22hdfs-sitte.xxml dfss.reepliicattionn 2 dffs.ppermmisssionnsffalsse 3.1修改改corre-ddefaaultt.xmml文件件,不然然在之后后的ecclippse编编程时会会出现ffileesyssnottexiist “hddfs”的错误,该文件在hadoop安装目录下的/share

13、/doc/Hadoop/hadoop-project-dist/hadoop-common/下 fs.hdffs.iimpll orrg.aapacche.haddoopp.hddfs.DisstriibuttedFFileeSysstemm Thhe FFileeSysstemm foor hhdfss: uuriss.4.配置MMapRReduuce文文件,配配置JoobTrrackker的的地址和和端口mapreed-ssitee.xmml maapreed.jjob.traackeer hhadooop:90001 5修改mmastterss文件,如如果没有有就创一一个空白白文件改改名

14、为mmastterss。在其中写入入haddoopp6.修改sslavves文文件写入haddoopp0 hadooop17.然后将将haddoopp文件夹夹复制到到另外22台主机机。scp -R /uuer/loccal/haddoopp rooothaddoopp0:/uerr/loocall /hhadooop scp -R /uuer/loccal/haddoopp rooothaddoopp1:/uerr/loocall /HHadooop8. 修改改环境变变量vi /eetc/proofilleexporrt JJAVAA_HOOME=/rooot/jdkk1.88/jddk1.8

15、.00_1771exporrt HHADOOOP_HOMME=/usrr/loocall/haadooop exporrt PPATHH=.:$HAADOOOP_HHOMEE/biin:$JAVVA_HHOMEE/biin:$PATTH同样,将pproffilee复制到到另外两两台主机机上scp /etcc/prrofiile rooothhadooop00:/eetc/ scp /etcc/prrofiile rooothhadooop11:/eetc/注意请先使使用soourcce /etcc/prrofiile更更新命令令(3)启动动haddoopp在hadooop下下:输入:hadoo

16、op nnameenodde -forrmatt然后通过sstarrt-aall.sh启启动所有有进程:.进入到$HADDOOPP_HOOME/sbiin目录录下启动动staart-alll.shh可以通过jjps命命令来查查看运行行的进程程, 如果果成功运运行,那那么将会会有如下下显示在hadooop00和haadooop1的的sheell中中输入jjps也也会有33个运行行,其中中dattanoode一一定要检检查是否否存在,如如果不存存在说明明配置存存在问题题。附:在配置置中,我我们遇到到dattanoode无无法启动动的问题题,经查查阅后了了解到是是由于我我们使用用的是664位llin

17、uux系统统,需要要下载对对应的664位编编译版本本替换原原来的nnatiive文文件,下下载对应应文件后后,将准准备好的的64位位的liib包解解压到已已经安装装好的hhadooop安安装目录录的liib/nnatiive 和 llib目目录下:然后增增加环境境变量:vi /ettc/pproffilee增加下下面的内内容:exporrt HHADOOOP_COMMMONN_LIIB_NNATIIVE_DIRR=$HHADOOOP_HOMME/llib/nattiveeexporrt HHADOOOP_OPTTS=-Djjavaa.liibraary.patth=$HADDOOPP_HOOM

18、E/libb让环境变量量生效ssourrce /ettc/pproffilee 自检haddoopp chheckknattivee aa 指令令检查hhadooop cheecknnatiive a 参考地址: HYPERLINK /jack85986370/article/details/51902871 htttps:/t/jaack88598863770/aartiiclee/deetaiils/5199028871httpss:/m/faanfaanfaantaasy/p/4412334122.httml至此,haadooop启动动成功,要要想看集集群状态态,可以以打开下下面两个个网

19、址:locallhosst:880888(maapreeducce的wweb页页面,注注意haadooop2.0以前前的版本本端口号号为5000300,我使使用的是是2.99.0版版本,所所有端口口号为880888)locallhosst:5500770(HHDFSS的weeb页面面)三、搭建并并测试开开发环境境(JAAVA)1、JAVVAjddk的安安装(1)查看看是否已已经安装装了jaava JDKK。Shelll下输输入jaava veersiion注意:Haadooop机器器上的JJDK,最最好是OOraccle的的Javva JJDK,不不然会有有一些问问题,比比如可能能没有JJPS

20、命命令。 如果安装了了其他版版本的JJDK,卸卸载掉。安装javva JJDK去下载Orraclle版本本Javva JJDK:我下载载的是11.8版版本的jjdk-8u1171-linnux-x644.taar.ggz,然然后将jdkk-8uu1711-liinuxx-x664.ttar.gz解解压到你你想安装装的目录录下,这这里我选选的目录录是/rroott/jddk1.8Shelll命令为为tarr -zzxvff jddk-88u1771-llinuux-xx64.tarr.gzz -CC /rroott/jddk1.8,也也可以直直接在文文件系统统里右键键复制粘粘贴到对对应目录录接下

21、来添加加环境变变量,设置JDDK的环环境变量量 JAAVA_HOMME。需需要修改改配置文文件/eetc/proofille,追加exporrt JJAVAA_HOOME=/rooot/jdkk1.88/jddk1.8.00_1771exporrt CCLASSSPAATH=.:/rooot/jjdk11.8/jdkk1.88.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.jjarexporrt PPATHH=

22、$JJAVAA_HOOME/binn:$PPATHH修改完毕后后,执行行 soourcce /etcc/prrofiile三台虚拟机机上都要要进行对对应的操操作,或或者设置置好以个个虚拟机机的之后后,将相相应的文文件用sscp命命令复制制到另外外两台虚虚拟机上上安装后再次次执行 javva verrsioon,可可以看见见已经安安装完成成。2、Tommcatt的安装装(1) 下载 tommcatt Liinuxx 版本本oraclle 官官网下载载地址: HYPERLINK /download-80.cgi htttp:/g/doownlloadd-800.cggi我下载的是是apaachee

23、-toomcaat-77.0.86.tarr.gzz,注意意不要下下载8.0及以以上版本本,否则则之后的的编程会会提示不不兼容问问题(2) 在 uusr 目录下下新建 tommcatt 目录录,然后后将 下下载的 tommcatt 用工工具拷贝贝到这个个新建的的 toomcaat目录录中(3) 解解压 ttomccat 文件, 由于于文件名名有点长长,我们们需要给给解压后后的文件件夹重命命名,以以便后面面引用方方便,我我改为了了tommcatt7.00(4) 配置环环境变量量(注意:这里我我们前提提是已经经安装并并配置好好了 JJDK)追加expportt CAATALLINAA_HOOME=

24、/ussr/ttomccat/tommcatt7.00exporrt PPATHH=$JJAVAA_HOOME/binn:$CCATAALINNA_HHOMEE/biin:$PATTH输入如下命命令让配配置生效效:soourcce /etcc/prrofiile启动 toomcaat进入到 /usrr/toomcaat/ttomccat77.0/binn 目录录下,输输入如下下命令./staartuup.ssh查看 toomcaat 是是否启动动成功ps -eefiggrepp jaava关闭的方法法为进入入到 /usrr/toomcaat/ttomccat88.5/binn 目录录下,输输入

25、如下下命令./shuutdoown.sh验证是否启启动成功功启动tommcatt 之后后,在浏浏览器输输入 hhttpp:loccalhhostt:80080。如如果出现现 toomcaat 的的主页则则启动成成功附:参考资资源;hhttpp:/t/arrticcle/11666544.httm3、myysqll安装 (1) 下载mmysqql的llinuux版本本,我这这里下载载的是mmysqql-55.6.40-linnux-gliibc22.122-x886_664.ttar.gz (2) 将安安装包解解压到/usrr/loocall下并改改名为mmysqql(3) 添加mmysqql用

26、户户组和mmysqql用户户先检查是否否有myysqll用户组组和myysqll用户,命令为为grooupss myysqll,若无,则则添加;grooupaadd myssqluseraadd -r -g myssql myssql若添加成功功则再次次grooupssmyssql时时会如下下图进入myssql目目录更改改权限cd /uusr/loccal/myssql/chownn -RR myysqll:myysqll ./执行安装脚脚本./scrriptts/mmysqql_iinsttalll_dbb useer=mmysqql安装完之后后修改当当前目录录拥有者者为rooot用用户,修

27、修改daata目目录拥有有者为mmysqqlchownn -RR rooot:rooot ./chownn -RR myysqll:myysqll daata先启动myysqll,然后后更改myysqll密码./suppporrt-ffilees/mmysqql.sservver staart如果MySSQL启启动报错错,则可可能是已已经存在在MySSQL进进程,杀杀掉即可可ps auux|ggrepp myysqllkill -9 上边的的进程号号#或者下边边一条命命令即可可杀掉所所有MyySQLL进程ps auux|ggrepp myysqll|awwk prrintt $22|xarrg

28、s killl -9MySQLL启动之之后再执执行如下下命令更更改密码码:./binn/myysqlladmmin -u rooot -h llocaalhoost.loccalddomaain passswoord rooot密码更改后后即可登登录MyySQLL./binn/myysqll -hh121 -uurooot -prooot登录之后将将其他用用户的密密码也可可改为rroottupdatte mmysqql.uuserr seet ppasssworrd=ppasssworrd(rooot) whheree usser=rooot;flushh prriviileg

29、ges;在数据库中中创建一一个haadooop数据据库并在在haddoopp数据库库中创建建一个uuserrs表,为为后面的的开发做做准备增加远程登登录权限限本地登陆MMySQQL后执执行如下下命令grantt alll pprivvileegess onn *.* tto rroott% iidenntiffiedd byy rroott;flushh prriviilegges;将MySQQL加入入Serrvicce系统统服务cp suuppoort-filles/myssql.serrverr /eetc/iniit.dd/myysqlldchkcoonfiig addd mmysqql

30、dchkcoonfiig mmysqqld onserviice myssqldd reestaart servvicee myysqlld sstattus附:参考网网址:hhttpps:/bllog.csddn.nnet/wwdd05001/aartiiclee/deetaiils/7111716614,注意该该网址中中的第九九步不要要修改mmy.ccnf文文件,否否则会导导致myysqll启动不不成功4、ecllipsse安装装和配置置(1)官官网下载载ecllipsse,我下载载的是eecliipsee-jeee-llunaa-SRR2-llinuux-ggtk-x866_644.ta

31、ar.ggz(2)解解压安装装包到/rooot/下下改名为为ecllipsse(3)下下载haadooop-eecliipsee-pllugiin-22.7.3.jjar并并放到eecliipsee下的pplugginss目录下下然后启动eecliipsee,打开eecliipseeWinndoww - prrefeerenncess找到hhadooop, 设置置haddoopp路径(4)配配置ecclippse开开发toomcaat新建项目, 选择择Webb prrojeect设置项目名名称选择neww Ruuntiime在弹出对话话框配置置tommcatt版本以以及toomcaat位置置然

32、后下一步步, 下下一步勾选webb.xmml,并并完成(5) 链接接数据库库在Winddow菜菜单栏下下打开OOpenn Peerspperttivee,选择择 Daatabbasee Deevellopmmentt。然后再Daatabbasee Coonneectiionss文件夹夹下邮件件选择NNew .;然后再URRL上填填上刚刚刚创建的的haddoopp数据库库;点击 Teest Connnecctioon,测测试链接接成功。至此,有关关haddoopp网盘开开发的所所有配置置已经配配置完毕毕,接下下来就可可以开始始代码部部分了PART22代码部部分UI界面登录界面:输入账号密密码正确

33、确后会登登录到该该用户的的网盘,若若该用户户不存在在可以点点击注册册进行账账号的注注册,注注册完毕毕后即可可进行登登录相关代码:登录界面数数据提交交:我的网盘盘登登录忘记密密码?记住我我使用用以下账账号直接接登录QQ登录录微博登登录微信登登录没有有账号?立即注注册sdduwhh.coom&nnbspp;&nnbspp;&nnbspp;&nnbspp;&nnbspp;欢迎迎您使用用本网盘盘对登录界面面提交的的数据进进行处理理:publiiccllasssLogginSServvlettexttendds HHttppSerrvleet proteecteedvooidddoGeet(HHttpp

34、SerrvleetReequeest reqquesst, HtttpSeervlletRRespponsse rrespponsse) thrrowss SeervlletEExceeptiion, IOOExccepttionn this.doPPostt(reqquesst, ressponnse);proteecteedvooidddoPoost(HtttpSeervlletRRequuestt reequeest, HtttpSServvlettRessponnse ressponnse) thhrowws SServvlettExccepttionn, IIOExxcepptioo

35、n Striing useernaame = rrequuestt.geetPaarammeteer(ussernnamee);Striing passswoord = rrequuestt.geetPaarammeteer(paasswwordd);UserrBeaanCll ubbc = neewUsserBBeannCl();if(ubbc.cchecckUsser(useernaame, paasswwordd)/用户合合法,跳跳转到界界面HttppSesssioon ssesssionn = reqquesst.ggetSSesssionn(); sessiion.settAtttr

36、ibbutee(ussernnamee, useernaame);JobCConff coonf = HHdfssDAOO.coonfiig(); HddfsDDAO hdffs = neew HHdfssDAOO(coonf);FileSStattus liist = hhdfss.lss(/+useernaame);requeest.settAtttribbutee(liist,lisst);requeest.gettReqquesstDiispaatchher(inndexx.jssp?uuserr=+useernaame+).forrwarrd(rrequuestt, reespoon

37、see);elsee/用户不不合法,调调回登录录界面,并并提示错错误信息息 Sysstemm.ouut.pprinntlnn(=Errror!=nn);requeest.gettReqquesstDiispaatchher(looginn.jssp).foorwaard(reqquesst, ressponnse);注册界面:用户输入用用户名邮邮箱密码码验证码码之后点点击注册册即可注注册成功功,然后后用户便便可通过过登录账账号登录录到自己己的网盘盘相关代码注册界面代代码:我的网盘盘欢欢迎注册册已阅读读并同意意XXXXXX使使用协议议使用用以下账账号直接接注册QQ注册册微博注注册微信注注册已有有

38、账号?立即登登录sdduwhh.coom&nnbspp;&nnbspp;&nnbspp;&nnbspp;&nnbspp;欢迎迎您使用用本网盘盘对注册界面面提交的的数据进进行处理理:publiic cclasss CCreaateSServvlett exxtennds HtttpSeervlletprottectted voiid ddoGeet(HHttppSerrvleetReequeest reqquesst, HtttpSeervlletRRespponsse rrespponsse) thrrowss SeervlletEExceeptiion, IOOExccepttionn th

39、is.doPPostt(reequeest, reespoonsee);prottectted voiid ddoPoost(HtttpSeervlletRRequuestt reequeest, HtttpSServvlettRessponnse ressponnse) thhrowws SServvlettExccepttionn, IIOExxcepptioon /获取提提交的数数据Striing id=reqquesst.ggetPParaametter(idd);Striing useernaame = rrequuestt.geetPaarammeteer(useernaame);

40、Striing passswoord = rrequuestt.geetPaarammeteer(passswoord);Striing emaal = reequeest.gettParrameeterr(eemall);/创建新新建用户户的对象象UserrCreeatee ubbc = neew UUserrCreeatee();try if(uubc.creeateeUseer(iid,uuserrnamme,ppasssworrd,eemall)/用户户创建成成功,hdffs中创创建文件件夹JobCConff coonf = HHdfssDAOO.coonfiig(); HdffsDA

41、AO hhdfss = neww HddfsDDAO(connf);hdfs.mkddirss(/+uuserrnamme+/teest);/跳转界界面requeest.gettReqquesstDiispaatchher(looginn.jssp).foorwaard(reqquesst, ressponnse);elsee/用户户创建失失败,调调回登录录界面,并并提示错错误信息息Systtem.outt.prrinttln(innserrt iintoo usserss vaaluees(+iid+,+uuserrnamme+,+eemall+,+paasswwordd+););reque

42、est.gettReqquesstDiispaatchher(zhhucee.jssp).foorwaard(reqquesst, ressponnse); caatchh (SSQLEExceeptiion e) / TTODOO Auuto-genneraatedd caatchh bllockkSysttem.outt.prrinttln(innserrt iintoo usserss vaaluees(+iid+,+uuserrnamme+,+eemall+,+paasswwordd+););e.priintSStacckTrracee();网盘主界面面:相关代码:Maiin UUI!

43、- Commpreesseed VVerssionn -BacckgrrounndsBlooc sstylleSiddebaar sstylle HHi, Useer |退出请输入入关键字字全部文件用户信信息用户名名手机号号邮箱密码修改信信息修改邮邮箱修改密密码更换绑绑定手机机号更多网盘文件文文件名属属性大大小删删除下下载%Striing patth=nnulll;pathh=liist0.gettPatth().tooStrringg().subbstrringg(188,liist0.gettPatth().tooStrringg().lenngthh()-lisst00.ggetPPat

44、hh().gettNamme().tooStrringg().lenngthh().tooStrringg();if(liist != nulll)for (intt i=0; i%if(liisti.isDDir()out.priint( +liisti.gettPatth().geetNaame()+);elseeout.priint(+liisti.gettPatth().geetNaame()+);%ahreef=DelleteeFilleSeervllet?fillePaath=&mmypaath=ahreef=DowwnlooadSServvlett?fiilePPathh=&mm

45、ypaath=下载formmclaass=foorm-inllineemetthodd=POOSTencctyppe=MUULTIIPARRT/FFORMM-DAATAacttionn=UpploaadSeervllet?fillepaath=?12 2122?二、数据交交互数据库连接接:publiiccllasss CoonnDDB privaate Connnecctioon cct = nuull;publiic CConnnecttionn geetCoonn()try /加载驱驱动Classs.fforNNamee(comm.myysqll.jddbc.Driiverr);/得到连连

46、接ct = DriiverrMannageer.ggetCConnnecttionn(jdbbc:mmysqql:/loocallhosst:333066/haadooop?uuserr=rooot&passswoord=rooot); caatchh (EExceeptiion e) / TOODO Autto-ggeneeratted cattch bloocke.priintSStacckTrracee();returrnctt;检测用户登登录是否否合法:publiic cclasss UUserrBeaanCll privvatee Sttateemennt ssm = nuull;p

47、rivvatee Coonneectiion ct = nnulll;privvatee ReesulltSeet rrs = nuull;publlic voiid cclosse()try if(smm != nuull)sm.cllosee();sm = nuull;if(ctt != nuull)ct.cllosee();ct = nuull;if(rss != nuull)rs.cclosse();rs = nuull;catcch (SQLLExccepttionn e) / TTODOO Auuto-genneraatedd caatchh bllockke.priintSSta

48、cckTrracee();/检查查登录用用户是否否合法publlic boooleaan cchecckUsser(Strringg usser, Sttrinng ppasssworrd)boolleann b = ffalsse;try /获得得连接ct = neew CConnnDB().ggetCConnn();/创建建staatemmenttsm = ctt.crreatteSttateemennt();rs = smm.exxecuuteQQuerry(sellectt * froom uuserrs wwherre uuserrnamme=+useer+);if(rrs.nnex

49、tt()/说明明用户存存在Striing pwdd = rs.gettStrringg(3);if(ppasssworrd.eequaals(pwdd)/说明明密码正正确b = truue;elseeb = fallse;elseeb = fallse; caatchh (SSQLEExceeptiion e) e.priintSStacckTrracee();finaallyythis.cloose();retuurn b;用户注册册部分与与数据库库的交互互主要代代码:publiicboooleeanccreaateUUserr(Sttrinng iid,SStriing useer, St

50、rringg paasswwordd,Sttrinng eemall) thhrowws SSQLEExceeptiionbooleeanbb = fallse;try /获得连连接ct = neww CoonnDDB().geetCoonn();/创建sstattemeentsm = ct.ccreaateSStattemeent();sm.exxecuute(innserrt iintoo usserss vaaluees(+id+,+useer+,+emaal+,+passswoord+););b = ttruee;finaallyythis.cloose();returrnb;数据访问

51、层层:HdfsDDAO.javvapubliiccllasss HddfsDDAO /HDFFS访问问地址privaatesstatticffinaal SStriing HDFFS = hhdfss:/haddoopp:90000; publiicHddfsDDAO(Connfigguraatioon cconff) this(HDFFS, connf); publiicHddfsDDAO(Strringg hddfs, Coonfiigurratiion connf) this.hdffsPaath = hhdfss; this.connf = coonf; /hdffs路径径privaa

52、te Strringg hddfsPPathh; /Haddoopp系统配配置privaate Connfigguraatioon cconff; /启动函函数publiicsttatiicvooid maiin(SStriing arrgs) thhrowws IIOExxcepptioon JobbConnf cconff = connfigg(); HddfsDDAO hdffs = neew HHdfssDAOO(coonf); /加载HHadooop配配置文件件publiicsttatiic JJobCConff coonfiig() JobbConnf cconff = newwJ

53、obbConnf(HHdfssDAOO.cllasss); conf.settJobbNamme(HddfsDDAO); conf.adddRessourrce($HHADOOOP_HOMME/eetc/haddoopp/coore-sitte.xxml); conf.adddRessourrce($HHADOOOP_HOMME/eetc/haadooop/hhdfss-siite.xmll); conf.adddRessourrce($HHADOOOP_HOMME/eetc/haadooop/mmaprred-sitte.xxml); returrncoonf; /在根目目录下创创建文件件夹

54、publiicvooidmmkdiirs(Strringg fooldeer) thrrowss IOOExccepttionn Patth ppathh = neww Paath(follderr); FilleSyysteem ffs = FiileSSysttem.gett(URRI.ccreaate(hdffsPaath), cconff); if(!ffs.eexissts(patth) fs.mkkdirrs(patth); Syysteem.oout.priintlln(Creeatee: + follderr); fs.cllosee(); /某个文文件夹的的文件列列表publ

55、iicFiileSStattus lls(SStriing follderr) thhrowws IIOExxcepptioon Patth ppathh = neww Paath(follderr); FilleSyysteem ffs = FiileSSysttem.gett(URRI.ccreaate(hdffsPaath), cconff); FileSStattus liist = ffs.llisttStaatuss(paath); Sysstemm.ouut.pprinntlnn(lls: + fooldeer); Sysstemm.ouut.pprinntlnn(=); if(

56、liist != nulll) for (FilleSttatuus ff :liist) Syysteem.oout.priintff(%s, follderr: %s, 大小: %dKKn, f.geetPaath().ggetNNamee(), (ff.isDDir()?目录:文件), f.geetLeen()/10024); Sysstemm.ouut.pprinntlnn(=); fs.cllosee(); returrnliist; publiicvooidccopyyFille(SStriing loccal, Sttrinng rremoote) thhrowws IIOExx

57、cepptioon FilleSyysteem ffs = FiileSSysttem.gett(URRI.ccreaate(hdffsPaath), cconff); /remmotee/用户户/用户下下的文件件或文件件夹yFFrommLoccalFFilee(neww Paath(loccal), nnew Patth(rremoote); Syysteem.oout.priintlln(coppy ffromm: + loccal + too + rremoote); fs.cllosee(); /删除文文件或文文件夹publiicvooidrrmr(Strringg fooldeer)

58、 thrrowss IOOExccepttionn Patth ppathh = neww Paath(follderr); FilleSyysteem ffs = FiileSSysttem.gett(URRI.ccreaate(hdffsPaath), cconff); fs.deeletteOnnExiit(patth); Sysstemm.ouut.pprinntlnn(DDeleete: + ffoldder); fs.cllosee(); /下载文文件到本本地系统统publiicvooidddownnloaad(SStriing remmotee, SStriing loccal)

59、 thhrowws IIOExxcepptioon Patth ppathh = neww Paath(remmotee); FilleSyysteem ffs = FiileSSysttem.gett(URRI.ccreaate(hdffsPaath), cconff); yTToLoocallFille(patth, neww Paath(loccal); Sysstemm.ouut.pprinntlnn(ddownnloaad: froom + rremoote + too + llocaal); fs.cllosee(); 三、功能实实现文件上传功功能:(1)选择择要上传传的文件件(2

60、)上传传完毕:主要代码:publiiccllasssUplloaddSerrvleetexxtennds HtttpSeervllet /* * seee HtttpSServvlett#dooGett(HtttpSServvlettReqquesst rrequuestt, HHttppSerrvleetReespoonsee reespoonsee) */proteecteedvooidddoGeet(HHttppSerrvleetReequeest reqquesst, HtttpSeervlletRRespponsse rrespponsse) thrrowss SeervlletEE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论