一、部署前的准备

创建三台虚拟机并且设置虚拟机的ip,名称:

  1. 创建好虚拟机,设置ip
    设置ip地址首先点击vm上的编辑按钮下虚拟网络编辑器查看VMnet8的ip地址是多少,比如我这ip地址为192.168.223.0,那么我的虚拟机的ip地址前3位就需要设置为192.168.223

    然后打开虚拟机登录,输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33进行设置。点击 i 进行编辑
    第一步,设置为静态,更改成BOOTPROTO=static
    第二步,设置重启激活网卡,更改成ONBOOT=yes
    第三步,添加IP地址,添加IPADDR=192.168.223.200(最后一位取决你的网段分配情况,不是随便填写)
    第四步,添加子网掩码,添加NETMASK=255.255.255.0
    第五步,添加网关地址,添加GATEWAY=192.168.223.2
    第六步,添加DNS地址,添加DNS1=114.114.114.114
    DNS2=8.8.8.8

    设置完毕,按Esc输入:wq,退出保存。

    退出后,使用命令systemctl restart network重置网卡,使用ip addr查看。
  2. 克隆虚拟机
    首先对刚刚设置好的虚拟机进行关机,然后右击虚拟机下的管理下的克隆,选择创建完整克隆,一共需要创建两个克隆,创建完成后在创建好的两台克隆虚拟机上进行上面的操作,修改IP地址,因为这两台虚拟机是克隆的所以我们修改IP地址只需要修改IPADDR那一项就行了,我的三台虚拟机分别是192.168.223.200192.168.223.201192.168.223.202,设置好后使用工具xshell连接这3台虚拟机。
  3. 修改主机名
    三台机器都要操作
    主机的hostname分别改成:master、slave1、slave2,修改方法如下:
    第一台主机使用命令:hostname master
    第二台主机使用命令:hostname slave1
    第三台主机使用命令:hostname slave2
    4.修改主机映射
    三台机器都要操作
    首先确定三台主机的ip和对应的hostname,比如我的如下:
    192.168.223.200 master
    192.168.223.201 slave1
    192.168.223.202 slave2
    然后在三台主机上执行命令:vi /etc/hosts
    在文件最下面增加三台ip地址和hostname的对应关系,比如我的:

    5.禁用防火墙
    三台机器都要操作
    使用命令:systemctl stop firewalld.service关闭防火墙
    使用命令:systemctl disable firewalld.service 禁止防火墙服务器
    6.配置SSH免密码通信
    在第一台机器操作
    输入命令 ssh-keygen -t rsa 然后连续按下三次回车然后输入命令
    ssh-copy-id master 按下回车后输入master所对应的虚拟机密码
    ssh-copy-id slave1 按下回车后输入slave1所对应的虚拟机密码
    ssh-copy-id slave2 按下回车后输入slave2所对应的虚拟机密码
    设置完后进行scp命令操作进行另外两台虚拟机的文件更新
    scp -r /etc/hosts root@slave1:/etc/host
    scp -r /etc/hosts root@slave2:/etc/host
    至此,完成了三台机器SSH免密码通信的配置。配置完成后需要进行测试,
    在任意机器输入 ssh 主机名 进行通信,不提示输入密码则为成功

二、解压jdk安装包

在master上操作

  1. 将jdk安装包上传到虚拟机(master)
  2. hadoop架构中ip配置 hadoop配置ip地址_分布式

  3. 创建目录:mkdir /usr/java
    解压jdk到/usr/java目录下:tar -zxvf jdk-8u101-linux-x64.tar.gz -C /usr/java
    解压后,进入到/usr/java目录下:cd /usr/java
    创建jdk的软连接:ln -s jdk1.8.0_101 jdk
  4. hadoop架构中ip配置 hadoop配置ip地址_hdfs_02

  5. 使用master发送给slave1和slave2,命令:
    scp -r /usr/java/jdk root@slave1:/usr/java
    scp -r /usr/java/jdk root@slave2:/usr/java
  6. 配置环境变量
    使用命令:vi /etc/profile注意:这个文件夹里面的内容不要删除!!!
    输入 i 进行编辑,在最后面添加如下内容(这里直接把zookeeper和hadoop的环境变量也添加进去了):
