1.打开VMware Workstation14
2.打开之前已经安装好的虚拟机:HadoopMaster和HadoopSlave
输入密码:lyu
本节所有的命令操作都在终端环境,打开终端的过程如下图的Terminal菜单:
鼠标右击选中Open Terminal
终端打开后如下图中命令行窗口所示。
在windos下设置虚拟网卡
在VMware软件中设置网络
虚拟机中设置网络(图形界面中的设置或命令行设置,二选一)
图形界面中设置网络
master:
slave:除了IP地址其它一样
命令行设置
vi /etc/sysconfig/network-scripts/ifcfg-ens33 (注:其他低版本的系统默认的可能是ifcf-eth0)
(注:IP地址master填192.168.6.100 slave填192.168.6.101)
service network restart
测试是否配置成功 ping baidu.com
可能出现的问题:由于slave是直接克隆过去的,MAC地址一样,可能不能同时上网
解决方法:slave中删除相关文件
rm –f /etc/udev/rules.d/70-persistent-net.rules
VMware中 虚拟机-设置—网络适配器(nat)--高级(重新生成并复制MAC地址)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将HWADDR=改成刚才随机生成的MAC地址(不存在就不改)
Master 节点: master
Slave 节点: Slave
*自定义:
使用gedit编辑主机名,如果不可以使用gedit,请直接使用vi编辑器(后面用到gedit的地方也同此处处理一致)。
# gedit /etc/hostname |
配置信息如下,如果已经存在则不修改,将HadoopMaster节点的主机名改为master,即下面代码的第2行所示。
master |
确实修改生效命令:
# hostname master |
检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:
# hostname |
* Slave 节点,类同。
1、配置自动时钟同步
该项同时需要在HadoopSlave节点配置。
使用Linux命令配置
[root@master lyu]# crontab -e |
该命令是vi编辑命令,按i进入插入模式,按Esc,然后键入:wq保存退出键入下面的一行代码,输入i,进入插入模式(星号之间和前后都有空格)
0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org |
2、手动同步时间
直接在Terminal运行下面的命令:
[root@master lyu]# /usr/sbin/ntpdate cn.pool.ntp.org |
在终端中执行下面命令:
[root@master ~]# systemctl stop firewalld.service [root@master ~]# systemctl disable firewalld.service |
该项也需要在HadoopSlave节点配置。
需要在root用户下(使用su命令),编辑主机名列表的命令:
[root@master lyu]# vi /etc/hosts |
将下面两行添加到/etc/hosts文件中:
192.168.21.128 master 192.168.21.129 slave |
注意:这里master节点对应IP地址是192.168.6.100,slave对应的IP是192.168.6.101,而自己在做配置时,需要将这两个IP地址改为你的master和slave对应的IP地址。
[lyu@master ~]$ ping master [lyu@master ~]$ ping slave |
如果能ping通表示配置成功
该项也需要在HadoopSlave节点配置。
首先查询系统自带的jdk
[root@master ~]$ rpm -qa | grep java |
[root@master lyu]# rpm -qa|grep java
java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2017b-1.el7.noarch
java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64
java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64
[root@master lyu]#
然后移除系统自带的jdk
[root@master lyu]# yum remove java-1.* |
利用xftp将下载的jdk上传到指定文件夹
将JDK文件解压,放到/usr/java目录下
[lyu@master ~]su root [root@master ~]# cd /home/lyu/resources/software/jdk [root@master jdk]# mkdir /usr/java [root@master jdk]# mv jdk-8u131-linux-x64.tar.gz /usr/java/ [root@master jdk]# cd /usr/java [root@master java]# tar -xvf /usr/java/jdk-8u131-linux-x64.tar.gz [root@master java]# chmod +x /usr/java/jdk1.8.0_131/bin/* |
使用vi配置环境变量
[lyu@master java]$ vi /home/lyu/.bash_profile |
复制粘贴以下内容添加到到上面vi打开的文件中:
export JAVA_HOME=/usr/java/jdk1.8.0_131/ export PATH=$JAVA_HOME/bin:$PATH |
使改动生效命令:
[lyu@master java]$ source /home/lyu/.bash_profile |
测试配置:
[lyu@master ~]$ java -version |
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
该部分所有的操作都要在lyu用户下,切换回lyu的命令是:
su -lyu |
1、HadoopMaster节点
在终端生成密钥,命令如下(一路点击回车生成密钥)
[lyu@master ~]$ ssh-keygen -t rsa |
复制公钥文件
[lyu@master .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
执行ls -l命令后会看到下图的文件列表
[lyu@master .ssh]$ ll
total 16
-rw-------. 1 lyu lyu 392 Feb 24 19:47 authorized_keys
-rw-------. 1 lyu lyu 1675 Feb 24 19:46 id_rsa
-rw-r--r--. 1 lyu lyu 392 Feb 24 19:46 id_rsa.pub
-rw-r--r--. 1 lyu lyu 181 Feb 24 19:49 known_hosts
修改authorized_keys文件的权限,命令如下:
[lyu@master .ssh]$ chmod 600 ~/.ssh/authorized_keys |
将authorized_keys文件复制到slave节点,命令如下:
[lyu@master .ssh]$ scp ~/.ssh/authorized_keys lyu@slave:~/ |
如果提示输入yes/no的时候,输入yes,回车
密码是:lyu
2、HadoopSlave节点
在终端生成密钥,命令如下(一路点击回车生成密钥)
[lyu@slave ~]$ ssh-keygen -t rsa |
将authorized_keys文件移动到.ssh目录
[lyu@slave ~]$ mv authorized_keys ~/.ssh/ |
3、验证免密钥登陆
在HadoopMaster机器上执行下面的命令:
[lyu@master ~]$ ssh slave |
如果出现下图的内容表示免密钥配置成功:
[lyu@master .ssh]$ ssh slave
Last login: Sun Feb 25 03:24:41 2018 from 192.168.6.100
[lyu@slave ~]$
每个节点上的Hadoop配置基本相同,在HadoopMaster节点操作,然后完成复制到另一个节点。
下面所有的操作都使用lyu用户,切换lyu用户的命令是:
[root@master lyu]$ su - lyu |
密码是:lyu
1 Hadoop安装包解压
进入Hadoop软件包,命令如下:
[lyu@master ~]$ cd /home/lyu/resources/software/hadoop |
复制并解压Hadoop安装包命令如下:
[lyu@master ~]$ cp hadoop-2.7.5.tar.gz ~/ [lyu@master ~]$ cd [lyu@master ~]$ tar -xvf ~/hadoop-2.7.5.tar.gz [lyu@master ~]$ cd ~/hadoop-2.7.5 |
2 配置环境变量hadoop-env.sh
环境变量文件中,只需要配置JDK的路径。
[lyu@master hadoop-2.7.5]$ vi /home/lyu/hadoop-2.7.5/etc/hadoop/hadoop-env.sh |
在文件的靠前的部分找到下面的一行代码:
export JAVA_HOME=${JAVA_HOME} |
将这行代码修改为下面的代码:
export JAVA_HOME=/usr/java/jdk1.8.0_131/ |
然后保存文件。
3 配置环境变量yarn-env.sh
环境变量文件中,只需要配置JDK的路径。
[lyu@master hadoop-2.7.5]$ vi ~/hadoop-2.7.5/etc/hadoop/yarn-env.sh |
在文件的靠前的部分找到下面的一行代码:
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/ |
将这行代码修改为下面的代码(将#号去掉):
export JAVA_HOME=/usr/java/jdk1.8.0_131/ |
然后保存文件。
4 配置核心组件core-site.xml
使用vi编辑:
[lyu@master hadoop-2.7.5]$ vi ~/hadoop-2.7.5/etc/hadoop/core-site.xml |
用下面的代码替换core-site.xml中的内容:
|
5 配置文件系统hdfs-site.xml
使用vi编辑:
[lyu@master hadoop-2.7.5]$ vi ~/hadoop-2.7.5/etc/hadoop/hdfs-site.xml |
用下面的代码替换hdfs-site.xml中的内容:
|
6 配置文件系统yarn-site.xml
使用vi编辑:
[lyu@master hadoop-2.7.5]$ vi ~/hadoop-2.7.5/etc/hadoop/yarn-site.xml |
用下面的代码替换yarn-site.xml中的内容:
7 配置计算框架mapred-site.xml
复制mapred-site-template.xml文件:
[lyu@master hadoop-2.7.5]$ cp ~/hadoop-2.7.5/etc/hadoop/mapred-site.xml.template ~/hadoop-2.7.5/etc/hadoop/mapred-site.xml |
使用vi编辑:
[lyu@master ~]$ vi ~/hadoop-2.7.5/etc/hadoop/mapred-site.xml |
用下面的代码替换mapred-site.xml中的内容
|
8 在master节点配置slaves文件
使用vi编辑:
[lyu@master hadoop-2.7.5]$ vi ~/hadoop-2.7.5/etc/hadoop/slaves |
用下面的代码替换slaves中的内容:
slave |
9 复制到从节点
使用下面的命令将已经配置完成的Hadoop复制到从节点HadoopSlave上:
lyu@master hadoop-2.7.5]$ cd [lyu@master ~]$ scp -r hadoop-2.7.5 lyu@slave:~/ |
注意:因为之前已经配置了免密钥登录,这里可以直接远程复制。
下面所有的操作都使用lyu用户,切换lyu用户的命令是:
su - lyu |
密码是:lyu
1 配置Hadoop启动的系统环境变量
该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作,操作命令如下:
[lyu@master hadoop-2.7.5]$ cd [lyu@master ~]$ vi ~/.bash_profile |
将下面的代码追加到.bash_profile末尾:
#HADOOP export HADOOP_HOME=/home/lyu/hadoop-2.7.5 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH |
然后执行命令:
[lyu@master ~]$ source ~/.bash_profile |
2 创建数据目录
该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作。
在lyu的用户主目录下,创建数据目录,命令如下:
[lyu@master ~]$ mkdir /home/lyu/hadoopdata |
3 启动Hadoop集群
3.1、格式化文件系统
格式化命令如下,该操作需要在HadoopMaster节点上执行:
[lyu@master ~]$ hdfs namenode -format |
. . . . . .
3.2、启动Hadoop
使用start-all.sh启动Hadoop集群,首先进入Hadoop安装主目录,然后执行启动命令:
[lyu@master ~]$ cd ~/hadoop-2.7.5 [lyu@master hadoop-2.7.5]$ sbin/start-all.sh |
执行命令后,提示出入yes/no时,输入yes。
3.3、查看进程是否启动
在HadoopMaster的终端执行jps命令,在打印结果中会看到4个进程,分别是ResourceManager、Jps、NameNode和SecondaryNameNode,如下图所示。如果出现了这4个进程表示主节点进程启动成功。
[lyu@master hadoop-2.7.5]$ jps
3588 Jps
3333 ResourceManager
2984 NameNode
3176 SecondaryNameNode
[lyu@master hadoop-2.7.5]$
在HadoopSlave的终端执行jps命令,在打印结果中会看到3个进程,分别是NodeManager、DataNode和Jps,如下图所示。如果出现了这3个进程表示从节点进程启动成功。
[lyu@slave ~]$ jps[lyu@slave ~]$
3.4、Web UI查看集群是否成功启动
在HadoopMaster上启动Firefox浏览器,在浏览器地址栏中输入输入http://master:50070/,检查 namenode 和 datanode 是否正常。UI页面如下图所示。
在HadoopMaster上启动Firefox浏览器,在浏览器地址栏中输入输入http://master:18088/,检查 Yarn是否正常,页面如下图所示。
3.5、运行PI实例检查集群是否成功
进入Hadoop安装主目录,执行下面的命令:
[lyu@master~]$ hadoop jar ~/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar pi 10 10 |
会看到如下的执行结果:
最后输出: