【实验1】分布式模式的CentOS 6上安装Hadoop(1个master节点,2个slave节点)

一、实验环境:

电脑:windows10

软件:VMWare Workstation 16

CentOS-6.5-x86_64-bin-DVD1.iso文件;

二、实验内容与步骤(过程及数据记录):

1. 安装VMWare Workstation 16

主要内容:

  • 安装VMWare Workstation 16

找到“本地磁盘(E:)”目录并进入该目录,如下所示:

点击“VMware-workstation-full-16.0.0-16894299.exe”安装。

单击“下一步”。

(为了方便管理,我开辟了一个新的磁盘分区专门来放虚拟机和安装在虚拟机上的系统。比如我电脑中VMware的安装位置就是E:\VMware\ 。注:虚拟机最好安装在固态硬盘上。)

安装大致会经历一下几个过程:

我安装的过程中弹出了以下窗口,文件复制来源需要自己选择,根据提示找到对应的文件路径就可以。(如果填好之后点击“确定”没反应的话,要确认对应文件是否在对应位置。)

安装完成后的第一次启动会需要许可证密钥。可以百度搜索有效的许可证密钥。

拷贝粘贴注册码。输入注册码。点击完成,VMware安装过程结束。

2. VMWare 10安装CentOS 6

2.1 CentOS系统安装

打开VMWare Workstaion 10

点击文件->新建虚拟机

选择典型(推荐)(T)选项,点击“下一步(N)>”

选择“安装程序光盘映像文件(iso)(M)”,选择指定的CentOS系统的.iso文件,点击“下一步(N)>”

填写下面的信息,点击“下一步(N)>”

全名(F):hfut,用户名(U):hfut,密码§:hfut,确认©:hfut

虚拟机名称(V):HadoopMaster,选择安装位置,点击“下一步(N)>”

这里的磁盘大小不要直接使用默认值,调大为30.0

其它的选项使用默认值,点击“下一步(N)>”

自定义硬件内存调到4G。

直接等待安装完成,系统自动重启

输入密码hfut登录进系统

至此,CentOS系统安装完毕。

2.2 CentOS系统安装中的关键问题

测试自己的电脑硬件是否支持系统的安装

运行software-sys/securable.exe软件。

2.3 克隆HadoopSlave

点击下图所示的“克隆”选项

点击“下一步(N)”看到如下界面

使用默认选项,点击“下一步(N)”,选择“创建完整克隆(F)”,点击“下一步(N)”,如下图所示:

将虚拟机重命名为HadoopSlave,选择一个存储位置,点击“完成”

再次克隆出一个HadoopSlave2,点击“关闭”按钮后发现,“HadoopSlave”和“HadoopSlave”虚拟机已经在左侧的列表栏中。

3. Windows和Linux系统间的文件传输

使用FileZilla Client工具

3.1 安装FileZilla Client

(已经安装完成,具体过程不再赘述)

3.2 打开并传输文件测试

输入已经安装的CentOS的主机名和用户名,弹出输入密码的对话框。

输入密码hfut,回车,会看到下面的对话框,表示连接成功

下图左侧是Windows本机目录,右侧是Linux目录,拖拽文件可实现文件传输。

注: 查看Linux系统的IP地址

点击上图的“Connection Information”即可看到Linux系统的IP地址

另外,打开Linux系统的终端(Terminal),使用ifconfig命令也可以查看Linux系统的IP

4. CentOS 6上安装Hadoop

4.1 启动两台虚拟客户机

打开VMware Workstation 10

打开之前已经安装好的虚拟机:点击“开启此虚拟机”,分别打开HadoopMaster和HadoopSlave

4.2 Linux系统配置

以下操作步骤需要在HadoopMaster和HadoopSlave节点上分别完整操作,都使用root用户,从当前用户切换到root用户的命令如下:

[hfut@localhost ~]$ su root

输入密码:hfut

本节所有的命令操作都在终端环境,打开终端的过程如下图的Applications->System Tools->Terminal菜单,或使用鼠标右键菜单的“Open in Terminal”

4.2.1 软件包和数据包说明

将完整的软件包上传到“/home/hfut/resources/software”。

4.2.2 配置时钟同步

(1)配置自动时钟同步

该项同时需要在HadoopSlave节点配置。

使用Linux命令配置

[root@localhost hfut]# crontab -e

键入下面的一行代码,输入i,进入插入模式(星号之间和前后都有空格)

0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

(2)修改时区

[root@localhost hfut]# vi /etc/sysconfig/clock

输入如下内容:

ZONE=“Asia/Shanghai”

连接到上海时区文件

[root@localhost hfut]# rm /etc/localtime

[root@localhost hfut]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

[root@localhost hfut]# reboot

(3)手动同步时间

直接在Terminal运行下面的命令:

[root@localhost hfut]# /usr/sbin/ntpdate cn.pool.ntp.org

4.2.3 配置主机名

(1)HadoopMaster节点

[root@localhost hfut]# vi /etc/sysconfig/network

