温馨提示×

Debian如何定制Hadoop环境

小樊
40
2025-12-23 03:35:55
栏目: 智能运维

在 Debian 上定制 Hadoop 环境

一 环境准备与基础安装

  • 安装 Java(推荐 OpenJDK 8 或 11):sudo apt update && sudo apt install -y openjdk-11-jdk;验证:java -version。
  • 创建专用用户(可选但推荐):groupadd hadoop && useradd -g hadoop -m hadoop && passwd hadoop;按需加入 sudo。
  • 配置主机名与解析:编辑 /etc/hosts,为所有节点添加 IP 与主机名映射,确保节点互通。
  • 配置 SSH 免密:在主节点执行 ssh-keygen -t rsa,随后 ssh-copy-id 到所有节点(含本机),便于脚本化启停。
  • 下载并解压 Hadoop(示例版本 3.3.6):wget https://downloads.apache.org/hadoop/core/hadoop-3.3.6/hadoop-3.3.6.tar.gz && tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local && mv /usr/local/hadoop-3.3.6 /usr/local/hadoop。
  • 设置环境变量(/etc/profile 或 ~/.bashrc):export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64;export HADOOP_HOME=/usr/local/hadoop;export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin;执行 source 使其生效。
  • 基础校验:hadoop version 应返回已安装版本号。

二 核心配置与目录规划

  • 配置 hadoop-env.sh:显式设置 export JAVA_HOME;如使用 root 运行守护进程,可同时设置 HDFS/YARN 相关 *_USER 变量(生产建议以专用用户运行)。
  • 配置 core-site.xml:设置默认文件系统与本地临时目录。示例:
    fs.defaultFShdfs://namenode:8020 hadoop.tmp.dir/export/data/hadoop
  • 配置 hdfs-site.xml:设置副本数与数据目录。示例:
    dfs.replication3 dfs.namenode.name.dirfile:///export/data/hadoop/dfs/name dfs.datanode.data.dirfile:///export/data/hadoop/dfs/data
  • 配置 mapred-site.xml:启用 YARN 并开启历史服务器。示例:
    mapreduce.framework.nameyarn mapreduce.jobhistory.addressnamenode:10020 mapreduce.jobhistory.webapp.addressnamenode:19888
  • 配置 yarn-site.xml:指定 ResourceManager 与 Shuffle 服务。示例:
    yarn.resourcemanager.hostnamenamenode yarn.nodemanager.aux-servicesmapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.classorg.apache.hadoop.mapred.ShuffleHandler
  • 配置 workers(或 slaves):逐行写入所有 DataNode/NodeManager 主机名。
  • 目录准备与权限:提前创建上述数据目录并赋予运行用户(如 hadoop:hadoop)读写权限。

三 启动与验证

  • 首次启动前格式化 HDFS(仅一次):hdfs namenode -format。
  • 启动服务:start-dfs.sh 与 start-yarn.sh(或使用 start-all.sh)。
  • 进程校验:jps 应能看到 NameNode、DataNode、ResourceManager、NodeManager 等进程。
  • Web 界面:
    • HDFS NameNode:http://namenode:9870(Hadoop 3 默认端口)
    • YARN ResourceManager:http://namenode:8088
    • MapReduce JobHistory:http://namenode:19888
  • 运行示例:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output(确保 /input 存在且包含文本)。

四 常见定制与优化

  • 资源分配(示例,按节点内存调整):
    • yarn.nodemanager.resource.memory-mb:节点可分配给容器的总内存(如 8192 MB)
    • yarn.scheduler.minimum-allocation-mb:容器最小内存(如 512 MB)
    • yarn.scheduler.maximum-allocation-mb:容器最大内存(如 4096 MB)
  • 系统调优:提升文件描述符与网络参数(如 fs.file-max、net.core.somaxconn),以支持更多并发连接与文件句柄。
  • 安全与权限:避免使用 root 运行生产守护进程;为 Hadoop 目录设置最小权限;必要时启用 Kerberos、启用 HDFS 权限检查。
  • 高可用与扩展:规划 JournalNode、ZooKeeper、HA NameNode 等组件;按数据增长横向扩展 DataNode
  • 端口规划:避免与系统服务冲突,必要时在 yarn-site.xml/hdfs-site.xml 中调整 HTTP/RPC 端口。

五 故障排查要点

  • 配置与权限:核对 core-site.xml/hdfs-site.xml/mapred-site.xml/yarn-site.xml 的键名与值;确保数据目录存在且属主正确。
  • SSH 连通:主节点到所有节点(含本机)需免密;/etc/hosts 解析正确;必要时用 ssh nodeX 验证。
  • 端口占用:检查 8020/9870/8088/19888 等端口是否被占用(ss -lntp | grep 端口)。
  • 日志定位:查看 $HADOOP_HOME/logs 下对应角色的 .log 与 .out 文件,优先从异常堆栈定位问题。
  • 常见症状:未格式化导致启动失败、临时目录被清理需重新 format、未配置 workers 导致从节点未启动、内存参数过小导致容器申请失败。

0