Hadoop伪分布式搭建实验总结

实验1:

启动一个AWS实例,并且将它改变大小,以及对其进行监控和管理。

  1. 创建EC2实例
  2. 观察实例的参数
  3. 更新安全组协议,增加web服务(http协议)
  4. 重新定义实例大小:实例的类型和EBS卷
  5. 探索EC2的限制
  6. 尝试终止保护

实验2:

创建一个Amazon弹性存储块(Amazon EBS),将EBS挂载到一个EC2实例上,在EBS上创建并配置文件系统,以及用快照实现EBS的备份和恢复。

  1. 新建EBS卷
  2. 连接卷到一个实例
  3. 登陆到创建的实例
  4. 创建并配置文件系统
  5. 创建一个EBS快照
  6. 恢复EBS快照

实验3:

在VPC中启动了一个EC2实例,在实例中运行着一个web server,对外提供web服务。

  1. 创建自己的私有云
  2. 创建附加子网
  3. 创建一个私有云的安全组
  4. 登陆到第一个web服务实例

实验4:

         添加了mysql关系型数据库并配置了相应的子网和安全组,通过web server使用数据库进行数据的存储。

  1. 为RDS 数据库实例创建一个VPC安全协议组
  2. 创建一个数据库子网组
  3. 创建一个RDS数据库实例
  4. 访问上述创建的数据库

关键问题分析与解决:

在实验一中的任务1安装你的亚马逊EC2实例,在填写下面的命令时直接复制粘贴的,导致在任务3中无法进行。询问研究生学长后,得知可能是复制导致的问题,建议自己手打一边。一次我重新做了一边任务1,将命令自己手打进去,重新将IPV4地址拷贝进浏览器,回车后运行成功。仔细分析可能是复制命令时会将一些多余的空格复制进去,导致命令出错。

图 1实验一

         在实验二中,因为之前的密钥文件没有保存,导致实验无法进行下去,不得不重新创建一个实例。还有就是获取PPK文件的时候需要通过pem文件转换,下载专门的软件。实验过程中需要通过PUTTY来访问云端,同时需要将云端实例的安全组里SSH端口打开。

         实验三执行遇到了一点小问题,做到“Name tag: Type: Public Subnet 2”处时出现了点小错误。后来发现是实验指导书上的错误,这个地方的子网应该是私有的才对。

         实验四做到任务四时后出现报错,原因是创建数据库时没有选择Only enable options eligible for RDS Free Usage Tier Info。重新建立数据库并正确操作,室验成功。

 

 

 

Hadoop伪分布安装

实验环境:

VMware workstation Pro.exeubuntu-18.04.1-desktop-amd64.isohadoop-0.20.2.tar.gz(在课件上的网站已经没有此版本了,因此我只能到官网上下载)。

前期准备:

         修改镜像源,换成国内的镜像源,这样下载速度还快;安装vim,方便后期编辑文件。

实验步骤及遇到的问题:

1、安装jdk和配置java环境变量

首先在官网上下载jdk压缩包,本次实验所用的是jdk-8u191-linux-x64.tar.gz版本。将压缩包解压到虚拟机,然后配置环境变量,使用vi /etc/profile添加以下信息:

export JAVA_HOME=/java/jdk1.8.0_191

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

最后重启系统,在终端输入Java –version,显示如下信息,jdk安装成功。

图 2 JDK安装成功

2、安装ssh

安装过程中,不知道是什么故障,执行sudo apt-get install ssh会报错,报错如下:

图 3 ssh安装报错

但是我换了条安装命令sudo apt-get install openssh-server后就可以,具体原因还没有搞清楚。

通过which shh和which shhd查看ssh是否安装;通过ps aux | grep ssh查看ssh是否安装;通过sudo ufw status查看防火墙是否已关闭;通过sudo netstat -tunlp | grep ssh查看ssh连接端口。检查完毕,安装成功。

图 4 检查ssh安装

3、安装Hadoop

这一步比较简单,直接将下载好的压缩包拷贝到虚拟机里即可。

4、配置Hadoop

这一步按照课件里面的说明,先修改hadoop-env.sh文件,添加java的环境变量;然后依次修改core-site.xml、hdfs-site.xml和mapred-site.xml文件。

5、免密码SSH设置

首先通过ssh-keygen –t rsa命令生成密钥对,执行过程中一路回车,选择默认设置。

图 5 ssh生成密钥

 

         然后进入.ssh目录下,执行命令cp id_rsa.pub authorized_keys。

图 6 ssh配置

         到此为止,所有的伪分布安装基本完成,下面进行测试,检验是否安装成功。

6、结果测试

首先需要先格式化分布式文件系统,执行命令bin/hadoop namenode –format。

图 7 格式化

         然后执行bin/start-all.sh启动namenode守护进程,启动Hadoop的五个进程。

图 8 启动Hadoop

         到此Hadoop已经启动运行。

         可以在终端输入命令jps查看。

图 9 jsp命令查看

         也可以通过在浏览器输入网址localhost:50070和localhost:50030查看。

图 10 localhost:50030浏览器查看

 

图 11  localhost:50070浏览器查看

 

         下面来运行一个wordcount实例来进一步熟悉Hadoop。

         首先在Hadoop目录下建立input文件夹,里面写有两个txt文件,text1.txt写有hello wangjian, text2.txt写有hello hadoop。将本地系统中的input目录复制到HDFS的根目录下,重新命名为in,运行Hadoop自带的WordConut实例。Out为数据处理完后的输出目录,默认为在Hadoop的根目录下,运行之前必须清空或者删除out目录,否则会报错。

         任务执行完毕,实验结果如下:

图 12 WordConut分词

也可以把输出文件从Hadoop分布式文件系统复制到本地文件系统查看。

图 13 结果复制到本地文件系统

         到此,伪分布式实验大功告成。执行bin/stop-all.sh停止Hadoop守护进程。

实验总结:

         在Hadoop伪分布式的安装配置过程中,遇到许许多多的问题,安装Java jdk,配置环境变量,安装ssh等等,出现问题就到百度和csdn上寻找解决方法。同时在本次实验中认识到了自己的不足,对Linux系统不够熟悉,在以后的学习中需要进一步努力。

         实验考验是一个人的耐心,实验步骤要一步一步地做,每一步都要严谨认真。

         通过本次实验,只是简单掌握了Hadoop伪分布式的搭建过程,对于完全分布式没有做成功,也是很遗憾,因为时间紧张,在截至提交实验报告前,完全分布式遇到了点问题,到现在还没有解决。因为笔记本配置比较低,硬盘内存不够,只能搭建两台虚拟机。打算用wangjian这台作为namenode,wangjian1这台作为datanode。但是搭建两台以后,只能一台联网。具体问题还在研究。

图 14 分布式配置中修改hosts文件

posted @ 2019-01-13 13:03  UnderScrutiny  阅读(11366)  评论(0编辑  收藏  举报