重庆交通大学信息科学与工程学院实验报告班级:曙光1701班姓名学号:实验项目名称:实验一, Hadoop平台搭建与维护实验项目性质:验证性实验所属课程:大数据平台技术实验室(中心):语音楼11楼第三实验室指导教师:实验完成时间:2019 年9 月22 日一、实验概述:【实验目的】1.掌握Linux命令行操作及JA V A环境变量设计方法;2.掌握Linux操作系统安装或虚拟机安装配置方法;3.掌握Hadoop平台单机模式、伪分布式模式的安装配置方法;4.掌握HDFS分布式文件系统的文件读写命令行使用方法;5.掌握MapReduce分布式程序的命令行示例程序使用方法。
【实验要求】1.保存程序,并自行存档;2.最终的程序都必须经过测试,验证是正确的;3.认真记录实验过程及结果,回答实验报告中的问题。
【实施环境】(使用的材料、设备、软件)Linux操作系统环境,VirtualBox虚拟机,Java开发环境,Hadoop/HBase/Spark等程序。
二、实验内容第1题. Ubuntu操作系统安装。
以双系统或者虚拟机方式安装Ubuntu操作系统。
安装双系统:安装前准备工作1.压缩磁盘,新建分区- 桌面电脑图标上右键 --> 管理 --> 存储 --> 磁盘管理图1.- 磁盘0 --> OS(C:)上右键压缩卷--> 选择合适大小,压缩完成后就退出,保持未分区状态,不要格式化图22.关闭快速启动(也许不管也可以)图33.制作UEFI格式U盘启动盘将ISO镜像中的所有文件复制到一个干净的U盘中。
4.关闭Secure Boot(1)进入BIOS:重启电脑,在MI出现后马上按F2(可以多按几次,也可以在还是黑屏时就开始按)(2)Security—>Set Supervisor Password(必须设置,否则下面的Secure Boot无法更改)图4(3)Security—>Secure Boot—>更改为Disabled图5(4)Boot—>Boot Type—>UEFI图6(5)最后F10后回车,会保存更改后直接启动安装中1. 进入启动U盘: 同进入BIOS类似,在上面重启后出现MI时按F12,进入选择菜单,选择你的U盘就可以了图72.之后就是正常的Ubuntu系统安装步骤,需要注意的是一定要选择其他选项(自己分区),3. 分区:共60G/bootext4 300MB /ext4 50GB/swap 1000MB4. 分完区后,下面的安装启动引导器的设备选择/boot所在的分区5. 安装完成后重启时会出现一个选择菜单,选择Ubuntu则进入linux系统,选择Windows boot Manager则进入Win10图8安装完成第2题Linux环境下Hadoop开发环境的安装【实验内容】(1)JA V A环境安装与配置;(2)SSH环境安装与配置;(3)Hadoop伪分布式模式安装与配置。
【实验结果】(步骤、记录、数据、程序等)请结合课程实验教材第3章内容,完成JA V A环境、SSH以及Hadoop平台的安装和配置任务,并在下方描述和记录安装过程,提供JA V A、SSH及Hadoop安装配置完成后正常运行的界面截图证明。
1.安装SSHUbuntu默认已安装了SSH客户端,因此,这里还需要安装SSH服务端,在Linux的终端中执行一下命令:$sudo apt-get install openssh-server安装后,可以使用如下命令登录本机:$ssh localhost执行该命令后会出现SSH首次登录提示,输入yes,然后按提示输入密码Hadoop,就登陆到本机了。
(由于这样每次登录都需要输入密码,所以,需要配置成SSH无密码登录,就比较方便)首先输入命令exit退出刚才的SSH,就回到了原先的终端窗口,然后可以利用sshkeygen 生成密钥,并将密钥加入到授权中,命令如下:$cd~/.ssh/ #若没有该目录,请先执行一次 ssh localhost$ssh-keygen-t rsa #会有提示,按enter键即可$cat ./id_rsa.pub>> ./authorized_keys #加入授权此时,在执行ssh localhost命令,无需输入密码就可以直接登录了,如图8所示:图92.安装Java环境安装方式,命令如下:$sudo apt-get install default-jre default-jdk注:需保持联网状态下载好相关文件后,需要配置JAVA_HOME环境变量,在Linux终端中输入以下命令打开当前登录用户的环境变量配置文件.bashrc$vim~/.bashrc在文件最前面添加如下单独一行,然后保存退出:export JAVA_HOME=/usr/lib/jvm/default-java让环境变量立即生效,代码如下:$source~/.bashrc检验是否正确:$echo $JAVA_HOME$java-version$$JAVA_HOME/bin/java-version #执行后会出现Java的版本信息,则安装成功如图9所示:图103.安装HaDoopHadoop包括3种安装模式:1.单机模式2.伪分布模式3.分布模式在Linux系统的FireFox浏览器进入Hadoop官网下载安装文件,下载完安装文件以后,需要对文件进行解压.使用hadoop用户登陆Linux系统,打开一个终端,执行如下命令:$sudo tar -zxf~/下载/hadoop-2.7.1.tar.gz -c/uer/local #解压到/usr/local目录中$cd/usr/local/$sudo mv ./hadoop-2.7.1/ ./hadoop #将文件名改为hadoop$sudo chown -R hadoop ,/hadoop #修改文件权限Hadoop解压后即可使用,用以下命令来检查hadoop是否可用,若成功会显示hadoop 版本信息:$cd /usr/local/hadoop$./bin/hadoop version如图11所示:图11这样就安装好了。
接下来我们来配置伪分布模式:Hadoop伪分布模式是指同一个节点既作为名称结点,也作为数据结点,读取的是分布式文件系统HDFS中的文件。
要实现这种分布模式,需要修改以下两个配置文件:①修改core-site.xml文件(用vim文本编译器打开该文件,指令如下):vim /usr/local/hadoop/etc/hadoop/core-site.xml修改后的文件如图12所示:图12②修改hdfs-site.xml文件,打开该文件的指令如下:vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml修改后的文件如图13所示:图13③当修改了这两个配置文件后,接下来还需要将此名称结点进行格式化,命令如下:$cd /usr/local/hadoop$./bin/hdfs namenode –format如果成功就会看到下图14所示内容:14第3题HDFS 分布式文件系统的文件读写命令行使用方法【实验内容】(1)在HDFS中创建用户目录/user/xxx;(xxx为安装用户名)(2)在HDFS的/user/xxx目录下创建input目录;(3)在Linux桌面创建test.txt文件,在其中输入包含20个以上的单词;(4)将test.txt文件复制到input目录下;(5)将etc/hadoop目录下的所有xml配置文件载入到input目录下;(6)在HDFS的命令行中读取并显示input目录下包含的文件及内容;【实验结果】(步骤、记录、数据、程序等)请完成上述实验内容,提供相应Shell命令和运行结果的截图。
回答:1.在HDFS中创建名为yqy的用户名:$cd/usr/local/hadoop$./bin/hdfs dfs -mkdir -p /user/yqy效果如图15图152.在HDFS的/user/yqy目录下创建input目录:$cd /usr/local/hadoop$./bin/hdfs dfs -mkdir input如图16所示:3.在Linux桌面创建test.txt文件,在其中输入包含20个以上的单词:命令如图17.18所示:图17.18创建结果如图19所示:图194.将test.txt文件复制到input目录下:代码为:$cd /usr/local/hadoop$./bin/hdfs dfs -put home yqy/桌面/test.txt input结果如下图20所示:5.将etc/hadoop目录下的所有xml配置文件载入到input目录下;代码:$cd /usr/local/hadoop$./bin/hdfs dfs -put ./etc/hadoop/*.xml input结果如下图21所示:6.在HDFS的命令行中读取并显示input目录下包含的文件及内容;代码:$cd /usr/local/hadoop$./bin/hdfs dfs -ls input结果显示:图22第4题MapReduce分布式程序的命令行示例程序使用方法【实验内容】(1)在第3题的基础上,以input目录中数据作为输入,调用mapreduce示例程序的grep命令行程序,进行正则表达式’dfs[a-z.]+’的匹配,将结果输出到output目录,并显示出输出结果;(2)调用mapreduce示例程序的wordcount命令行程序,分别完成input目录内所有文件,以及test.txt文件的单词计数,并将结果输出到新的output目录,并显示程序输出结果;(3)调用mapreduce示例程序的圆周率计算命令行程序,输入不同参数,尽可能使得pi值计算精确,并显示程序输出结果。
【实验过程】(步骤、记录、数据、程序等)请完成上述实验内容,提供相应Shell命令和运行结果的截图。
回答:1.在第3题的基础上,以input目录中数据作为输入,调用mapreduce示例程序的grep 命令行程序,进行正则表达式’dfs[a-z.]+’的匹配,将结果输出到output目录,并显示出输出结果;图23.242.调用mapreduce示例程序的wordcount命令行程序,分别完成input目录内所有文件,以及test.txt文件的单词计数,并将结果输出到新的output目录,并显示程序输出结果;将input目录内所有文件输出到新的output目录的指令如下:hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount input output执行后的效果如下:图25注意:在执行这一命令前,需要将刚才生成的output目录删除,否则会报错(下同),删除该目录的指令为:hdfs dfs –rm –r output接着可以用指令:hdfs dfs –cat output/*对output中的内容进行查看,效果如下:(结果很多,只截取了部分)图26将input目录内的test.txt输出到新的output目录的指令如下:hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar wordcount input/test.txt output执行后的效果如下:图27这里同样地用指令:hdfs dfs –cat output/*对output中的内容进行查看,效果如下:图283.调用mapreduce示例程序的圆周率计算命令行程序,输入不同参数,尽可能使得pi 值计算精确,并显示程序输出结果。