Hadoop 全分布式搭建流程

本文详细介绍Hadoop全分布式环境的搭建步骤,包括配置环境、格式化HDFS、启动集群等关键环节,确保Hadoop集群稳定运行。

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

准备工具

1.hadoop-2.7.1.tar.gz 上传到/opt 下
2。集群的所有服务器需要安装jdk 环境变量配置完成
3.ip 主机名互相ping通
4.ssh免密

1.解压 hadoop 压缩包

我们先在一台虚拟机上配置

cd /opt
tar -zxvf hadoop-2.7.1.tar.gz
ll

在这里插入图片描述

2.配置hadoop-2.7.1/etc/hadoop 下的配置文件

  1. vi hadoop-env.sh (配jdk路径)
    在这里插入图片描述
  2. vi slaves (配置哪台机子启动)
    在这里插入图片描述
  3. vi core-site.xml (配namenode主机名和hadoop运行临时目录)
<!--指定hdfs文件系统的默认名-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://sf1:9000</value>
</property>
<!--指定io的buffer大小-->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!--指定hadoop的临时目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.1/data/tmp</value>
</property>

在这里插入图片描述
4. vi hdfs-site.xml (配副本数、块大小、NN DN SNN保存存储目录、NN SNN的webUI端口)

<!--指定块的副本数,默认是3-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>

<!--指定数据块的大小-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>

<!--指定namenode的元数据目录-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop-2.7.1/data/dfs/name</value>
</property>

<!--指定datanode存储数据目录-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop-2.7.1/data/dfs/data</value>
</property>

<!--指定secondarynamenode的检测点目录-->
<property>
<name>fs.checkpoint.dir</name>
<value>/opt/hadoop-2.7.1/data/dfs/checkpoint/cname</value>
</property>

<!--edit的数据存储目录-->
<property>
<name>fs.checkpoint.edits.dir</name>
<value>/opt/hadoop-2.7.1/data/dfs/checkpoint/edit</value>
</property>

<!--指定namenode的webui监控端口-->
<property>
<name>dfs.http.address</name>
<value>sf1:50070</value>
</property>

<!--指定secondarynamenode的webui监控端口-->
<property>
<name>dfs.secondary.http.address</name>
<value>sf2:50090</value>
</property>

<!--是否开启webhdfs的-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>

<!--是否开启hdfs的权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

在这里插入图片描述
5. vi mapred-site.xml (配MR运行基于yarn、配历史服务器的内部通信端口和webUI 端口)
将 mapred-site.xml.template 复制一份出来 mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

在这里插入图片描述

<!--配置mapreduce的框架名称-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>

<!--指定jobhistoryserver的内部通信地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>sf3:10020</value>
</property>

<!--指定jobhistoryserver的web地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>sf3:19888</value>
</property>
  1. vi yarn-site.xml (配RM的主机名、内部通信端口、webUI端口)
<!--指定resourcemanager的启动服务器-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>sf2</value>
</property>

<!--指定mapreduce的shuffle服务-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<!--指定rm的内部通信地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>sf2:8032</value>
</property>

<!--指定rm的scheduler内部通信地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>sf2:8030</value>
</property>

<!--指定rm的resource-tracker内部通信地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>sf2:8031</value>
</property>

<!--指定rm的admin内部通信地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>sf2:8033</value>
</property>

<!--指定rm的web访问地址-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>sf2:8088</value>
</property>

在这里插入图片描述

3.发送配置好的hadoop到每一台服务器中

scp -r /opt/hadoop-2.7.1 root@sf2:/opt  
scp -r /opt/hadoop-2.7.1 root@sf3:/opt  

4.HDFS格式化(namenode的格式化)

在namenode的节点(sf1)上

hdfs namenode -format 

格式化只需要在namenode的服务器上执行,为了初始化元数据(所以yarn不需要初
始化)
在这里插入图片描述
确认没有报错信息 如果想有根据配置信息查找错误 多为配置文件错误

cd /data/dfs/name/current

在这里插入图片描述
确认不缺少文件

5.启动集群

  1. 在namenode的节点上启动hdfs:start-dfs.sh
    1.1 在sf1
    在这里插入图片描述

    cd /opt/hadoop-2.7.1/data/dfs
    启动后生成了一个新的文件 data
    在这里插入图片描述
    1.2 在 sf2
    在这里插入图片描述
    1.3 在 sf3
    在这里插入图片描述
    2 . 在ResouceManager的节点上启动yarn (注意环境变量的问题) start-yarn.sh
    sf3
    在这里插入图片描述

  2. 在历史服务器的节点上启动历史服务器 mr-jobhistory-daemon.sh start historyserver
    sf3
    在这里插入图片描述

6 检验

jps
sf1 :

在这里插入图片描述
sf2:
在这里插入图片描述
sf3:
在这里插入图片描述

查看webUI

HDFS sf1:50070 访问NN sd2:50090 访问SNN
(如果在window中没有配置映射需要使用ip地址访问 ef:192.168.124.11:50070)

以下是 Hadoop全分布式搭建的详细流程: 1. 准备工作 在开始搭建之前,需要准备好以下工作: - 安装好 Java 环境,并配置好 JAVA_HOME 环境变量。 - 下载 Hadoop 的稳定版本,并解压缩到指定目录。 2. 配置 Hadoop 进入 Hadoop 的解压目录,找到 conf 目录下的 hadoop-env.sh 文件,编辑此文件,将 JAVA_HOME 设置为你的 Java 安装目录。 接着,编辑 core-site.xml 文件,添加以下配置: ``` <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 其中,fs.defaultFS 指定 Hadoop 的默认文件系统,此处设置为 HDFS 的服务地址为 localhost:9000。 接着,编辑 hdfs-site.xml 文件,添加以下配置: ``` <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/path/to/hadoop-data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/path/to/hadoop-data/datanode</value> </property> </configuration> ``` 其中,dfs.replication 指定了数据块的副本数量,此处设置为 2;dfs.namenode.name.dir 指定了 NameNode 存储数据的目录;dfs.datanode.data.dir 指定了 DataNode 存储数据的目录。 3. 配置 SSH Hadoop 在分布式环境下需要使用 SSH 远程连接节点,因此需要配置 SSH。 首先,检查本机是否已经安装了 SSH,如果没有安装,则需要安装 SSH。 接着,生成 SSH 公钥和私钥: ``` ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa ``` 这个命令会在 ~/.ssh 目录下生成 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa 为私钥,id_rsa.pub 为公钥。 将公钥拷贝到所有节点上,并将其添加到 authorized_keys 文件中: ``` ssh-copy-id user@node1 ssh-copy-id user@node2 ... ``` 4. 启动 Hadoop 启动 Hadoop 集群前,需要先格式化 NameNode,该操作会清空 NameNode 存储的所有数据: ``` bin/hdfs namenode -format ``` 接着,启动 Hadoop: ``` sbin/start-all.sh ``` 此时,Hadoop 集群就启动成功了。你可以通过以下命令查看 Hadoop 运行状态: ``` jps ``` 其中,NameNode 和 DataNode 分别代表 NameNode 和 DataNode 的进程。 5. 测试 Hadoop 最后,可以通过以下命令测试 Hadoop: ``` bin/hadoop fs -mkdir /test bin/hadoop fs -put /path/to/local/file /test/file bin/hadoop fs -cat /test/file ``` 其中,第一条命令是在 HDFS 中创建一个 test 目录,第二条命令是将本地文件上传到 HDFS 中,第三条命令是查看 HDFS 中的文件内容。 至此,Hadoop全分布式搭建流程就结束了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值