Hadoop全分布式模式搭建详细流程

本文详细介绍了如何在四台虚拟机上搭建Hadoop全分布式集群,包括关闭防火墙、设置静态IP、配置主机名和hosts文件,安装和配置JDK,以及Hadoop集群的详细配置步骤,如core-site.xml、hdfs-site.xml等文件的设置。

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

一、准备4台虚拟机
四台主机名分别设置为:master slave1 slave2 slave3(自定义)
1、关闭防火墙、设置静态IP
2、设置host文件,配置主机名

vi /etc/hostname	
#将localhost.localdomain改成master.localdomain
#master是你要定义的主机名
vi /etc/hosts
#配置hosts文件
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.180.88  master
192.168.180.100 slave1
192.168.180.101 slave2
192.168.180.102 slave3
192.168.180.103 dtinone

将配置发送到其他主机

scp  -r /etc/hosts root@slave1:/etc/
scp  -r /etc/hosts root@slave2:/etc/
scp  -r /etc/hosts root@slave3:/etc/

测试

ping slave1
ping slave2
ping slave3

二、安装配置JDK
1、将jdk压缩文件拷贝到/opt/appUtils目录下(可以自己选择)
2、解压jdk压缩文件到要安装目录下/opt/apps/

tar -zxvf jdk-8u241-linux-x64.tar.gz -C /opt/apps

3、配置jdk环境变量

vi /etc/profile
#末尾添加
export JAVA_HOME=/opt/apps/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin
#立即生效环境变量
source /etc/profile

4、将jdk复制到其他主机

scp -r /opt/apps/jdk1.8.0_241 root@slave1:/opt/apps
scp -r /opt/apps/jdk1.8.0_241 root@slave2:/opt/apps
scp -r /opt/apps/jdk1.8.0_241 root@slave3:/opt/apps

5、将环境变量配置文件复制到其他主机

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
scp -r /etc/profile root@slave3:/etc/

分别执行立即生效

source /etc/profile

测试jdk是否正确安装

java -version

显示java版本信息说明jdk安装成功

java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

三、安装hadoop集群
1、下载hadoop压缩文件,直接官网就apache可以下载
2、将压缩文件放到虚拟主机中/opt/appUtils目录(可以自己选择)
3、解压安装

tar -zxvf hadoop-2.7.3.tar.gz -C /opt/apps/

4、配置环境变量

vi /etc/profile
#末尾添加
#hadoop  //此行为注释
export HADOOP_HOME=/opt/apps/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

立即生效

source /etc/profile

5、配置hadoop集群
5.1、配置core-site.xml文件

cd /opt/apps/hadoop-2.7.3/etc/hadoop
vi core-site.xml
#文件的<configuration></configuration>内添加配置信息
<!-- 指定HDFS中NameNode的地址 -->
     <property>
     <name>fs.defaultFS</name>
         <value>hdfs://master:9000</value>
     </property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
     <property>
     <name>hadoop.tmp.dir</name>
     <value>/opt/apps/hadoop-2.7.3/data</value>
     </property>

注意:在添加配置文件的时候,每行前后不能有空格,作业自己写或者复制网上的配置时要检查一下
5.2、配置hadoop-env.sh

#找到export JAVA_HOME=在后面添加java环境变量
export JAVA_HOME=/opt/apps/jdk1.8.0_241

5.3、配置hdfs-site.xml

vi hdfs-site.xml
#文件的<configuration></configuration>内添加配置信息
<!-- 设置dfs副本数,不设置默认是3个   -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
<!-- 设置secondname的端口   -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>

5.4配置slaves文件,有的hadoop版本是works

vi slaves
master
slave1
slave2
slave3

5.5、配置mapred-env.sh

vi mapred-env.sh
#找到export JAVA_HOME=在后面添加java环境变量
export JAVA_HOME=/opt/apps/jdk1.8.0_241

5.6、配置mapred-site.xml

vi mapred-site.xml
#文件的<configuration></configuration>内添加配置信息
<!-- 指定mapreduce运行在yarn上 -->
    <property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
    </property>

5.7、配置yarn-env.sh

vi yarn-env.sh
#找到export JAVA_HOME=在后面添加java环境变量
export JAVA_HOME=/opt/apps/jdk1.8.0_241

5.8、配置yarn-site.xml

vi yarn-site.xml
#文件的<configuration></configuration>内添加配置信息
<!-- reducer获取数据的方式 -->
     <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
     </property>
<!-- 指定YARN的ResourceManager的地址 -->
     <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>slave1</value>
     </property>

6、将安装好的hadoop分发到其他主机节点

scp -r /opt/apps/hadoop-2.7.3 root@slave1:/opt/apps/
scp -r /opt/apps/hadoop-2.7.3 root@slave2:/opt/apps/
scp -r /opt/apps/hadoop-2.7.3 root@slave3:/opt/apps/