配置信息如下,将HadoopMaster节点的主机名改为master,即下面代码的第2行所示。

NETWORKING=yes

HOSTNAME=master

确认修改生效命令

[root@localhost hfut]# hostname master

检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:

[root@localhost hfut]# hostname

执行完命令,会看到下图的打印输出:

(2)HadoopSlave节点

使用vi编辑主机名。

[root@localhost hfut]# vi /etc/sysconfig/network

配置信息如下,将HadoopMaster节点的主机名改为slave,即下面代码的第2行所示。

NETWORKING=yes

HOSTNAME=slave

确认修改生效命令

[root@localhost hfut]# hostname slave

检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:

[root@localhost hfut]# hostname

执行完命令,会看到下图的打印输出:

4.2.4 使用setup命令配置网络环境

在终端执行下面的命令:

[hfut@master ~]$ ifconfig

看到下面的打印输出

存在内网IP、广播地址、子网掩码,该节点不需要配置网络。

4.2.5 关闭防火墙

该项也需要在HadoopSlave节点配置

在终端执行下面的命令:

[hfut@master ~]$ setup

会出现下图中的内容

选择“Yes”

4.2.6 配置hosts列表

该项也需要在HadoopSlave节点配置

需要在root用户下(使用su命令),编辑主机名列表的命令:

[root@master hfut]# vi /etc/hosts

将下面两行添加到/etc/hosts文件中:

192.168.133.132 master

192.168.133.134 slave

192.168.133.129 slave2

查看master的IP地址使用下面的命令

[root@master hfut]# ifconfig

Master节点的IP是下图中红线标注的内容。

验证是否配置成功:

[root@master hfut]# ping master

[root@master hfut]# ping slave

[root@master hfut]# ping slave2

4.2.7 安装JDK

该项也需要在HadoopSlave节点配置

将JDK文件解压,放在/usr/java目录下

[root@master hfut]# cd /home/hfut/resources/software/jdk

[root@master jdk]# mkdir /usr/java

[root@master jdk]# cp jdk-7u71-linux-x64.gz /usr/java

[root@master jdk]# cd /usr/java

[root@master java]# tar -zxvf jdk-7u71-linux-x64.gz

[root@master java]# rm jdk-7u71-linux-x64.gz

使用gedit配置环境变量

[root@master hfut]# su hfut

[hfut@master java]$ gedit /home/hfut/.bash_profile

复制粘贴以下内容添加到.bash_profile

export JAVA_HOME=/usr/java/jdk1.7.0_71/

export PATH=$JAVA_HOME/bin:$PATH

使改动生效命令

[hfut@mater java]$ source /home/hfut/.bash_profile

测试配置:

[hfut@mater java]$ java -version

出现下图的信息:

4.2.8 免密匙登录配置

(1)SSH免密匙登录配置

HadoopMaster节点

在终端生成密匙,命令如下(一路点击回车生成密匙)

[hfut@master ~]$ ssh-keygen -t rsa

生成的密匙在.ssh目录下,如下图所示:

[hfut@master ~]$ cd .ssh

[hfut@master .ssh]$ ls -l

将公钥追加到授权列表

