Hadoop完全分布式集群搭建

文章目录

  • 一、克隆
  • 二、网络配置
  • 三、SSH服务配置
  • 四、hadoop完全分布式配置


一、克隆

1.在虚拟机关机的状态下选择克隆

Hadoop完全分布式集群搭建_第1张图片

2.开始克隆

Hadoop完全分布式集群搭建_第2张图片

3.选择从当前状态创建

Hadoop完全分布式集群搭建_第3张图片

4.创建一个完整的克隆

Hadoop完全分布式集群搭建_第4张图片

5.选择新的虚拟机存储位置(选择内存充足的磁盘)

Hadoop完全分布式集群搭建_第5张图片

6.开始克隆

Hadoop完全分布式集群搭建_第6张图片

7.克隆完成

Hadoop完全分布式集群搭建_第7张图片

8.同样的方法克隆第二台虚拟机

Hadoop完全分布式集群搭建_第8张图片

9.在计算机中存在三台虚拟机

Hadoop完全分布式集群搭建_第9张图片

将第一台虚拟机更名为hadoop01
在这里插入图片描述

修改hadoop01的主机名为hadoop01

在这里插入图片描述

修改hadoop02的主机名为hadoop02

Hadoop完全分布式集群搭建_第10张图片

同样的方式修改hadoop03的主机名为hadoop03

Hadoop完全分布式集群搭建_第11张图片

二、网络配置

查看三台虚拟机IP地址,该地址为动态分配

Hadoop完全分布式集群搭建_第12张图片
Hadoop完全分布式集群搭建_第13张图片

Hadoop完全分布式集群搭建_第14张图片

设置三台主机IP地址为固定地址:

  1. 点击【编辑】——【虚拟网络编辑器】
    Hadoop完全分布式集群搭建_第15张图片

  2. 【选择VMnet】模式——【NAT设置】
    Hadoop完全分布式集群搭建_第16张图片

  3. 输入自己设置的子网IP和子网掩码

我这里设置的 子网IP:192.168.10.0
子网掩码:255.255.255.0

Hadoop完全分布式集群搭建_第17张图片hadoop01主机设置固定IP地址:
输入命令:

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改文件信息:

IPADDR=192.168.10.131
GATEWAY=192.168.10.2
NETMASK=255.255.255.0
DNS1=8.8.8.8

Hadoop完全分布式集群搭建_第18张图片
执行命令重启网络服务:

systemctl restart network.service