7、将环境变量配置文件拷贝到其他主机

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
scp -r /etc/profile root@slave3:/etc/

分别执行立即生效

source /etc/profile

8、设置SSH免密访问
要求任意两台主机之间都要设置免密访问
master主机下:

ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3

slave1主机下:

ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3

slave2主机下:

ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3

slave3主机下:

ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
ssh-copy-id slave3

9、启动集群
我们在core-site.xml配置了运行时文件存放位置data
,实际上生成的目录里面没有,需要嗯自己创建,如果不配置这个目录,那么会自动存放在根目录下的tmp目录中

cd /opt/apps/hadoop-2.7.3
mkdir data

9.1、第一次启动集群需要进行格式化namenode

hadf namenode -format
#启动集群
#1、启动HDFS,在master上启动
cd sbin
start-dfs.sh

9.2、启动yarn

#启动yarn在主机slave1上,因为我们在yarn-site.xml中配置了在slave1上启动  所以需要单独启动
start-yarn.sh

9.3、jps查看进程
master主机下:

[root@master sbin]# jps
3474 NameNode
2979 NodeManager
3603 DataNode
3883 Jps

slave1主机下:

[root@slave1 sbin]#jps
10528 DataNode
10624 SecondaryNameNode
10722 ResourceManager
10834 NodeManager
11354 Jps

slave2主机下:

[root@slave2 hadoop]# jps
2114 NodeManager
2214 Jps
1979 DataNode

slave3主机下:

[root@slave3 hadoop]# jps
1796 DataNode
1928 NodeManager
2028 Jps

我们把SecondaryNameNode以及ResourceManage配置在slave1里面,所以slave1里面的进程较多。当不配置时会默认在主节点master里面
9.4、在web端查看
在网页地址栏输入master:50070
在这里插入图片描述
这时候说明我们的Hadoop全分布式集群搭建(单点)完成,后面的高可用和联邦根据需求修改几个配置文件即可

### CentOS 上搭建 Hadoop 伪分布式环境的配置指南 #### 1. 环境准备 在开始之前,确保已经安装并配置好 CentOS 操作系统。此外,还需要完成 JDK 的安装以及 SSH 服务的设置。 - 安装 Java 开发工具包 (JDK),这是运行 Hadoop 所必需的基础软件[^3]。 - 解压缩下载好的 JDK 和 Hadoop 文件到指定目录下 `tar -zxvf jdk-8u241-linux-x64.tar.gz` 和 `tar -zxvf hadoop-2.6.5.tar.gz`。 #### 2. 配置 SSH 免密登录 为了简化后续的操作流程,在本地机器上通过无密码验证的方式启动和管理节点是非常重要的一步。具体做法如下: - 使用命令生成公钥/私钥对:`ssh-keygen -t rsa` - 将生成的公钥追加至授权文件中以便实现免密码访问本机:`cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys` #### 3. 修改 Hadoop 配置文件 Hadoop 的核心配置主要集中在几个 XML 文件里,这些文件定义了整个框架的行为模式及其组件之间的交互方式。 ##### a. **core-site.xml** 此文件用于设定基本参数如默认文件系统的 URI 地址等基本信息。编辑该文件可以通过以下指令完成:`vi core-site.xml`[^2] 。添加如下内容来指明 NameNode 节点的位置: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` ##### b. **hdfs-site.xml** 这个文档用来描述 HDFS 特定属性,比如副本数量等等。对于单台服务器上的伪分布部署来说,通常只需要调整数据块复制因子即可满足需求。 ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` ##### c. **mapred-site.xml** MapReduce 工作机制依赖于此处所给出的信息;如果不存在 mapred-site.xml,则可以从模板 copy 并重命名得到它。接着更新 jobtracker URL 设置为 local 或者 yarn 来支持不同类型的执行引擎。 ```bash cp ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml ``` 随后打开新创建出来的 mapred-site.xml 进行必要的修改工作: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` ##### d. **yarn-site.xml** 最后一点就是关于资源调度器 YARN 自身的一些选项规定。这里我们仅需关注 ResourceManager 绑定地址和服务端口等内容项就够了。 ```xml <configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>localhost</value> </property> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> </property> </configuration> ``` #### 4. 启动 Hadoop 服务 当所有的前期准备工作都完成后就可以依次开启各个子系统的服务进程啦! - 格式化 namenode : `hdfs namenode -format` - 启动 hdfs : `start-dfs.sh` - 启动 yarn : `start-yarn.sh` 此时应该能够正常查看 web ui 页面,默认情况下分别为 http://localhost:50070 (namenode)、http://localhost:8088(resourcemanager)。 ```python print("Hadoop Pseudo-Distributed Environment Setup Complete!") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值