服务器搭建hadoop环境

服务器搭建Hadoop环境需先装Java,配置SSH免密,分发配置文件,改核心XML文件,格式化NameNode,启动集群服务

服务器搭建Hadoop环境详细指南

环境准备与依赖安装

在服务器上部署Hadoop集群需要满足硬件、软件及网络条件,以下是关键准备事项:

服务器搭建hadoop环境

项目 要求
操作系统 CentOS 7+/Ubuntu 18+(64位)
(推荐CentOS,兼容性更优)
内存 Master节点≥4GB,Salve节点≥2GB(实际生产环境需更高配置)
硬盘 Master节点≥20GB(用于存储HDFS元数据),Salve节点≥10GB(存储数据块)
Java环境 JDK 1.8+(Hadoop 3.x兼容,需配置JAVA_HOME
SSH免密登录 所有节点需通过SSH Key认证实现无密码登录(需关闭密码登录以提升安全性)
主机名解析 修改/etc/hosts文件,确保所有节点主机名与IP对应(如168.1.100 master

操作步骤:

  1. 安装Java

    yum install java-1.8.0-openjdk -y  # CentOS
    apt-get install openjdk-8-jdk -y    # Ubuntu

    配置环境变量:

    echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0" >> /etc/profile
    source /etc/profile
  2. 配置SSH免密登录

    • 在Master节点生成密钥:ssh-keygen -t rsa(按提示一路回车)
    • 将公钥复制到所有Salve节点:
      ssh-copy-id -i ~/.ssh/id_rsa.pub user@slave1
      ssh-copy-id -i ~/.ssh/id_rsa.pub user@slave2
    • 测试免密登录:ssh user@slave1 "hostname"

Hadoop安装与配置

  1. 下载Hadoop
    从Apache官网下载稳定版(如Hadoop 3.4.0):

    wget https://downloads.apache.org/hadoop/common/hadoop-3.4.0.tar.gz
    tar -xzvf hadoop-3.4.0.tar.gz -C /opt/
    mv /opt/hadoop-3.4.0 /opt/hadoop
  2. 配置环境变量
    编辑/etc/profile,添加以下内容:

    export HADOOP_HOME=/opt/hadoop
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    使配置生效:source /etc/profile

    服务器搭建hadoop环境

  3. 修改配置文件

    • core-site.xml

      <configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value> <!-Master节点主机名 -->
        </property>
      </configuration>
    • hdfs-site.xml

      <configuration>
        <property>
          <name>dfs.replication</name>
          <value>3</value> <!-副本数,需≤Salve节点数量 -->
        </property>
        <property>
          <name>dfs.namenode.name.dir</name>
          <value>file:///opt/hadoop/data/nameNode</value>
        </property>
        <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:///opt/hadoop/data/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.resourcemanager.hostname</name>
          <value>master</value> <!-ResourceManager地址 -->
        </property>
      </configuration>
  4. 分发Hadoop到Salve节点

    scp -r /opt/hadoop user@slave1:/opt/
    scp -r /opt/hadoop user@slave2:/opt/

格式化NameNode与启动集群

  1. 初始化HDFS
    仅在Master节点执行(首次启动时需格式化):

    服务器搭建hadoop环境

    hdfs namenode -format  # 格式化后会清空数据,谨慎操作!
  2. 启动Hadoop服务

    • Master节点启动:
      start-dfs.sh     # 启动HDFS(NameNode+DataNode)
      start-yarn.sh    # 启动YARN(ResourceManager+NodeManager)
    • Salve节点只需执行:
      start-dfs.sh  # 仅启动DataNode
      start-yarn.sh # 仅启动NodeManager
  3. 验证集群状态

    • HDFS Web界面:http://master:9870
    • YARN Web界面:http://master:8088
    • 执行测试命令:
      hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.0.jar wordcount /input /output

常见问题与解决方案

问题 解决方案
SSH连接失败(Host key not found) 确保所有节点已配置SSH免密登录,并重启SSH服务:systemctl restart sshd
DataNode未加入集群 检查hdfs-site.xml中的dfs.namenode.name.dir路径是否正确,并重启DataNode
NameNode无法启动 确认core-site.xml中的fs.defaultFS地址正确,且防火墙已开放9000端口

FAQs

Q1:Hadoop 2.x与3.x版本如何选择?
A1:Hadoop 3.x支持容器化(Docker)、支持本地Kerberos集成,且修复了2.x中的多个Bug,若需新特性或长期维护,建议选3.x;若依赖旧生态组件(如Titanium),则需用2.x。

Q2:Secondary NameNode的作用是什么?
A2:Secondary NameNode并非NameNode的备份,它的作用是定期合并NameNode的编辑日志(Edit Log)和元数据镜像(FsImage),减少NameNode重启时间,Hadoop 3.x已弃用该组件,改用CheckPoint机制。


小编有话说

搭建Hadoop环境看似复杂,但只要按步骤操作并注意细节(如路径大小写、防火墙配置),就能快速上手,建议新手先在单机上通过伪分布式模式(hdfs namenode -format后直接运行start-dfs.sh)熟悉流程,再过渡到多节点集群,务必备份$HADOOP_CONF_DIR目录下的配置文件,避免误操作导致集群瘫痪

各位小伙伴们,我刚刚为大家分享了有关“服务器搭建hadoop环境”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-05-04 10:40
下一篇 2025-05-04 11:02

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信