因为我是先配置了伪分布式,在此基础上配置完全分布式,所以有些文件不用修改,就没有截图,但是步骤都有的。
配置的内容均以我自己的环境为基础。因为克隆的是差不多都配了的机器,所以一些比如网络、jdk的设置就不用考虑了,没有的需要重新来。
1 环境准备
1 从已有的hadoop01,克隆2台虚拟机分别为hadoop02,hadoop03。
2 修改克隆的的机器的hostname和静态IP地址
(要先进入root)
修改ip地址:
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改主机名:
vi /etc/hostname
3 配置每台主机的hosts
增加映射:
192.168.117.63 hadoop01
192.168.117.64 hadoop02
192.168.117.65 hadoop03
2 集群的配置
2.1 集群部署规划
hadoop01 | hadoop02 | hadoop03 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
2.2 配置集群
1 核心配置文件 core-site.xml
之前伪分布式配置过的可以不用配。
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/lane/software/hadoop-2.7.3/data/tmp</value>
</property>
2 HDFS配置文件
(1)配置hadoop-env.sh
修改jdk路径:
export JAVA_HOME=/usr/local/jdk8
伪分布式已经改过的不用改
(2)配置hdfs-site.xml
<!--之前伪分布式副本数设置为1,现在设置为3,其实默认的也是3,把以前副本数的配置删掉也可以-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:50090</value>
</property>
3 YARN配置文件
(1)配置yarn-env.sh
配置jdk路径:
export JAVA_HOME=/usr/local/jdk8
伪分布式配置过的可以不配
(2) 配置yarn-site.xml
[lane@hadoop01 hadoop]$ $ vi yarn-site.xml
之前伪分布式,rm设置的就是本机,现在改成自己规划的rm的主机。
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
4 MapReduce配置文件
以下关于MR的配置,配置过伪分布式的都不用配置。
(1)配置mapred-env.sh
[lane@hadoop01 hadoop]$ vi mapred-env.sh
export JAVA_HOME=/usr/local/jdk8
(2)配置mapred-site.xml
[lane@hadoop01 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[lane@hadoop01 hadoop]$ vi mapred-site.xml
在该文件中增加如下配置
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3 分发配置文件
在集群上分发配置好的Hadoop配置文件 。
可以写脚本分发,也可以自己手动每个都修改下。
4 配置SSH
1 在hadoop01上生成公钥和私钥。
ssh-keygen -t rsa
连敲三下回车。
2 将公钥拷贝到hadoop01、02和03上
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
3 在hadoop02 上生成公钥和私钥并拷贝到别的机器上。(和上面的方法一样)
ssh-keygen -t rsa
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
(因为hadoop02是克隆hadoop01的,我之前在hadoop01上就配置过ssh了,所以02拷贝了hadoop01的私钥,现在重新生成覆盖下)
5 启动集群
5.1 配置slaves
slaves文件在hadoop安装目录/etc/hadoop下,
在slaves文件里加上dn节点:
hadoop01
hadoop02
hadoop03
记得把slaves文件同步到所有节点上。
5.2 启动集群
(1)如果集群是第一次启动,需要格式化NameNode
(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log文件夹数据)
[lane@hadoop01 hadoop-2.7.3]$ bin/hdfs namenode -format
(2)启动HDFS
[lane@hadoop01 hadoop-2.7.3]$ sbin/start-dfs.sh
(3)启动YARN
注意在resourcemanager所在机器上启动yarn
[lane@hadoop01 hadoop-2.7.3]$ sbin/start-yarn.sh
启动完观察下各个节点:
启动成功。