深入解析:hadoop-3.4.1 单机伪部署

下载并安装软件

上传安装软件到服务器

解压安装:tar -xzvf hadoop-3.4.1.tar.gz  -C /opt/module/

Hadoop配置

  1. 配置hadoop环境变量:
    sudo vim /etc/profile.d/myprofile.sh
    #HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-3.4.1
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    应用变更: source /etc/profile
  2. 配置hadoop使用的JAVA环境
    sudo vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
    # 配置Hadoop使用的JAVA路径
    export JAVA_HOME=/opt/module/jdk-17.0.10
  3. 配置core-site.xml
    vim $HADOOP_HOME/etc/hadoop/core-site.xml
     
    
      
        fs.defaultFS
        hdfs://mydoris:9000
        NameNode的地址
      
      
        hadoop.tmp.dir
        /opt/data/hadoop/tmp
        hadoop数据存储目录
      
    
  4. 配置hdfs-site.xml
    vim  $HADOOP_HOME/etc/hadoop/hdfs-site.xml
    
      
        dfs.replication
        1  
      
      
        dfs.namenode.name.dir
        file://${hadoop.tmp.dir}/dfs/name
      
      
        dfs.datanode.data.dir
        file://${hadoop.tmp.dir}/dfs/data
      
    
  5. 配置 yarn-site.xml

    vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
    
      
        yarn.nodemanager.aux-services
        mapreduce_shuffle
      
      
        yarn.nodemanager.env-whitelist
        JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
      
    
  6. 配置mapred-site.xml
    vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
    
      
        mapreduce.framework.name
        yarn
      
    
  7. 解决Hadoop 3.4与JDK 17冲突问题
    # 编辑 Hadoop 环境配置文件
    cd /opt/module/hadoop-3.4.1
    vim etc/hadoop/hadoop-env.sh
    # 文件末尾 添加以下内容:
    # Fix for JDK 17+ module access restrictions
    export HADOOP_OPTS="$HADOOP_OPTS --add-opens=java.base/java.lang=ALL-UNNAMED"
    export HADOOP_OPTS="$HADOOP_OPTS --add-opens=java.base/java.lang.reflect=ALL-UNNAMED"
    export HADOOP_OPTS="$HADOOP_OPTS --add-opens=java.base/java.net=ALL-UNNAMED"
    export HADOOP_OPTS="$HADOOP_OPTS --add-opens=java.base/java.util=ALL-UNNAMED"
    export HADOOP_OPTS="$HADOOP_OPTS --add-opens=java.base/sun.nio.ch=ALL-UNNAMED"
    export HADOOP_OPTS="$HADOOP_OPTS --add-opens=java.base/java.nio=ALL-UNNAMED"
    export HADOOP_OPTS="$HADOOP_OPTS --add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
    # 若已经启动过hdfs,需要清理并重启hadoop
    # 停止
    ./sbin/stop-yarn.sh
    ./sbin/stop-dfs.sh
    # 删除临时数据(避免 clusterID 冲突)
    rm -rf /tmp/hadoop-*
    # 重新格式化(使用 JDK 17)
    hdfs namenode -format
    # 启动
    ./sbin/start-dfs.sh
    ./sbin/start-yarn.sh

启动Hadoop服务

格式化 NameNode(首次)

./bin/hdfs namenode -format
  1. 启动 HDFS + YARN

  2. ./sbin/start-dfs.sh
    ./sbin/start-yarn.sh

    验证服务

  3. jps

  4. 查看启动日志

  5. 日志路径:/opt/module/hadoop-3.4.1/logs/
  6. 访问 WEB UI

  7. HDFS: http://mydoris:9870

  8. YARN: http://mydoris:8088
  9. 测试 HDFS 读写

  10. ./bin/hadoop fs -mkdir /t001
    ./bin/hadoop fs -put ~/.bashrc /t001/
    ./bin/hadoop fs -ls /t001

posted @ 2025-12-10 18:58  yangykaifa  阅读(6)  评论(0)    收藏  举报