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 小时前
工程合约管理软件具备哪些核心功能,解决合同结算各类纠纷难题
大数据·人工智能·区块链
Elastic 中国社区官方博客4 小时前
Elastic 在 Everest Group 企业搜索产品 PEAK Matrix® 评估 2026 中被评为领导者
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
重庆传粉科技5 小时前
传粉科技助力美国房产经纪企业Homequest开拓中国市场
大数据·人工智能
Java小白笔记5 小时前
Codex Skills 分类整理
大数据·人工智能·elasticsearch·搜索引擎·ai·ai编程·ai写作
杨逢昌工厂6S管理6 小时前
26-杨逢昌:制造企业6S改善提案落地低效解决方案——四级分级激励标准化体系,成效验证:车间现场熵增隐患下降65%。
大数据
一只专注api接口开发的技术猿6 小时前
电商评论自动化监控与情感数据分析完整落地教程(附可直接运行 Python 代码)
大数据·数据库·python·数据分析·自动化
AIGS0017 小时前
企业AI落地:Agent OS 治理框架实践
java·大数据·人工智能·机器学习·人工智能ai大模型应用
心中有国也有家8 小时前
E-Brufen 技术选型全景:Flutter + 鸿蒙 + Hive CE
hive·hadoop·学习·flutter·华为·harmonyos
风途科技~8 小时前
多参数水质在线监测设备—水环境实时管控解决方案
大数据·人工智能
Elastic 中国社区官方博客8 小时前
谁来评判评判者?在 Elasticsearch Workflows 中使用 LLM-as-a-Judge
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索