温馨提示×

Linux环境下Hadoop如何配置

小樊
35
2025-12-08 16:11:59
栏目: 智能运维

Linux环境下Hadoop配置全流程

一 环境准备

  • 操作系统与依赖
    • 选择常见的 Ubuntu/CentOS/Debian 等发行版,建议至少 4GB 内存、20GB 磁盘(便于开发与测试)。
    • 安装 Java 8 或 11(Hadoop 3.x 常用 OpenJDK 8)。示例:sudo apt update && sudo apt install openjdk-8-jdk,验证:java -version
  • SSH 服务与免密
    • 安装 SSH 服务:sudo apt install openssh-server
    • 生成密钥并配置本机免密:ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsacat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 0600 ~/.ssh/authorized_keys,验证:ssh localhost 无需密码即可登录。

二 安装与环境变量

  • 下载与解压
    • Apache Hadoop 官网下载稳定版本(如 3.3.1),解压到目标目录(如 /opt/usr/local):
      • wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
      • sudo tar -xzvf hadoop-3.3.1.tar.gz -C /opt
  • 配置环境变量
    • 编辑 ~/.bashrc(或 /etc/profile.d/hadoop.sh):
      • export HADOOP_HOME=/opt/hadoop-3.3.1
      • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • 使配置生效:source ~/.bashrc。以上步骤完成后即可在任意目录使用 hdfsyarn 等命令。

三 核心配置

  • 配置目录与文件
    • 进入 $HADOOP_HOME/etc/hadoop,重点编辑:hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、workers
  • 关键配置示例(单机伪分布式,便于开发测试)
    • hadoop-env.sh:设置 JAVA_HOME(示例:/usr/lib/jvm/java-8-openjdk-amd64/usr/java/jdk1.8.0_xxx)。
    • core-site.xml:
      <configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://localhost:9000</value>
        </property>
        <property>
          <name>hadoop.tmp.dir</name>
          <value>/usr/local/hadoop-3.3.1/tmp</value>
        </property>
      </configuration>
      
    • hdfs-site.xml:
      <configuration>
        <property>
          <name>dfs.replication</name>
          <value>1</value>
        </property>
        <property>
          <name>dfs.namenode.name.dir</name>
          <value>file:/usr/local/hadoop-3.3.1/hadoop_data/hdfs/namenode</value>
        </property>
        <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:/usr/local/hadoop-3.3.1/hadoop_data/hdfs/datanode</value>
        </property>
      </configuration>
      
    • mapred-site.xml(若不存在可复制模板 cp mapred-site.xml.template mapred-site.xml):
      <configuration>
        <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
        </property>
      </configuration>
      
    • yarn-site.xml:
      <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>
        <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>localhost</value>
        </property>
      </configuration>
      
    • workers(单机保留 localhost;伪分布式与完全分布式见下一节)。

四 启动与验证

  • 首次启动前
    • 格式化 HDFS(仅首次):hdfs namenode -format
  • 启动服务
    • 启动 HDFS 与 YARN:
      • start-dfs.sh
      • start-yarn.sh
    • 或使用统一脚本:start-all.sh
  • 验证
    • 进程检查:jps,应看到 NameNode、DataNode、ResourceManager、NodeManager(单机伪分布式四者均在本机)。
    • HDFS 可用性:hdfs dfs -ls /
    • Web 界面(默认端口,视版本与配置可能不同):
      • HDFS NameNode:http://localhost:50070
      • YARN ResourceManager:http://localhost:8088
    • 停止服务:stop-dfs.shstop-yarn.shstop-all.sh

五 常见问题与扩展

  • 完全分布式快速要点
    • 规划节点角色(示例三节点):
      • 192.168.36.121 hadoop1:NameNode、DataNode、ResourceManager、NodeManager
      • 192.168.36.122 hadoop2:DataNode、NodeManager
      • 192.168.36.123 hadoop3:SecondaryNameNode、DataNode、NodeManager
    • 所有节点配置 /etc/hosts 映射,安装 JDK 并统一 HADOOP_HOME 与目录结构。
    • 配置 core-site.xmlfs.defaultFS 为主节点(如 hdfs://hadoop1:8020),workers 写入所有 DataNode 主机名(每行一个)。
    • 主节点配置到所有节点的 SSH 免密登录,便于启停集群。
    • 仅在 NameNode 执行 hdfs namenode -format,随后在主节点启动集群并验证进程与 Web 界面。
  • 目录与权限
    • 确保 hadoop.tmp.dirdfs.namenode.name.dirdfs.datanode.data.dir 等目录存在且 Hadoop 运行用户 有读写权限。
  • 版本与兼容性
    • Hadoop 3.x 推荐使用 JDK 8 或 11;不同发行版与版本在默认端口、服务名上可能存在差异,建议以实际环境为准。

0