![在这里插入图片描述](https://img-blog.csdnimg.cn/1c6a97ea69b14677a05b37727d1a407f.png

查看配置后的网络信息:

ifconfig

Hadoop完全分布式集群搭建_第19张图片

hadoop02和hadoop03配置方法和hadoop01方法一致

Hadoop完全分布式集群搭建_第20张图片
Hadoop完全分布式集群搭建_第21张图片

三、SSH服务配置

使用Xshell工具继续操作较为方便,所以我以下的操作均在Xshell中进行

分别连接三台主机(【新建连接】——【输入主机IP】——【连接】)
Hadoop完全分布式集群搭建_第22张图片
采用输入主机名称与密码的方式进行连接
Hadoop完全分布式集群搭建_第23张图片

成功连接三台主机

在这里插入图片描述

添加主机名与IP地址的映射关系

在hadoop01、hadoop02和hadoop03三台主机中分别添加主机名与IP地址的映射关系

执行命令:

sudo vi /etc/hosts

Hadoop完全分布式集群搭建_第24张图片

内容如下:
Hadoop完全分布式集群搭建_第25张图片

复制hadoop01的公钥到hadoop02和hadoop03中
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

验证免密码登录

Hadoop完全分布式集群搭建_第26张图片

四、hadoop完全分布式配置

Hadoop完全分布式配置目标:

hadoop01 hadoop02 hadoop03
NameNode进程 DataNode进程 DataNode进程
ResourceManager进程 NodeManage进程 NodeManage进程
\ SecondaryNameNode进程 \

配置主节点

进入hadoop目录下执行命令

cd /usr/local/java/hadoop-2.7.7/etc/hadoop

在这里插入图片描述

修改core-site.xml文件

sudo vi core-site.xml

Hadoop完全分布式集群搭建_第27张图片


        
                fs.defaultFS
                hdfs://localhost:9000
        
        
                hadoop.tmp.dir
                file:/usr/local/java/hadoop-2.7.7/tmp
        



修改hdfs-site.xml

在这里插入图片描述

sudo vi hadf-site.xml


        
                dfs.replication
                2
        
        
                dfs.namenode.secondary.http-address
                hadoop02:50090/
        
        
                dfs.namenode.name.dir
                file:/usr/local/java/hadoop-2.7.7/dfs/name
        
        
                dfs.datanode.data.dir
                file:/usr/local/java/hadoop-2.7.7/dfs/data
        
        
                dfs.permissions
                false
        

        
                dfs.support.append
                true
        


修改mapred-site.xml文件

在这里插入图片描述

sudo vi mapred-site.xml

Hadoop完全分布式集群搭建_第28张图片


        
                mapreduce.framework.name
                yarn
        
                
                        mapreduce.jobtracker.address
                        hadoop01:9001
                


修改yarn-site.xml文件

在这里插入图片描述

sudo vi yarn-site.xml


        
                yarn.resourcemanager.hostname
                hadoop01
        
        
                yarn.nodemanager.aux-services
                mapreduce_shuffle
        
        
                yarn.log-aggregation-enable
                true
        
        
                yarn.log-aggregation.retain-seconds
                604800
        
        
                yarn.resourcemanager.webapp.address
                hadoop01:8099
        
        
                yarn.nodemanager.resource.memory-mb
                1024
        
        
                yarn.nodemanager.resource.cpu-vcores
                1
        


修改slaves文件

sudo vi slaves

在这里插入图片描述
slaves的内容如下:

在这里插入图片描述

在主节点hadoop01中格式化文件系统

输入命令之前需要将三台主机的防火墙关闭

  1. 查看防火墙状态:sudo systemctl status firewalld
  2. 关闭防火墙:sudo systemctl stop firewalld
  3. 重启后还想防火墙处于关闭状态:sudo systemctl disable firewalld

建议执行顺序:【1】——【2】——【3】

关闭前:

Hadoop完全分布式集群搭建_第29张图片

关闭后:

Hadoop完全分布式集群搭建_第30张图片

在主节点hadoop01中格式化文件系统

输入命令hdfs namenode -format或者hadoop namenode -format

在这里插入图片描述

集群格式化成功

Hadoop完全分布式集群搭建_第31张图片

分发配置文件

注意:如果是第二次或者多次执行格式化操作,在进行分发配置文件之前,需要将hadoop01、hadoop02、hadoop03下的hadoop-2.7.7/dfs目录下的name和data目录全部删掉后,再进行拷贝操作。

删除后文件夹为空:

Hadoop完全分布式集群搭建_第32张图片
将hadoop01节点下的hadoop-2.7.7拷贝给hadoop02和hadoop03

执行命令:

scp -r /usr/local/java/hadoop-2.7.7 hadoop02:/usr/local/java/

scp -r /usr/local/java/hadoop-2.7.7 hadoop03:/usr/local/java/

在这里插入图片描述
启动和查看Hadoop进程

在hadoop01节点启动服务

start-all.sh

Hadoop完全分布式集群搭建_第33张图片

输入jsp查看进程

hadoop01节点进程
在这里插入图片描述

hadoop02节点进程
Hadoop完全分布式集群搭建_第34张图片

hadoop03节点进程
Hadoop完全分布式集群搭建_第35张图片

关闭所有进程:
stop-all.sh

搭建过程中遇到的问题: hadoop02节点没有出现SecondaryNameNode节点,关闭集群时出现no
resourcemanager to stop、no nodemanager to stop、no namenode to stop、no
datanode to stop,但是相关进程都真实存在,并且可用。

失败原因:当启动节点服务的过程中没有指定pid的存放位置,hadoop默认会放在Linux的/tmp目录下,进程名命名规则一般是框架名-用户名-角色名.pid,而默认情况下/tmp里面的东西会自动清除,因为pid不存在,所以执行stop相关命令的时候找不到pid,也就无法停止相关进程。

解决方法: 使用自定义进程存放目录

修改配置文件hadoop-env.sh 如果没有相关的配置,就直接进行添加
在这里插入图片描述

修改配置文件mapred-env.sh
在这里插入图片描述

修改配置文件yarn-env.sh

在这里插入图片描述

以上文件配置好以后,启动hdfs和yarn,启动成功后查看jps,进程都存在,pidDir目录下有以下文件:
yarn-ttj-nodemanager.pid
yarn-ttj-resourcemanager.pid
hadoop-ttj-namenode.pid
hadoop-ttj-secondarynamenode.pid
hadoop-ttj-datanode.pid

你可能感兴趣的:(Linux,hadoop,分布式,大数据,centos,linux)