一文搞懂并实战:HDFS分布式文件系统搭建全过程详解(含图文+踩坑记录)

一文搞懂并实战:HDFS分布式文件系统搭建全过程详解(含图文+踩坑记录)

前言

​ 在大数据技术体系中,Hadoop Distributed File System(HDFS) 是最核心的分布式文件存储系统,它为后续的数据处理与分析奠定了坚实的基础。很多学习大数据的同学在初学阶段,往往会被环境配置、集群部署等问题困扰。本篇文章将通过从零开始的方式,带你完成一次完整的HDFS搭建实践,结合笔者的真实踩坑经历,提供配置说明、问题排查思路、性能调优建议等,力求让每一位读者都能顺利搭建起自己的HDFS环境。

一、HDFS简介

1.1 什么是HDFS?

HDFS(Hadoop Distributed File System)是 Apache Hadoop 项目中的核心组件之一,专为处理大数据场景下的文件存储而设计,具备以下特点:

  • 高容错性:节点失效不会导致数据丢失;
  • 高吞吐量:支持大规模数据的批量读写;
  • 数据冗余存储:默认每份数据保留三个副本;
  • 适合大文件:不适合小文件频繁读写场景。

1.2 HDFS架构图解

HDFS主要由两个核心角色构成:

  • NameNode(主节点):负责管理元数据,如文件路径、块位置、权限等;
  • DataNode(数据节点):负责真正存储数据块。

此外,还有一个辅助节点:

  • Secondary NameNode:用于协助 NameNode 进行元数据快照合并。

在这里插入图片描述

二、部署前准备

2.1 环境规划
主机名IP地址角色
bigdata01192.168.175.132NameNode、Secondary,ResourceManager、NodeManager、DataNode
bigdata02192.168.175.133DataNode、SecondaryNameNode、NodeManager
bigdata03192.168.175.134DataNode、NodeManager
2.2 软件准备

Hadoop版本:3.3.1

JDK版本:1.8+

操作系统:CentOS 7(或Ubuntu 20.04)

2.3 前置条件
  • 所有节点已安装 Java 并配置环境变量;
  • 所有节点已配置 SSH 无密码登录;
  • 所有节点之间可以互通;
  • 关闭防火墙(或放行端口);
  • 所有节点时间同步(建议使用 ntpd)。

三、Hadoop安装与配置

3.1 解压与环境变量配置

hadoop-3.3.6.tar.gz 上传至各节点,并解压:

tar -zxvf hadoop-3.3.1.tar.gz -C /opt/
mv /opt/hadoop-3.3.6 /opt/hadoop

在这里插入图片描述

添加环境变量 /etc/profile

export JAVA_HOME=/opt/installation/jdk
export PATH=$PATH:$JAVA_HOME/bin

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

执行 source /etc/profile 生效。

3.2 配置核心文件
(1)core-site.xml

配置 HDFS 的默认文件系统地址:

<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/installation/hadoop/tmp</value>
   </property>

</configuration>


(2)hdfs-site.xml
<!-- Put site-specific property overrides in this file. -->
<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>
<property>
    <name>dfs.webhdfs.enabled</name>
 <value>true</value>
</property>
</configuration>

(3)mapred-site.xml(可选)
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

(4)hadoop-env.sh
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

export JAVA_HOME=/opt/installs/jdk
(5)修改workers 文件:
bigdata02	
bigdata03

3.3 SSH免密配置

ssh-keygen -t rsa
ssh-copy-id bigdata01
ssh-copy-id bigdata02
ssh-copy-id bigdata03

四、格式化并启动HDFS

hdfs namenode -format

4.2 启动HDFS集群

start-dfs.sh

验证是否启动成功:

在这里插入图片描述

你应能在 bigdata01上看到 NameNodeSecondaryNameNode,在各 从节点上看到 DataNode

五、Web界面访问与操作

5.1 Web UI地址

你可以在浏览器中查看当前 HDFS 的文件树、DataNode 状态、副本情况等。

在这里插入图片描述

六、HDFS基本操作命令

6.1 文件上传

hdfs dfs -mkdir /input
hdfs dfs -put ./test.txt /input

6.2 文件查看

hdfs dfs -ls /input
hdfs dfs -cat /input/test.txt

6.3 文件下载

hdfs dfs -get /input/test.txt ./local/

七、常见错误与排查

问题原因解决方案
NameNode无法启动文件系统未格式化执行 hdfs namenode -format
slaves 无法识别workers 文件未正确配置或未分发确保 slaves 文件存在于 $HADOOP_HOME/etc/hadoop
-
NameNode无法启动文件系统未格式化执行 hdfs namenode -format
slaves 无法识别workers 文件未正确配置或未分发确保 slaves 文件存在于 $HADOOP_HOME/etc/hadoop
浏览器访问失败未开启 9870 端口检查防火墙,或使用 firewalld 放行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值