ECS单机部署Hadoop

ECS单机部署Hadoop

系统准备

  • 更新系统

    复制代码
    sudo yum update -y
    sudo yum install -y wget vim net-tools openssh-server
  • 关闭防火墙

    复制代码
    sudo systemctl stop firewalld    -- 关闭防火墙
    sudo systemctl disable firewalld -- 禁止自启动
    sudo systemctl status firewalld  -- 查看防火墙的状态

安装Java

  • 安装OpenJDK 8

    复制代码
    # 安装OpenJDK 8
    sudo yum install -y java-1.8.0-openjdk-devel
  • 查看版本

    复制代码
    # 验证安装
    java -version 
  • 查看Java 安装路径

    复制代码
    # 执行命令 
    readlink -f $(which java) 
    
    # 命令输出 
    /usr/lib/jvm/java-8-konajdk-8.0.20-1.oc9/bin/java
    
    # 安装路径
    /usr/lib/jvm/java-8-konajdk-8.0.20-1.oc9

Hadoop用户

  • 创建用户

    复制代码
    # 创建用户
    sudo useradd hadoop
    sudo passwd hadoop  # 设置密码(如:hadoop)
    
    # 赋予sudo权限
    sudo echo "hadoop ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
    
    # 切换到hadoop用户
    su - hadoop
  • 免密登录

    复制代码
    # 生成密钥(一路回车)
    ssh-keygen -t rsa
    
    # 将公钥写入授权文件
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    
    # 测试免密登录
    ssh localhost  # 输入yes后应直接登录
    exit

下载安装Hadoop

  • 下载Hadoop

    复制代码
    # 下载Hadoop(以3.3.6为例)
    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
  • 解压Hadoop

    复制代码
    # 解压并移动到指定目录
    tar -zxvf hadoop-3.3.6.tar.gz
    sudo mv hadoop-3.3.6 /opt/hadoop
    sudo chown -R hadoop:hadoop /opt/hadoop
  • 配置环境

    1. 编辑 ~/.bashrc 文件

      复制代码
      vim ~/.bashrc
      
      # 添加以下内容
      export JAVA_HOME=/usr/lib/jvm/java-8-konajdk-8.0.20-1.oc9  -- 这里地址参照 readlink -f $(which java) 命令输出地址
      export HADOOP_HOME=/opt/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
    2. 生效配置

      复制代码
      source ~/.bashrc

修改Hadoop配置

  • hadoop-env.sh

    复制代码
    vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
    # 修改JAVA_HOME
    export JAVA_HOME=/usr/lib/jvm/java-8-konajdk-8.0.20-1.oc9  -- 这里地址参照 readlink -f $(which java) 命令输出地址
  • core-site.xml

    复制代码
    <configuration>
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
      </property>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/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>/opt/hadoop/hdfs/namenode</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/hdfs/datanode</value>
      </property>
    </configuration>
  • 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.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
      </property>
    </configuration>

初始化HDFS

  • 创建目录

    目录参照上面配置创建

    复制代码
    # 创建目录
    mkdir -p /opt/hadoop/tmp
    mkdir -p /opt/hadoop/hdfs/{namenode,datanode}
  • 格式化NameNode

    复制代码
    # 格式化NameNode
    hdfs namenode -format

启动Hadoop

  • 启动HDFS

    复制代码
    start-dfs.sh
  • 启动Yarn

    复制代码
    start-yarn.sh
  • 查看Hadoop进程

    复制代码
    jps
    # 应看到以下进程:
    # NameNode
    # DataNode
    # ResourceManager
    # NodeManager
    # SecondaryNameNode

验证部署

  • 访问Web UI

  • 测试HDFS操作

    复制代码
    # HDFS 创建文件夹
    hdfs dfs -mkdir /test
    # HDFS 查看文件
    hdfs dfs -ls /test
    # hdfs 上传文件 
    hdfs dfs -put test.txt /test
    # hdfs 下载文件
    hdfs dfs -get /test/test.txt hdfs_test.txt
  • 运行MapReduce示例

    复制代码
    # 生成测试文件
     echo "Hello World Hello Hadoop" > input.txt
     
    # 创建input目录
    hdfs dfs -mkdir /input
    
    # 上传到测试目录
    hdfs dfs -put input.txt /input
    
    # 运行官方案例 
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output
    
    # 查看输出结果
    hdfs dfs -cat /output/*
相关推荐
大大大大晴天2 小时前
每天认识一个组件:数据治理Apache Atlas
大数据
数字新视界2 小时前
2026模块化机房选型指南:行业市场发展趋势、占有率与竞争梯队分析报告解析
大数据·人工智能·物联网·数据中心·微模块机房·模块化机房·冷通道
姜穆澜5 小时前
OneID 从 0 到 1 完整生产案例(四)
大数据
OsDepK5 小时前
项目快速Git至仓库(完整版)
大数据·git·elasticsearch·搜索引擎
合米AI SOP系统6 小时前
传统产线如何快速上马落地 AI 防错?合米科技 AI SOP 7天即可上线。
大数据·人工智能·科技
思录Echo6 小时前
什么决定具身智能的最终走向?多技术路线与落地现实辨析
大数据·人工智能
xiaohaiAIgeo6 小时前
【2026年】AI监控加行为分析守护实验室安全
大数据·人工智能·科普知识
林墨聊AIGC7 小时前
动漫AI视频创作工具在哪找到的?2026年最新动漫AI视频平台与软件指南
大数据·人工智能·ai作画·aigc·音视频
故七月8 小时前
告别 AI 时代品牌 “隐身”:万域智瞰 AI‑GEO,构建品牌大模型时代营销新基建
大数据·人工智能
数字孪生视频孪生9 小时前
三维实时重构异构底座 核工危化无感定位跨境轨迹一屏统揽
大数据·运维·人工智能·重构·架构