搭建完全分布式具体步骤
一、 安装jdk【可参考上一篇文章 hadoop搭建伪分布模式】
二、安装hadoop【同上】
三、 配置环境变量【同上】
四、 设置无密登录【同上】
五、 设置hadoop配置文件【同上】
六、克隆三个虚拟机
【选中虚拟机右键】–> 【管理】–> 【克隆】–> …【创建完整克隆】–> 【设置虚拟机路径】
七、 关闭防火墙
查看是否关闭:chkconfig iptables --list
来关闭防火墙:chkconfig iptables off
八、 修改静态IP+修改主机名【root权限】
详细参考文章Linux中配置静态ip以及如何修改机器名
第八步,在操作的时要对每一台虚拟机进行配置和修改,
在修改hosts文件时,我是在slave01中操作的,在远程拷贝时就要scp其他三台
-
查看静态IP、网关、子网掩码
-
擦查看MAC地址是否与eth0匹配
命令语句:gedit /etc/udev/rules.d/70-persistent-net.rules
例:ATTR{address}==“00:0c:29:3b:ea:a5” NAME=“eth0” -
修改【/etc/sysconfig/network-scripts/ifcfg-eth0】
命令语句:gedit /etc/sysconfig/network-scripts/ifcfg-eth0
-
重启机器,再进行验证
重启命令:reboot
验证命令:ping 你的主机ip
-
修改机器名
1)命令语句:vi /etc/sysconfig/network
修改:HOMENAME=slave01 【slave01是你自己取的机器名名字】
2)并在 /etc/hosts 中追加本机ip
【因为我克隆出来了三台,所以追加了三台】192.168.253.10 master
192.168.253.11 slave01
192.168.253.12 slave02
192.168.253.13 slave033)方便起见,不用再其他虚拟机中重复修改,我们直接复制到其他机器上【跨机器远程拷贝命令scp】
基本语法:
scp [-r] 文件/目录 用户名@机器名://路径 #如果拷贝为目录,则-r;
命令语句:scp /etc/hosts root@master://etc/
scp /etc/hosts root@slave02://etc/
scp /etc/hosts root@slave03://etc/
九、 hadoop完全分布式文件配置
所要修改的文件都在 hadoop安装目录/etc/hadoop/ 下
-
修改 core-site.xml 文件
fs.defaultFS=hdfs://master:9000
hadoop.tmp.dir=/home/hadoop/tmp
-
修改 hdfs-site.xml 文件
dfs.blocksize=128m
dfs.replication=3
dfs.namenode.name.dir=file://${hadoop.tmp.dir}/dfs/name
dfs.datanode.data.dir=file://${hadoop.tmp.dir}/dfs/data<property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.blocksize</name> <value>128m</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file://${hadoop.tmp.dir}/dfs/name,/home/dragon/tmp/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file://${hadoop.tmp.dir}/dfs/data</value> </property>
-
修改 yarn-site.xml文件
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
-
修改 mapreduce-site.xml 文件
先复制一份mapred-site.xml.template文件,命名为mapred-site.xml,再进行修改
mapreduce.framework.name=yarn
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
-
修改 slaves 文件
每行添加机器名,作为datanode节点开启的配置文件
slave01
slave02
slave03 -
【注意】
所有的配置文件修改完后,要远程拷贝要其他机器中
自己也可以一台一台的进行配置,太过于麻烦
第九步,我是在mster主机器上进行修改配置的,所以要远程拷贝到其他三台从节点上scp -r ~/soft/hadoop/etc/full_hadoop/ dragon@slave01:~/soft/hadoop/etc/
scp -r ~/soft/hadoop/etc/full_hadoop/ dragon@slave02:~/soft/hadoop/etc/
scp -r ~/soft/hadoop/etc/full_hadoop/ dragon@slave03:~/soft/hadoop/etc/ -
修改hadoop默认配置文件软链接,所有节点上操作以下指令
cd $HADOOP_HOME/etc
rm -r hadoop
ln -s full_hadoop/ hadoop
【注意一点】
hadoop的默认配置路径【$HADOOP_HOME/etc/hadoop】
建议采用软连接的方式来配置hadoop的默认路径!!!
在这之前我将$HADOOP_HOME/etc/下的hadoop目录重命名为full_hadoop
所以在配置文件修改完毕后我远程拷贝的自建的full_hadoop目录,再创建的软连接
十、格式化
rm -r /home/dragon/tmp/hadoop-hadoop
#dragon为用户名,在所有节点上执行
hdfs namenode -format
#在master主节点上执行
十一、测试
start-dfs.sh
#在master节点上执行
start-yarn.sh
#在master节点上执行
查看各个节点的守护进程情况,例如:
- master:
jps
4933 SecondaryNameNode
5095 ResourceManager
4700 NameNode
5166 Jps - slave01:
jps
4021 DataNode
4262 Jps
4155 NodeManager - slave02:
jps
3752 DataNode
3866 NodeManager
3963 Jps - slave03:
jps
3748 DataNode
3865 NodeManager
3934 Jps