JAVA_HOME=/usr/java/jdk
HADOOP_HOME=/usr/local/src/hadoop
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME CLASSPATH PATH HADOOP_HOME

hadoop架构中ip配置 hadoop配置ip地址_分布式_03


发送给slave1和slave2,使用命令:

scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile

然后三台机器都输入:source /etc/profile,使配置文件生效。

3. 验证JDK是否安装成功

输入java -version,验证jdk是否安装成功。

hadoop架构中ip配置 hadoop配置ip地址_hdfs_04

三、Hadoop集群环境的搭建
  1. 解压Hadoop安装包
    将Hadoop安装包上传到虚拟机(master)
  2. hadoop架构中ip配置 hadoop配置ip地址_分布式_05

  3. 解压Hadoop到/usr/local/src目录下:tar -zxvf hadoop-2.7.4.tar.gz -C /usr/local/src/
    解压后,进入到/usr/java目录下:cd /usr/local/src
    创建jdk的软连接:ln -s hadoop-2.7.4/ hadoop
    2.修改Hadoop配置文件
    首先进入hadoop配置文件的目录下,也就是刚才解压后的hadoop文件下的etc下的hadoop,如果不是按照我的目录来写的就使用自己的方法进入hadoop配置文件目录下,如果目录和我的是一样的就输入 cd /usr/local/src/hadoop/etc/hadoop
    vi core-site.xml
<property>
		<name>fs.defaultFS</name>
		<value>hdfs://master:9000</value>
	</property>
	<property>
		<name>HADOOP.tmp.dir</name>
		<value>/usr/local/usr/hadoop/data/tmp</value>
	</property>

vi hadoop-env.sh

export JAVA_HOME=/usr/java/jdk

vi hdfs-site.xml

<property>
		<name>dfs.replication</name>
		<value>2</value>
</property>
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>master:50090</value>
</propetry>

vi yarn-env.sh

export JAVA_HOME=/usr/java/jdk

vi yarn-site.xml

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
</property>

vi mapred-env.sh

export JAVA_HOME=/usr/java/jdk

先cp mapred-site.xml.template mapred-site.xml
再vi mapred-site.xml

<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>

vi slaves 注意:里面的东西需要全部删完再添加

slave1
slave2

然后使用scp命令对另外两台的hadoop配置文件更新

scp -r /usr/local/src/hadoop-2.7.4/ root@slave1:/usr/local/src/

scp -r /usr/local/src/hadoop-2.7.4/ root@slave2:/usr/local/src/

3. 创建软连接

三台机器都要操作

ln -s hadoop-2.7.4/ hadoop

4. 启动HDFS和YARN

格式化HDFS

在master机器上执行:

hdfs namenode -format

启动HDFS集群

在master机器上执行:

start-dfs.sh

启动Yarn

在master上操作:

start-yarn.sh

5. 验证HDFS和YARN是否启动成功

在master下输入jps,看到如下进程:

hadoop架构中ip配置 hadoop配置ip地址_hadoop架构中ip配置_06


在slave1和slave2输入jps,看到如下进程:

hadoop架构中ip配置 hadoop配置ip地址_hdfs_07


输入网址:http://192.168.223.200:50070(master ip),通过这个Web界面查看namenode的启动情况。

hadoop架构中ip配置 hadoop配置ip地址_hadoop架构中ip配置_08


输入网址:http://192.168.223.200:8088(master ip),通过这个Web界面查看yarn的启动情况

hadoop架构中ip配置 hadoop配置ip地址_hdfs_09

至此,Hadoop完全分布式部署成功