大数据学习之hadoop——02完全分布式集群搭建

创建节点的两种方式

  • 传统使用iso镜像的方式创建多个节点
  • 以完整的原型机为基础,做克隆

本文使用的方法为第二种:对已经进行伪分布式的机器(node101)进行克隆两次
如何进行伪分布式集群搭建:hadoop学习之HDFS文件系统——01伪分布式集群搭建

1、创建节点

鼠标右键伪分机器->管理->克隆->虚拟机中的当前状态->创建完整克隆->填写虚拟机名称以及选择虚拟机存储位置
直接克隆出两台机器,分别命名为node102、node103
在这里插入图片描述

2、网络配置(node102,node103)

  • 2.1把eth0网卡行注释掉,然后把eth1改成eth0,复制当前eth0里的mac地址
[bduser101@node102 ~]$ su root
密码:
[root@node102 bduser101]# vi /etc/udev/rules.d/70-persistent-net.rules

在这里插入图片描述

  • 2.2把mac地址粘贴至图示位置,修改ip地址为192.168.159.102

[root@node102 bduser101]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述

  • 2.3重启网卡
[root@node102 bduser101]# service network restart
正在关闭接口 eth0: 设备状态:3 (断开连接)
                                                           [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0: 活跃连接状态:激活的
活跃连接路径:/org/freedesktop/NetworkManager/ActiveConnection/2
                                                           [确定]

3、修改主机名(node102,node103)

修改HOSTNAME为当前机器名

[root@node102 bduser101]# vi /etc/sysconfig/network

在这里插入图片描述

4、在主节点(node101)创建两个脚本

[bduser101@node101 bin]$ su root
[root@node101 ~]$ cd /usr/local/bin/
[root@node101 ~]$ touch xcall
[root@node101 ~]$ touch xsync
[root@node101 ~]$ chmod a+x xcall
[root@node101 ~]$ chmod a+x xsync
[root@node101 ~]$ vi xcall
  • 在xcall文件中填写如下代码
    该脚本的作用是在主节点就可以对其余节点执行操作命令
    for循环中的host=102;host<=103是指对那些节点进行操作,如果你的机器名不是node102,node103,就需要修改for循环
#!/bin/bash
pcount=$#
if((pcount==0));then
        echo no args;
        exit;
fi

echo --------localhost----------
$@
for((host=102; host<=103; host++)); do
        echo ----------node$host---------
        ssh node$host $@
done

使用样例xcall jps查看所有节点当前运行的进程

  • 在xsync文件中填写如下代码
    该脚本的作用是将带有绝对路径的文件或者文件夹同步到for循环中的机器中,同样如果机器名不同需要修改for循环中的内容
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=102; host<=103; host++)); do
        #echo $pdir/$fname $user@hadoop$host:$pdir
        echo --------------- node$host ----------------
        echo rsync -rvl $pdir/$fname $user@node$host:$pdir
        rsync -rvl $pdir/$fname $user@node$host:$pdir
done

使用样例xsync /etc/hosts:将/etc/hosts文件同步至node102,node103的相同位置下

5、修改映射关系

vim /etc/hosts

在这里插入图片描述
使用xsync脚本进行同步[root@node101 bin]# xsync /etc/hosts

6、修改hadoop配置文件(node101)

[bduser101@node101 ~]$ cd ~/modules/hadoop/etc/hadoop/
[bduser101@node101 ~]$ vi 以下几个文件
  • 6.1 slaves:设置dataNode位置
    在这里插入图片描述
  • 6.2hdfs-site.xml
    在这里插入图片描述
    使用xsync脚本同步配置xsync ~/modules/hadoop/etc/hadoop

7、格式化(node101)

[bduser101@node101 hadoop]$ hadoop namenode -format

8、启动服务(node101)

[bduser101@node101 hadoop]$ start-all.sh

使用xcall查看所有节点进程

[bduser101@node101 hadoop]$ xcall jps
--------localhost----------
2800 NameNode
2914 DataNode
3622 Jps
3192 ResourceManager
3305 NodeManager
----------node102---------
3495 NodeManager
3627 Jps
3375 DataNode
----------node103---------
2546 Jps
2322 SecondaryNameNode
2212 DataNode
2405 NodeManager

注意所有节点需要关闭防火墙以及时间同步

猜你喜欢

转载自blog.csdn.net/nothair/article/details/104870048
今日推荐