温馨提示×

Ubuntu HDFS配置环境搭建指南

小樊
43
2025-10-27 07:53:46
栏目: 智能运维

Ubuntu环境下HDFS配置环境搭建指南

1. 环境准备

  • 更新系统:运行sudo apt update && sudo apt upgrade -y,确保系统软件包为最新版本。
  • 安装基础工具:执行sudo apt install -y build-essential openssh-server,安装编译工具和SSH服务(用于集群节点间通信)。

2. 安装Java环境

Hadoop依赖Java运行,需安装OpenJDK 8(Hadoop 3.x兼容版本):

  • 运行sudo apt install -y openjdk-8-jdk安装JDK。
  • 验证安装:java -version,输出应包含openjdk version "1.8.0_xxx"

3. 下载并解压Hadoop

  • 从Apache官网下载稳定版Hadoop(如3.3.4):wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
  • 解压到/usr/local/目录:sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
  • 重命名目录以便管理:sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop

4. 配置Hadoop环境变量

  • 编辑~/.bashrc文件(用户级配置)或/etc/profile(系统级配置),添加以下内容:
    export HADOOP_HOME=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
  • 使配置生效:source ~/.bashrc(或source /etc/profile)。

5. 配置Hadoop核心文件

进入Hadoop配置目录$HADOOP_HOME/etc/hadoop,修改以下文件:

5.1 core-site.xml

配置HDFS的默认文件系统地址(本地模式):

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

5.2 hdfs-site.xml

配置NameNode和DataNode的数据目录、副本数(本地模式设为1):

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value> <!-- 集群模式下需调整为数据节点数量 -->
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/data/datanode</value>
    </property>
</configuration>

5.3 mapred-site.xml(若未存在则创建)

配置MapReduce框架为YARN:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

5.4 yarn-site.xml

配置YARN资源管理器:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
</configuration>

6. 创建HDFS数据目录

  • 创建NameNode和DataNode的数据存储目录:
    sudo mkdir -p /usr/local/hadoop/data/namenode
    sudo mkdir -p /usr/local/hadoop/data/datanode
    
  • 修改目录所有者为当前用户(避免权限问题):
    sudo chown -R $USER:$USER /usr/local/hadoop/data
    

7. 格式化NameNode

首次启动HDFS前,需格式化NameNode以初始化文件系统元数据:

hdfs namenode -format

格式化后会生成VERSION文件和edits日志,注意:格式化会清除已有数据,生产环境需谨慎操作

8. 启动HDFS服务

  • 启动HDFS服务(包含NameNode和DataNode):
    start-dfs.sh
    
  • 验证进程是否启动:jps,应看到NameNodeDataNode进程(若为伪分布式模式,无SecondaryNameNode)。

9. 验证HDFS功能

  • 访问HDFS Web界面:http://localhost:9870(Hadoop 3.x版本,默认端口为9870,旧版本为50070),查看文件系统状态。
  • 执行常用HDFS命令:
    # 创建HDFS目录
    hdfs dfs -mkdir -p /user/$USER/input
    # 上传本地文件到HDFS
    hdfs dfs -put ~/test.txt /user/$USER/input
    # 列出HDFS目录内容
    hdfs dfs -ls /user/$USER/input
    # 下载HDFS文件到本地
    hdfs dfs -get /user/$USER/input/test.txt ~/download_test.txt
    # 删除HDFS文件
    hdfs dfs -rm /user/$USER/input/test.txt
    

10. 配置防火墙(可选但推荐)

允许Hadoop服务端口通过防火墙,避免网络访问被拦截:

sudo ufw allow 9000  # NameNode RPC端口
sudo ufw allow 9870  # HDFS Web UI端口
sudo ufw allow 50070 # 旧版本HDFS Web UI端口

注意事项

  • 伪分布式与集群模式:上述步骤为伪分布式配置(单节点),集群模式下需调整fs.defaultFS为集群NameNode地址,并将dfs.replication设置为数据节点数量。
  • 端口冲突:若端口被占用,可通过netstat -tulnp | grep 端口号查找占用进程并终止,或修改Hadoop配置文件中的端口号。
  • 日志排查:若启动失败,查看$HADOOP_HOME/logs目录下的日志文件(如NameNode.logDataNode.log),定位问题原因。

0