ECS单机部署Hadoop

embedded/2025/3/4 10:36:43/

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 
    

image-20250228152107751

  • 查看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
    

    image-20250228153507979

验证部署

  • 访问Web UI

    • HDFS: http://服务器IP:9870
    • YARN: http://服务器IP:8088
  • 测试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/*
    

http://www.ppmy.cn/embedded/169894.html

相关文章

(十 八)趣学设计模式 之 观察者模式!

目录 一、 啥是观察者模式&#xff1f;二、 为什么要用观察者模式&#xff1f;三、 观察者模式的实现方式四、 观察者模式的优缺点五、 观察者模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;…

蓝桥杯web第三天

展开扇子题目&#xff0c; #box:hover #item1 { transform:rotate(-60deg); } 当悬浮在父盒子&#xff0c;子元素旋转 webkit display: -webkit-box&#xff1a;将元素设置为弹性伸缩盒子模型。-webkit-box-orient: vertical&#xff1a;设置伸缩盒子的子元素排列方…

webpack一篇

目录 一、构建工具 1.1简介 二、Webpack 2.1概念 2.2使用步骤 2.3配置文件&#xff08;webpack.config.js&#xff09; mode entry output loader plugin devtool 2.4开发服务器&#xff08;webpack-dev-server&#xff09; grunt/glup的对比 三、Vite 3.1概念 …

mask2former训练自己的分割数据集(包含遇见的问题及解决办法)

一、环境配置 1.1 下载所需源码 mask2former: https://github.com/facebookresearch/Mask2Former/tree/main detectron2: https://github.com/facebookresearch/detectron2 解压后&#xff0c;将两个文件夹放置同一目录。 1.2 配置环境 1&#xff09;anaconda下新建并激…

【大厂AI实践】美团:美团智能客服核心技术与实践

【大厂AI实践】美团&#xff1a;美团智能客服核心技术与实践 &#x1f31f; 嗨&#xff0c;你好&#xff0c;我是 青松 &#xff01; &#x1f308; 自小刺头深草里&#xff0c;而今渐觉出蓬蒿。 NLP Github 项目推荐&#xff1a; 【AI 藏经阁】&#xff1a;https://gitee.com…

练习题:64

目录 Python题目 题目 题目分析 需求理解 关键知识点 实现思路分析 复杂度分析 可能遇到的问题及注意事项 代码实现 示例 1&#xff1a;已知具体日期计算天数差 代码解释 示例 2&#xff1a;从用户输入获取日期计算天数差 代码解释 运行思路 示例 1&#xff1a;…

MYOJ_7456:输出邻接点的数量(图论概念及基础运用)

题目描述 给定一个无向图&#xff0c;n个顶点m条边。进行q次询问&#xff0c;每次询问一个顶点的邻接点的数量。 顶点编号为1&#xff0c;2&#xff0c;...&#xff0c;n。 输入 第一行&#xff1a;两个整数n m&#xff0c;空格分开&#xff0c;n表示顶点数&#xff0c;m表示边…

物联网同RFID功能形态 使用场景的替代品

在物联网&#xff08;IoT&#xff09;和自动识别技术领域&#xff0c;除了RFID标签外&#xff0c;还有一些其他技术产品可以在形态和大小上与RFID标签相似&#xff0c;同时提供类似或更强大的功能。以下是几种能够替代RFID标签的产品&#xff1a; 一、NFC标签 NFC&#xff08;…