**
hadoop完全分布式环境搭建
**
(基于伪分布式见前文)
1、 将伪分布虚机克隆2台,加原虚机共三台,分别命名为master slave1 slave2
2、 修改3台主机IP地址
master 192.168.110.11/24
slave1 192.168.110.12/24
slave2 192.168.110.13/24
IP修改命令(以master为例)
nmcli connectiom show
nmcli connection modify ens33 ipv4.address 192.168.110.11/24 ipv4.gateway 192.168.110.2 ipv4.dns 192.168.110.2 ipv4.method manual autoconnect yes
nmcli connection up ens33
3、 修改三台主机名(分别为 master slave1 slave2 与IP对应)
例:master
hostname master
vi /etc/hostname //写入内容如下
master
4、 修改三台主机的hosts文件(三台一样)
vi /etc/hosts //写入如下内容
192.168.110.11 master
192.168.110.12 slave1
192.168.110.13 slave2
测试:(使用主机名可以Ping通)
ping master
ping slave1
ping slave2
5、 关闭防火墙(3台主机上都做)
systemctl disable firewalld #永久关闭
systemctl stop firewalld #临时关闭
6、 SSH免密配置
(1)删除所有主机上的~/.ssh/*
rm -rf /root/.ssh/*
(2)在master上生成密钥对
cd /root/.ssh/
ssh-keygen
(3)将master的公钥文件id_rsa.pub远程复制到其他主机上
cp id_rsa.pub authorized_keys //在master上复制公钥到指定位置
scp id_rsa.pub root@slave1:/root/.ssh/authorized_keys //在slave上复制公钥文件到指定位置
scp id_rsa.pub root@slave2:/root/.ssh/authorized_keys
(4)测试在master上可以无密码登录到master slave1 slave2上
ssh mater
ssh slave1
ssh slave2
7、在master上进行完全分布式配置(配置文件所在目录${hadoop_home}/etc/hadoop)
①[cores-site.xml]
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master/</value>
</property>
</configuration>
②[hdfs-site.xml]
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
③[yarn-site.xml]
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
④[slaves]
slave1
slave2
⑤[hadoop-env.sh]
export JAVA_HOME=/soft/jdk
8、分发配置
cd /soft
scp -r hadoop/ root@slave1:/soft/
scp -r hadoop/ root@slave2:/soft/
9、删除hadoop日志
cd /soft/Hadoop/logsrm -rf *
10、格式化文件系统(在master端完成)
hadoop namenode -format
//可能出现的问题:多次格式化namenode 导致了namenode的clusterID和datanode 的clusterID不一致,导致hadoop2.7.3 datanode无法启动//解决办法:删除/tmp目录下的hadoop-用户目录
11、启动服务
start-dfs.sh //仅需在master上开启即可
start-yarn.sh //仅需在master上开启即可
12、验证是否启动
jps (namenode节点上有以下进程)
1973 ResourceManager
2229 Jps
1671 NameNode
1839 SecondaryNameNode
jps (在datanode节点上有以下进程)
27074 NodeManager
27172 Jps
26986 DataNode
13、网页检测http://192.168.110.11:50070/