收藏 分销(赏)

人力资源-hadoop网盘环境搭建-代码全部过程(41页).docx

上传人:xrp****65 文档编号:8485833 上传时间:2025-02-14 格式:DOCX 页数:41 大小:1.40MB 下载积分:10 金币
下载 相关 举报
人力资源-hadoop网盘环境搭建-代码全部过程(41页).docx_第1页
第1页 / 共41页
人力资源-hadoop网盘环境搭建-代码全部过程(41页).docx_第2页
第2页 / 共41页


点击查看更多>>
资源描述
题目:Hadoop完全分布式环境下的网盘项目 姓名:王宏磊 学号:201500800546 专业:软件工程 班级:15-01班 手机:17863087272 姓名:苗纯源 学号:201500800524 专业:软件工程 班级:15-01班 手机:17863085895 项目 要求 满分 实际得分 起评分 达到题目基本要求 50 流畅性 程序运行过程完整流畅,能清楚说明问题 10 美观性 程序界面美观舒适 10 回答问题 能正确回答老师就代码和程序设计的问题 10 安装步骤 清晰明了 10 编程风格 程序书写正规,程序注释完整规范 10 总评 Part1、安装说明 一、虚拟机和linux系统的安装 我们选择的虚拟机是VMware Workstation Pro14.0,linux系统的版本是CentOS-6.6-x86_64-bin-DVD1.iso (1) 安装虚拟机,运行VMware Workstation Pro14.0,选择合适的安装路径,从网上找到该版本虚拟机的注册码,输入后一直点下一步直到安装完成即可。 (2) 安装linux系统,打开虚拟机,点击文件->新建虚拟机,选择自定义,下一步,为了防止版本问题,这里选择硬件兼容性为10.x,选择linux系统镜像的路径,设置linux系统的用户名和密码然后点击下一步,处理机数量选择1个即可,内存暂时设置为1g,若以后内存不够可以再修改,网络类型选择NAT,剩下的均为默认设置,一直下一步直到完成。 完成之后打开该新建的虚拟机,虚拟机会自动安装linux操作系统,等待其安装。安装完成之后输入用户名和密码登录到linux系统中。 (3) 关闭防火墙和selinux 学习环境可以直接把防火墙关闭掉 (1) 用root用户登录后,执行查看防火墙状态。 shell命令为: service iptables status (2) 用service iptables stop关闭防火墙,这个是临时关闭防火墙。 (3) 如果要永久关闭防火墙用。 chkconfig iptables off selinux是Linux一个子安全机制,学习环境可以将它禁用。 用命令vim /etc/sysconfig/selinux打开文件设置SELINUX为disabled。 二、Hadoop开发环境的搭建 1、3台主机的hostname修改和Ip地址绑定(三台主机均以root用户登录) (1)3台主机的基本网络环境 CentOS6,64位,在虚拟机下实现。 在虚拟机下安装了一个centos6系统,然后克隆该虚拟机为3个虚拟机,其Ip地址和主机名分别如下: 192.198.162.133 hadoop 192.168.162.131 hadoop0 192.168.162.132 hadoop1 (2)IP地址与hostname绑定 在hadoop主机下,在控制台中输入vi /etc/sysconfig/network,将hostname修改为hadoop,在hadoop0主机下操作类似,将HOSTNAME修改为hadoop0;在hadoop1主机下操作类似,将HOSTNAME修改为hadoop1。 在hadoop主机下,输入:vi /etc/hosts,在hosts下添加如下内容 192.168.162.133 hadoop 192.168.162.131 hadoop0 192.168.162.132 hadoop1 然后通过scp命令,将修改好的hosts复制到hadoop0和hadoop1的/etc/hosts文件夹下覆盖: scp /etc/hosts root@hadoop0:/etc/hosts scp /etc/hosts root@hadoop1:/etc/hosts (3)测试3太主机之间是否能Ping通 在3台主机下分别输入: ping hadoop ping hadoop0 ping hadoop1 如果3太主机都能ping通,那说明前面的配置成功 2、SSH免密码登录 在hadoop主机下: (1) 查看当前用户下(root)是否有.ssh的隐藏文件,如果没有就创建一个 命令为mkdir .ssh (2) 生成公钥 输入ssh-keygen -t rsa -P '' (注:最后是二个单引号,表示不设置密码) 然后分发公钥到目标机器 ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop1 ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop0 (注意不要忘记了参数-i) (3)验证SSH是否安装成功,以及是否可以免密码登陆本机 ssh localhost ssh hadoop0 ssh hadoop1 在第一次登陆是需要密码,以后则不要。到此,ssh的免密码登陆完成 附: 如果失败,有可能是以下原因(在配置过程中我们遇到的是第一种情况,权限不足): 1、权限问题 .ssh目录,以及/home/当前用户 需要700权限,参考以下操作调整 sudo chmod 700 ~/.ssh sudo chmod 700 /home/当前用户 .ssh目录下的authorized_keys文件需要600或644权限,参考以下操作调整 sudo chmod 600 ~/.ssh/authorized_keys 2、StrictModes问题 编辑 sudo vi /etc/ssh/sshd_config 找到 #StrictModes yes 改成 StrictModes no 如果还不行,可以用ssh -vvv 目标机器ip 查看详情,根据输出内容具体问题具体分析了 参考网址: 3、安装和配置hadoop (1)解压安装hadoop2.9.0 在hadoop主机下: 下载并将hadoop-2.9.0.tar.gz解压到当前用户目录下(/usr/local) tar -zxvf hadoop-2.9.0.tar.gz 然后将hadoop文件夹重命名为hadoop。 (2)配置hadoop 在hadoop主机下: 进入hadoop文件夹下的etc文件夹下的hadoop文件夹,修改配置文件。 1.指定jdk安装位置: Hadoop-env.sh: export JAVA_HOME=/root/jdk1.8/jdk1.8.0_171 2.hadoop核心配置文件,配置HDFS地址和段口号。 core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration> 3.hdfs-site.xml,默认的配置方式是3,这里表示副本数是3,由于我们搭建的子节点只有2个,所以输入1或2 hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> 3.1修改core-default.xml文件,不然在之后的eclipse编程时会出现file sys not exist “hdfs”的错误,该文件在hadoop安装目录下的/share/doc/Hadoop/hadoop-project-dist/hadoop-common/下 <property> <name>fs.hdfs.impl</name> <value>org.apache.hadoop.hdfs.DistributedFileSystem</value> <description>The FileSystem for hdfs: uris.</description> </property> 4.配置MapReduce文件,配置JobTracker的地址和端口 mapred-site.xml <configuration> <property> <name>mapred.job.tracker</name> <value>hadoop:9001</value> </property> </configuration> 5‘修改masters文件,如果没有就创一个空白文件改名为masters。 在其中写入hadoop 6.修改slaves文件 写入hadoop0 hadoop1 7.然后将hadoop文件夹复制到另外2台主机。 scp -R /uer/local/hadoop root@hadoop0:/uer/local / hadoop scp -R /uer/local/hadoop root@hadoop1: /uer/local / Hadoop 8. 修改环境变量 vi /etc/profile export JAVA_HOME=/root/jdk1.8/jdk1.8.0_171 export HADOOP_HOME=/usr/local/hadoop export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH 同样,将profile复制到另外两台主机上 scp /etc/profile root@hadoop0:/etc/ scp /etc/profile root@hadoop1:/etc/ 注意请先使用source /etc/profile更新命令 (3)启动hadoop 在hadoop下: 输入: hadoop namenode -format 然后通过start-all.sh启动所有进程: .进入到$HADOOP_HOME/sbin目录下启动start-all.sh 可以通过jps命令来查看运行的进程, 如果成功运行,那么将会有如下显示 在hadoop0和hadoop1的shell中输入jps也会有3个运行,其中datanode一定要检查是否存在,如果不存在说明配置存在问题。 附:在配置中,我们遇到datanode无法启动的问题,经查阅后了解到是由于我们使用的是64位linux系统,需要下载对应的64位编译版本替换原来的native文件,下载对应文件后,将准备好的64位的lib包解压到已经安装好的hadoop安装目录的lib/native 和 lib目录下:然后增加环境变量:vi /etc/profile增加下面的内容: export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" 让环境变量生效source /etc/profile 自检hadoop checknative –a 指令检查hadoop checknative –a 参考地址: 至此,hadoop启动成功,要想看集群状态,可以打开下面两个网址: localhost:8088(mapreduce的web页面,注意hadoop2.0以前的版本端口号为50030,我使用的是2.9.0版本,所有端口号为8088) localhost:50070(HDFS的web页面) 三、搭建并测试开发环境(JAVA) 1、JAVA jdk的安装 (1)查看是否已经安装了java JDK。 Shell下输入java –version 注意:Hadoop机器上的JDK,最好是Oracle的Java JDK,不然会有一 些问题,比如可能没有JPS命令。 如果安装了其他版本的JDK,卸载掉。 (2) 安装java JDK 去下载Oracle版本Java JDK:我下载的是1.8版本的jdk-8u171-linux-x64.tar.gz,然后将jdk-8u171-linux-x64.tar.gz解压到你想安装的目录下,这里我选的目录是/root/jdk1.8 Shell命令为tar -zxvf jdk-8u171-linux-x64.tar.gz -C /root/jdk1.8,也可以直接在文件系统里右键复制粘贴到对应目录 接下来添加环境变量,设置JDK的环境变量 JAVA_HOME。需要修改配置文件/etc/profile,追加 export JAVA_HOME=/root/jdk1.8/jdk1.8.0_171 export CLASSPATH=.:/root/jdk1.8/jdk1.8.0_171/jre/lib/rt.jar:/root/jdk1.8/jdk1.8.0_171/lib/dt.jar:/root/jdk1.8/jdk1.8.0_171/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH 修改完毕后,执行 source /etc/profile 三台虚拟机上都要进行对应的操作,或者设置好以个虚拟机的之后,将相应的文件用scp命令复制到另外两台虚拟机上 安装后再次执行 java –version,可以看见已经安装完成。 2、Tomcat的安装 (1) 下载 tomcat Linux 版本 oracle 官网下载地址:http://tomcat.apache.org/download-80.cgi 我下载的是apache-tomcat-7.0.86.tar.gz,注意不要下载8.0及以上版本,否则之后的编程会提示不兼容问题 (2) 在 usr 目录下新建 tomcat 目录,然后将 下载的 tomcat 用工具拷贝到这个新建的 tomcat目录中 (3) 解压 tomcat 文件, 由于文件名有点长,我们需要给解压后的文件夹重命名,以便后面引用方便,我改为了tomcat7.0 (4) 配置环境变量(注意:这里我们前提是已经安装并配置好了 JDK) 追加export CATALINA_HOME=/usr/tomcat/tomcat7.0 export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH 输入如下命令让配置生效:source /etc/profile (5) 启动 tomcat 进入到 /usr/tomcat/tomcat7.0/bin 目录下,输入如下命令 ./startup.sh (6) 查看 tomcat 是否启动成功 ps -efigrep java (7) 关闭的方法为进入到 /usr/tomcat/tomcat8.5/bin 目录下,输入如下命令 ./shutdown.sh (8) 验证是否启动成功 启动tomcat 之后,在浏览器输入 http:\\localhost:8080。如果出现 tomcat 的主页则启动成功 附:参考资源; 3、mysql安装 (1) 下载mysql的linux版本,我这里下载的是mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz (2) 将安装包解压到/usr/local下并改名为mysql (3) 添加mysql用户组和mysql用户 先检查是否有mysql用户组和mysql用户,命令为groups mysql,若无,则添加;groupadd mysql useradd -r -g mysql mysql 若添加成功则再次groups mysql时会如下图 (4) 进入mysql目录更改权限 cd /usr/local/mysql/ chown -R mysql:mysql ./ (5) 执行安装脚本 ./scripts/mysql_install_db --user=mysql 安装完之后修改当前目录拥有者为root用户,修改data目录拥有者为mysql chown -R root:root ./ chown -R mysql:mysql data (6) 先启动mysql,然后更改mysql密码 ./support-files/mysql.server start 如果MySQL启动报错,则可能是已经存在MySQL进程,杀掉即可 ps aux|grep mysql kill -9 上边的进程号 #或者下边一条命令即可杀掉所有MySQL进程 ps aux|grep mysql|awk '{print $2}'|xargs kill -9 MySQL启动之后再执行如下命令更改密码: ./bin/mysqladmin -u root -h localhost.localdomain password 'root' 密码更改后即可登录MySQL ./bin/mysql -h127.0.0.1 -uroot -proot 登录之后将其他用户的密码也可改为root update mysql.user set password=password('root') where user='root'; flush privileges; 在数据库中创建一个hadoop数据库并在hadoop数据库中创建一个users表,为后面的开发做准备 (7) 增加远程登录权限 本地登陆MySQL后执行如下命令 grant all privileges on *.* to root@'%' identified by 'root'; flush privileges; (8) 将MySQL加入Service系统服务 cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on service mysqld restart service mysqld status 附:参考网址: 4、eclipse安装和配置 (1)官网下载eclipse,我下载的是eclipse-jee-luna-SR2-linux-gtk-x86_64.tar.gz (2)解压安装包到/root/下改名为eclipse (3)下载hadoop-eclipse-plugin-2.7.3.jar并放到eclipse下的plugins目录下 然后启动eclipse, 打开eclipse Window -> preferences找到hadoop, 设置hadoop路径 (4) 配置eclipse开发tomcat 新建项目, 选择Web project 设置项目名称 选择new Runtime 在弹出对话框配置tomcat版本以及tomcat位置 然后下一步, 下一步 勾选web.xml,并完成 (5) 链接数据库 在Window菜单栏下打开Open Perspertive,选择 Database Development。 然后再Database Connections文件夹下邮件选择New ..; 然后再URL上填上刚刚创建的hadoop数据库; 点击 Test Connection,测试链接成功。 至此,有关hadoop网盘开发的所有配置已经配置完毕,接下来就可以开始代码部分了 PART2代码部分 一、 UI界面 登录界面: 输入账号密码正确后会登录到该用户的网盘,若该用户不存在可以点击注册进行账号的注册,注册完毕后即可进行登录 相关代码: 登录界面数据提交: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <head> <meta charset="UTF-8"> <title>我的网盘</title> <meta name="keywords" content="我的网盘"> <meta name="content" content="我的网盘"> <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"> <link type="text/css" rel="stylesheet" href="css/login.css"> <script type="text/javascript" src="js/jquery-1.8.0.min.js"></script> </head> <body class="login_bj" > <div class="zhuce_body"> <div class="logo"></div> <div class="zhuce_kong login_kuang"> <div class="zc"> <div class="bj_bai"> <h3>登录</h3> <form action="LoginServlet" method="post"> <input name="username" type="text" id="inputEmail" class="kuang_txt" placeholder="用户名"> <input name="password" type="text" id="inputPassword" class="kuang_txt" placeholder="密码"> <div> <a href="#">忘记密码?</a><input name="" type="checkbox" value="" checked><span>记住我</span> </div> <input name="登录" type="submit" class="btn_zhuce" value="登录"> </form> </div> <div class="bj_right"> <p>使用以下账号直接登录</p> <a href="#" class="zhuce_qq">QQ登录</a> <a href="#" class="zhuce_wb">微博登录</a> <a href="#" class="zhuce_wx">微信登录</a> <p>没有账号?<a href="zhuce.jsp">立即注册</a></p> </div> </div> <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;欢迎您使用本网盘</P> </div> </div> </body> 对登录界面提交的数据进行处理: public class LoginServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); UserBeanCl ubc = new UserBeanCl(); if(ubc.checkUser(username, password)){ //用户合法,跳转到界面 HttpSession session = request.getSession(); session.setAttribute("username", username); JobConf conf = HdfsDAO.config(); HdfsDAO hdfs = new HdfsDAO(conf); FileStatus[] list = hdfs.ls("/"+username); request.setAttribute("list",list); request.getRequestDispatcher("index.jsp?user="+username+"").forward(request, response); }else{ //用户不合法,调回登录界面,并提示错误信息 System.out.println("====Error!====\n"); request.getRequestDispatcher("login.jsp").forward(request, response); } } } 注册界面: 用户输入用户名邮箱密码验证码之后点击注册即可注册成功,然后用户便可通过登录账号登录到自己的网盘 相关代码 注册界面代码: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <head> <meta charset="UTF-8"> <title>我的网盘</title> <meta name="keywords" content="我的网盘"> <meta name="content" content="我的网盘"> <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1"> <link type="text/css" rel="stylesheet" href="css/login.css"> <script type="text/javascript" src="js/jquery.min.js"></script> </head> <body class="login_bj" > <div class="zhuce_body"> <div class="logo"></div> <div class="zhuce_kong"> <div class="zc"> <div class="bj_bai"> <h3>欢迎注册</h3> <form action="CreateServlet" method="post"> <input name="username" type="text" class="kuang_txt user" placeholder="用户名"> <input name="emal" type="text" class="kuang_txt email" placeholder="邮箱"> <input name="password" type="text" class="kuang_txt possword" placeholder="密码"> <input name="id" type="text" class="kuang_txt yanzm" placeholder="验证码"> <div> <div class="hui_kuang"><img src="images/zc_22.jpg" width="92" height="31"></div> <div class="shuaxin"><a href="#"><img src="images/zc_25.jpg" width="13" height="14"></a></div> </div> <div> <input name="" type="checkbox" value=""><span>已阅读并同意<a href="#" target="_blank"><span class="lan">《XXXXX使用协议》</span></a></span> </div> <input name="注册" type="submit" class="btn_zhuce" value="注册"> </form> </div> <div class="bj_right"> <p>使用以下账号直接注册</p> <a href="#" class="zhuce_qq">QQ注册</a> <a href="#" class="zhuce_wb">微博注册</a> <a href="#" class="zhuce_wx">微信注册</a> <p>已有账号?<a href="login.jsp">立即登录</a></p> </div> </div> <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;欢迎您使用本网盘</P> </div> </div> </body> 对注册界面提交的数据进行处理: public class CreateServlet extends HttpServlet{ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取提交的数据 String id=request.getParameter("id"); String username = request.getParameter("username"); String password = request.getParameter("password"); String emal = request.getParameter("emal"); //创建新建用户的对象 UserCreate ubc = new UserCreate(); try { if(ubc.createUser(id,username,password,emal)){ //用户创建成功,hdfs中创建文件夹 JobConf conf = HdfsDAO.config(); HdfsDAO hdfs = new HdfsDAO(conf); hdfs.mkdirs
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服