首页主机资讯Debian Hadoop 虚拟机部署教程

Debian Hadoop 虚拟机部署教程

时间2025-12-19 09:23:03发布访客分类主机资讯浏览423
导读:Debian Hadoop 虚拟机部署教程 一 环境准备与规划 虚拟化与系统 宿主机安装虚拟化软件(如 VirtualBox/VMware),创建 Debian 11/12 虚拟机,建议内存 ≥2GB、磁盘 ≥20GB,网络选择 桥接...

Debian Hadoop 虚拟机部署教程

一 环境准备与规划

  • 虚拟化与系统
    • 宿主机安装虚拟化软件(如 VirtualBox/VMware),创建 Debian 11/12 虚拟机,建议内存 ≥2GB、磁盘 ≥20GB,网络选择 桥接NAT 并确保可访问互联网。
  • 节点规划(示例)
    • 单机伪分布式:1 台(NameNode + DataNode + ResourceManager + NodeManager)
    • 最小集群:1 主 2 从(master、slave1、slave2),便于后续扩展为高可用。
  • 软件版本建议
    • Java:OpenJDK 8(Hadoop 3.x 系列对 8 兼容性最好)
    • Hadoop:3.3.x(稳定、生态完善)
  • 网络与主机名
    • 为每台虚拟机配置静态 IP,并在所有节点 /etc/hosts 中写入主机名映射,确保互相解析。
    • 示例(/etc/hosts):
      192.168.1.101 master
      192.168.1.102 slave1
      192.168.1.103 slave2
      
  • 基础依赖
    • 安装 SSH 服务、基础工具(wget、vim 等),并准备 Hadoop 二进制包下载地址。

二 单机伪分布式部署步骤

  • 安装 Java
    • 更新索引并安装 OpenJDK 8:
      sudo apt update
      sudo apt install -y openjdk-8-jdk
      java -version
      
  • 配置 SSH 免密登录(本地回环)
    sudo apt install -y openssh-server
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >
        >
         ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    ssh localhost
    
  • 下载并解压 Hadoop
    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
    sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local
    sudo ln -sfn /usr/local/hadoop-3.3.6 /usr/local/hadoop
    
  • 配置环境变量(/etc/profile 或 ~/.bashrc)
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    使配置生效:source /etc/profile
  • 核心配置(路径均为 $HADOOP_HOME/etc/hadoop)
    • hadoop-env.sh
      export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      
    • 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/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>
          /usr/local/hadoop/hdfs/name<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.datanode.data.dir<
          /name>
          
          <
          value>
          /usr/local/hadoop/hdfs/data<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
    • mapred-site.xml(将模板复制为 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
    sudo mkdir -p /usr/local/hadoop/tmp /usr/local/hadoop/hdfs/{
    name,data}
        
    sudo chown -R $USER:$USER /usr/local/hadoop
    hdfs namenode -format
    
  • 启动与验证
    start-dfs.sh
    start-yarn.sh
    
    • NameNode Web UI:http://localhost:9870
    • ResourceManager Web UI:http://localhost:8088
    • 运行示例任务:
      hdfs dfs -mkdir -p /user/$USER/input
      hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /user/$USER/input
      hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar \
        wordcount /user/$USER/input /user/$USER/output
      hdfs dfs -cat /user/$USER/output/part-r-00000
      
    以上步骤覆盖虚拟机准备、依赖安装、环境变量、配置文件与启动验证的关键环节。

三 多节点集群部署步骤

  • 前置准备(所有节点)
    • 安装 Java 8SSH 服务,配置静态 IP 与 /etc/hosts 主机名映射,确保节点间可互通。
    • 建议创建专用用户 hadoop 进行操作(可选但推荐)。
  • 配置 SSH 免密登录(集群范围)
    # 每台机器生成密钥
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    # 在 master 上汇总公钥并分发
    ssh-copy-id master
    ssh-copy-id slave1
    ssh-copy-id slave2
    # 互相验证
    ssh slave1 true &
        &
         ssh slave2 true
    
  • 安装 Hadoop(所有节点)
    • 同单机步骤:下载解压至 /usr/local/hadoop,设置 JAVA_HOME/HADOOP_HOME/PATH
  • 集群配置($HADOOP_HOME/etc/hadoop)
    • hadoop-env.sh
      export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      
    • workers(旧版为 slaves)
      slave1
      slave2
      
    • core-site.xml(指定主节点)
      <
          configuration>
          
        <
          property>
          
          <
          name>
          fs.defaultFS<
          /name>
          
          <
          value>
          hdfs://master:9000<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          hadoop.tmp.dir<
          /name>
          
          <
          value>
          /usr/local/hadoop/tmp<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
    • hdfs-site.xml(副本数可按节点数调整)
      <
          configuration>
          
        <
          property>
          
          <
          name>
          dfs.replication<
          /name>
          
          <
          value>
          2<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.namenode.name.dir<
          /name>
          
          <
          value>
          /usr/local/hadoop/hdfs/name<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.datanode.data.dir<
          /name>
          
          <
          value>
          /usr/local/hadoop/hdfs/data<
          /value>
          
        <
          /property>
          
      <
          /configuration>
      
      
    • mapred-site.xml、yarn-site.xml 与单机一致(JobHistory 可按需开启)。
  • 目录与权限(所有节点)
    sudo mkdir -p /usr/local/hadoop/tmp /usr/local/hadoop/hdfs/{
    name,data}
        
    sudo chown -R hadoop:hadoop /usr/local/hadoop
    
  • 启动与验证
    • 仅在 master 执行:
      hdfs namenode -format
      start-dfs.sh
      start-yarn.sh
      
    • 访问 http://master:9870(HDFS)、http://master:8088(YARN),在 Web UI 检查 Live Nodes 是否为 2
    • 运行示例任务(同单机)验证集群可用性。

四 防火墙与常见问题处理

  • 防火墙与 SELinux(Debian 12 使用 nftables/firewalld 的场景)
    • 建议测试环境先放行相关端口或临时关闭防火墙:
      sudo ufw disable
      # 或按需放行
      sudo ufw allow 22,8088,9870,9000/tcp
      sudo ufw reload
      
    • 如启用 SELinux,测试阶段可将其设为 permissive(生产环境请按需配置策略)。
  • 常见故障排查
    • SSH 免密失败:检查 ~/.ssh/authorized_keys 权限为 600,目录 ~/.ssh700,以及 /etc/hosts 解析是否正确。
    • DataNode 未注册:确认 workers 配置、目录权限、网络互通与 dfs.replication 设置。
    • 端口占用:检查 9870/8088/9000 是否被其他进程占用(ss -tulpen | grep -E '9870|8088|9000')。
    • Java/Hadoop 路径错误:核对 hadoop-env.sh 中的 JAVA_HOMEHADOOP_CONF_DIR
    • 首次启动未格式化:执行 hdfs namenode -format 后再启动 HDFS。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian Hadoop 虚拟机部署教程
本文地址: https://pptw.com/jishu/775947.html
Debian Hadoop 网络配置注意事项 Debian Hadoop 压缩算法选择建议

游客 回复需填写必要信息