[hfut@master .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

修改authorized_keys文件的权限,命令如下:

[hfut@master .ssh]$ chmod 600 ~/.ssh/authorized_keys

HadoopMaster节点

将authorized_keys文件复制到slave以及slave2节点,命令如下:

[hfut@master .ssh]$ scp ~/.ssh/authorized_keys hfut@slave:~/.ssh

[hfut@master .ssh]$ scp ~/.ssh/authorized_keys hfut@slave2:~/.ssh

修改HadoopMaster节点的SSH配置

[hfut@master .ssh]$ su root

[root@master .ssh]# vi /etc/ssh/sshd_config

设置PermitEmptyPasswords配置为

PermitEmptyPasswords yes

使配置生效

[root@master .ssh]# service sshd restart

使用 ssh-add指令将私钥加进来,解决“Agent admitted failure to sign using the key.”错误问题。

[root@master .ssh]# exit

[hfut@master .ssh]$ ssh-add ~/.ssh/id_rsa

修改HadoopSlave节点的SSHD配置

[hfut@slave ~]$ su root

[root@slave .ssh]# vi /etc/ssh/sshd_config

设置PermitEmptyPasswords配置为

PermitEmptyPasswords yes

使配置生效

[root@slave .ssh]# service sshd restart

验证免密匙登录

在HadoopMaster机器上执行下面的命令:

[hfut@master ~]$ ssh slave

关闭窗口再执行下面的命令:

[hfut@master ~]$ ssh slave2

如果出现下图的内容表示免密匙配置成功:

(注:slave2可以在配置好slave之后直接从slave克隆然后修改slave2的hostname、配置hosts列表、将authorized_keys文件复制到slave2节点以及在master节点配置slaves文件等等操作)

4.3 Hadoop配置部署

4.3.1 Hadoop安装包解压

复制并解压Hadoop软件包,命令如下:

[hfut@master ~]$ cp ~/resources/software/hadoop/apache/hadoop-2.5.2.tar.gz ~/

[hfut@master ~]$ tar -zxvf hadoop-2.5.2.tar.gz

[hfut@master ~]$ rm hadoop-2.5.2.tar.gz

[hfut@master ~]$ cd hadoop-2.5.2

4.3.2 配置环境变量hadoop-env.sh

环境变量文件中,只需要配置JDK的路径。

[hfut@master Hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/hadoop-env.sh

在文件靠前的部分找到下面的一行代码:

export JAVA_HOME=${JAVA_HOME}

将这行代码修改为下面的代码:

export JAVA_HOME=/usr/java/jdk1.7.0_71/

然后保存文件。

4.3.3 配置环境变量yarn-env.sh

环境变量文件中,只需要配置JDK的路径。

[hfut@master Hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/yarn-env.sh

在文件靠前的部分找到下面的一行代码:

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

将这行代码修改为下面的代码(将#号也去掉):

export JAVA_HOME=/usr/java/jdk1.7.0_71/

然后保存文件。

4.3.4 配置核心组件core-site.xml

使用gedit编辑:

[hfut@master Hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/core-site.xml

替换core-site.xml中的内容。

4.3.5 配置文件系统hdfs-site.xml

使用gedit编辑:

[hfut@master Hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/hdfs-site.xml

替换hdfs-site.xml中的内容。

4.3.6 配置文件系统yarn-site.xml

使用gedit编辑:

[hfut@master Hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/yarn-site.xml

替换yarn-site.xml中的内容。

4.3.7 配置计算框架mapred-site.xml

复制mapred-site.xml-template.xml文件:

[hfut@master Hadoop-2.5.2]$ cp ~/hadoop-2.5.2/etc/hadoop/mapred-site.xml.template ~/hadoop-2.5.2/etc/hadoop/mapred-site.xml

使用gedit编辑:

[hfut@master Hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/mapred-site.xml

替换mapred-site.xml中的内容。

4.3.8 在master节点配置slaves文件

使用gedit编辑:

[hfut@master Hadoop-2.5.2]$ gedit ~/hadoop-2.5.2/etc/hadoop/slaves

用下面的代码替换slaves中的内容:

slave

slave2

4.3.9 复制到从节点

使用下面的命令将已经配置完成的Hadoop复制到从节点HadoopSlave上:

[hfut@master Hadoop-2.5.2]$ cd

[hfut@master Hadoop-2.5.2]$ scp -r hadoop-2.5.2/ hfut@slave:~/

[hfut@master Hadoop-2.5.2]$ scp -r hadoop-2.5.2/ hfut@slave2:~/

4.4 启动Hadoop集群

4.4.1 配置Hadoop启动的系统环境变量

该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作,操作命令如下:

[hfut@master Hadoop-2.5.2]$ cd

[hfut@master ~]$ gedit ~/.bash_profile

将下面的代码追加到.bash_profile末尾:

#HADOOP

export HADOOP_HOME=/home/hfut/hadoop-2.5.2

export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

然后执行命令:

[hfut@master ~]$ source ~/.bash_profile

4.4.2 创建数据目录

该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作,操作命令如下:

在hfut的用户主目录下,创建数据目录,命令如下:

[hfut@master ~]$ mkdir /home/hfut/hadoopdata

4.4.3 启动Hadoop集群

(1)格式化文件系统

格式化命令如下,该操作需要在HadoopMaster节点上执行:

[hfut@master ~]$ hdfs namenode -format

(2)启动Hadoop

使用start-all.sh启动Hadoop集群,首先进入Hadoop安装主目录,然后执行启动命令:

[hfut@master ~]$ cd ~/hadoop-2.5.2

[hfut@master ~]$ sbin/start-all.sh

执行命令后,提示输入yes/no时,输入yes。

(3)查看进程是否启动

在HadoopMaster的终端执行jps命令,在打印结果中会看到4个进程,分别是ResourceManager、Jps、NameNode和SecondaryNameNode,如下图所示。如果出现这4个进程表示主节点进程启动成功。

在HadoopSlave的终端执行jps命令,在打印结果中会看到3个进程,分别是Nodemanager、Datanode和Jps,如下图所示。如果出现这3个进程表示主节点进程启动成功。

(4)Web UI查看集群是否成功启动

在HadoopMaster上启动Firefox浏览器,在浏览器地址栏中输入http://master:50070/,检查namenode和datanode是否正常。UI页面如下图所示。

在HadoopMaster上启动Firefox浏览器,在浏览器地址栏中输入http://master:18088/,检查Yarn是否正常。页面如下图所示。

(5)运行PI实例检查Hadoop集群是否搭建成功

进入Hadoop安装主目录,执行下面的命令:

[hfut@master ~]$ cd ~/hadoop-2.5.2/share/hadoop/mapreduce/

[hfut@master mapreduce]$ hadoop jar ~/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar pi 10 10

会看到如下的执行结果:

最后输出:

Estimated value of Pi is 3.20000000000000000000

以上的3个验证步骤都没有问题,说明集群正常启动。

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~柠月如风~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值