Hadoop2.7.2 分布式集群搭建(CentOS 7)

本文详细介绍了如何在CentOS 7环境下搭建Hadoop 2.7.2分布式集群,包括环境准备、安装JDK和Hadoop、配置SSH免密登录、集群的部署和启动。通过集群分发脚本实现配置文件同步,简化多节点管理。最后,文章展示了如何群起集群并检查运行状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境

  • 环境准备

    CentOS 7 64位 、Hadoop2.7.2、jdk1.8

    这里使用的是虚拟机安装CentOS 7 系统进行环境搭建。

  • 下载地址

    1. CentOS 7 镜像:https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/
    2. Hadoop 2.7.2 https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/
    3. jdk1.8 https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

准备工作

  • 准备3台 CentOS 7 虚拟机

    虚拟机有克隆的功能,所以可以先准备好一台虚拟机,设置好NAT联网模式,关闭了防火墙,设置了静态IP,然后再克隆出另外2台。

    但是分布式集群中每个节点的ip地址是不同的,因此还要分别修改这3台主机的ip地址

    但是hadoop、jdk的安装就不要使用克隆了,在真实的生产环境中使用的肯定不是虚拟机,这就得学习工作中会用到的一些东西,比如scp,比如写个集群分发脚本。

  • 设置网络连接方式为NAT、关闭防火墙、设置静态ip

    没有进行虚拟机网络连接方式为NAT 的先看之前的博客记录:虚拟机使用NAT模式联网 。然后再关闭防火墙,给节点设置不同的静态ip,详细步骤也在上面的博客中。

    博客的大致内容:

    在这里插入图片描述

    这里,我准备把3个节点的IP地址主机名分别配置如下:

    IP地址 主机名
    192.168.137.101 hadoop101
    192.168.137.102 hadoop102
    192.168.137.103 hadoop103

    如图,把ip地址改成192.168.137.101就可以了。

    在这里插入图片描述

  • 修改主机名

    3个节点的主机名称我准备修改为hadoop101,hadoop102和hadoop103。这里就以hadoop101的修改为例(由于我从之前的虚拟机hadoop100克隆过来的,因此原本的主机名是hadoop100)。

    通过hostnamectl set-hostname [新的主机名]可以永久修改主机名:

    [ht@hadoop100 ~]$ hostnamectl set-hostname hadoop101
    [ht@hadoop100 ~]$ hostname        #使用hostname命令查看主机名
    hadoop101
    

  • 配置集群各个主机名到IP地址的映射

    修改 /etc/hosts,配置主机名到IP地址的映射:

    [ht@hadoop100 ~]$ sudo vim /etc/hosts
    

    新增以下内容:

    192.168.137.101 hadoop101
    192.168.137.102 hadoop102
    192.168.137.103 hadoop103
    

    在这里插入图片描述

    注:图中hadoop100是我之前使用的伪分布式主机,这里无需添加它。

    最后以hadoop101为例,使用ping命令检查各个节点之间的网络是否互通。

    [ht@hadoop101 ~]$ ping hadoop102
    [ht@hadoop101 ~]$ ping hadoop103
    

安装JDK和Hadoop

这里我们使用原先已经安装jdk和hadoop的伪分布式节点hadoop100来进行scp(安全拷贝)。

如果原先没有安装过hadoop的虚拟机,可以参照这篇博客Hadoop单机与伪分布式环境(CentOS)中的相关步骤(安装JDK、Hadoop单机配置) 在hadoop101上安装jdk和hadoop,然后再通过scp拷贝到hadoop102和hadoop103。

scp安全拷贝

scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname

命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称

使用scp命令将hadoop100上的jdk与hadoop安装目录分别拷贝到hadoop101,102,103,最后还要将配置文件/etc/profile也拷贝过去,记得在每个节点上执行souce /etc/profile使之生效。

[ht@hadoop100 ~]$ scp -r /opt/module/ root@hadoop101:/opt/module
The authenticity of host 'hadoop101 (192.168.137.101)' can't be established.
ECDSA key fingerprint is xxx.
ECDSA key fingerprint is xxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hadoop101,192.168.137.101' (ECDSA) to the list of known hosts.
root@hadoop101's password: 

再分别拷贝到hadoop102,hadoop103上:

[ht@hadoop100 ~]$ scp -r /opt/module/ root@hadoop102:/opt/module
[ht@hadoop100 ~]$ scp -r /opt/module/ root@hadoop103:/opt/module

注:

拷贝到hadoop101和其余两个节点上之所以使用的是它们的root用户,是因为/opt这个目录所属用户和用户组都是root,在其中进行创建新目录等操作需要root权限。

拷贝过来的/opt/module目录,需要在hadoop101、hadoop102、hadoop103上修改文件的所有者和所有者组:sudo chown ht:ht -R /opt/module

Hadoop分布式集群配置

集群分发脚本

之前在Hadoop伪分布式的搭建中修改了hadoop的一些配置文件,同样地,在完全分布式集群中也需要修改一些配置文件。那么问题就来了,我们现在有3个节点,难道要一个一个地去修改配置文件吗?这显然很浪费时间,而且容易出错。

因此,我们可以写一个集群分发脚本来自动同步多个节点的同一个配置文件。

在hadoop101的用户ht的home目录下先创建一个目录:

[<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值