:此次搭建实在伪分布的基础上进行完全分布式搭建,hadoop版本是3.3.1,安装目录是/opt/installs/hadoop

一、网络和节点规划

  • 网络规划
主机名 ip地址 节点类型
bigdata01 192.168.17.160 master
bigdata02 192.168.17.161 slave1
bigdata03 192.168.17.162 slave2
  • 节点规划
bigdata01 bigdata02 bigdata03
NameNode secondNameNode /
dataNode dataNode dataNode

二、环境准备

完全分布式搭建至少需要三台虚拟机,在进行伪分布搭建时已经有一台虚拟机,并且安装了jdk和SSH服务,因此把第一台作为master节点,其他两台作为slave节点(bigdata02,bigdata03).

1.克隆虚拟机

在这里插入图片描述

在克隆时要先关闭虚拟机,否则克隆不了.
本集群选择创建完整克隆,然后分别给虚拟机曲目bigdata02和bigdata03.

在这里插入图片描述

2.修改映射名,ip地址和映射关系

克隆的虚拟机所有配置文件都是一样的,需要根据网络规划对克隆的两台虚拟机进行操作

bigdata02中进行,bigdata03参考一下操作配置

#修改hostname
vi /etc/hostname

hostname bigdata02
#修改ip地址
vi  /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR=192.168.17.161

bigdata01中进行配置hosts

#配置hosts
vi /etc/hosts

192.168.17.160 bigdata01
192.168.17.161 bigdata02
192.168.17.163 bigdata03

三台虚拟机的hosts文件是一样的,可以通过scp远程拷贝到bigdata02,bigdata03.

scp -r /etc/hosts root@bigdata02:/etc/
scp -r /etc/hosts root@bigdata03:/etc/

修改hosts后重启网络

service  network  restart

3.设置免密登录

#1、需要在bigdata01上生成公钥和私钥,四次回车
ssh-keygen -t rsa

#2、将公钥传递给其他虚拟机
ssh-copy-id bigdata01
ssh-copy-id bigdata02
ssh-copy-id bigdata03

4.关闭防火墙,修改安全机制

#禁用防火墙
systemctl disable firewalld

#修改安全机制
vi /etc/selinux/config

 修改⾥⾯的 SELINUX=disabled

在这里插入图片描述

三、配置hadoop集群

1.配置java,hadoop的环境变量

#配置bigdata01的环境变量
vi /etc/profile


export HADOOP_HOME=/opt/installs/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

jdk在之前已经配置过在这里插入图片描述

#拷贝环境变量到另外两台
scp -r /etc/profile root@bigdata02:/etc/
scp -r /etc/profile root@bigdata03:/etc/

#在01,02,03上分别刷新
source /etc/profile

2.配置分布式集群环境

路径:/opt/installs/hadoop/etc/hadoop

cd /opt/installs/hadoop/etc/hadoop

vi core-site.xml

<configuration>
    <!-- 设置namenode节点 -->
    <!-- 注意: hadoop1.x时代默认端⼝9000 hadoop2.x时代默认端⼝8020 hadoop3.x时 代默认端⼝ 9820 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bigdata01:9820</value>
    </property>
    
    <!-- hdfs的基础路径,被其他属性所依赖的⼀个基础路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/installs/hadoop/tmp</value>
    </property>
</configuration>

vi hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--secondarynamenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>bigdata02:9868</value>
    </property>
    <!-- namenode守护进程的http地址:主机名和端⼝号。参考守护进程布局 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>bigdata01:9870</value>
    </property>
</configuration>

vi hadoop-env.sh

export JAVA_HOME=/opt/installs/jdk
# Hadoop3中,需要添加如下配置,设置启动集群⻆⾊的⽤户是谁
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

vi workers

bigdata01
bigdata02
bigdata03

3. hadoop和环境变量远程拷贝到bigdata02,bigdata03

此次搭建是在伪分布的基础上操作,因此首先需要把bigdata01的hadoop安装目录下的logs,tmp文件删除,以便后续格式化

#将bigdata01上的hadoop 拷贝给 02 和 03
scp -r /opt/installs/hadoop/  root@bigdata02:/opt/installs/
scp -r /opt/installs/hadoop/  root@bigdata03:/opt/installs/

#拷贝环境变量
scp -r /etc/profile root@bigdata02:/etc/
scp -r /etc/profile root@bigdata03:/etc/

在02 和 03 上刷新环境变量
source /etc/profile

4.格式化nameNode

hdfs namenode -format

四、启动集群

start-dfs.sh

通过jps查看进程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

至此,hadoop完全分布式搭建成功!

Logo

更多推荐