温馨提示×

Debian Hadoop 怎样部署应用

小樊
50
2025-12-30 22:44:23
栏目: 智能运维

在 Debian 上部署 Hadoop 并运行应用的完整流程

一 环境准备与规划

  • 节点与角色
    • NameNode ×1:管理 HDFS 元数据
    • DataNode ×N:存储实际数据
    • ResourceManager ×1:管理 YARN 资源
    • NodeManager ×N:管理容器与任务
  • 软件与版本
    • Java 8 或更高版本(推荐 OpenJDK 8/11Eclipse Temurin 8
    • Hadoop 3.3.x(如 3.3.6)稳定版
  • 基础配置
    • 所有节点间可 SSH 互通(建议主节点到各节点免密)
    • 配置 /etc/hosts 映射各节点 IP ↔ 主机名
    • 创建专用 hadoop 用户并加入 sudo(可选但推荐)
    • 规划数据与日志目录(如 /usr/local/hadoop/dfs/{name,data}),并预先创建与赋权

二 安装与配置 Hadoop

  • 安装 Java
    • OpenJDK 8
      • sudo apt update && sudo apt install -y openjdk-8-jdk
    • Eclipse Temurin 8(推荐)
      • wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | sudo tee /etc/apt/keyrings/adoptium.asc
      • echo “deb [signed-by=/etc/apt/keyrings/adoptium.asc] https://mirrors.tuna.tsinghua.edu.cn/Adoptium/deb $(lsb_release -rs) main” | sudo tee /etc/apt/sources.list.d/adoptium.list
      • sudo apt update && sudo apt install -y temurin-8-jdk
  • 下载并解压 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 mv /usr/local/hadoop-3.3.6 /usr/local/hadoop
  • 环境变量(所有节点)
    • 编辑 ~/.bashrc/etc/profile
      • export JAVA_HOME=/usr/lib/jvm/temurin-8-jdk-amd64 # 若用 OpenJDK 8:/usr/lib/jvm/java-8-openjdk-amd64
      • export HADOOP_HOME=/usr/local/hadoop
      • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • 使生效:source ~/.bashrc 或 source /etc/profile
  • 关键配置(路径:$HADOOP_HOME/etc/hadoop)
    • core-site.xml
      • - fs.defaultFShdfs://**namenode**:**9000** -
    • hdfs-site.xml
      • - dfs.replication**3** - dfs.namenode.name.dir/usr/local/hadoop/dfs/name - dfs.datanode.data.dir/usr/local/hadoop/dfs/data -
    • mapred-site.xml(如文件不存在先 cp mapred-site.xml.template mapred-site.xml)
      • - mapreduce.framework.name**yarn** -
    • yarn-site.xml
      • - yarn.nodemanager.aux-services**mapreduce_shuffle** - yarn.nodemanager.aux-services.mapreduce.shuffle.classorg.apache.hadoop.mapred.**ShuffleHandler** -
    • hadoop-env.sh
      • 显式设置:export JAVA_HOME=…(与上一致)
  • 目录与权限
    • sudo mkdir -p /usr/local/hadoop/dfs/{name,data}
    • sudo chown -R hadoop:hadoop /usr/local/hadoop
    • sudo chmod -R 755 /usr/local/hadoop/dfs

三 启动与验证

  • 格式化 HDFS(仅在 NameNode 执行一次)
    • hdfs namenode -format
  • 启动服务
    • NameNode 执行:start-dfs.sh
    • ResourceManager 执行:start-yarn.sh
  • 进程与连通性检查
    • jps 应看到:NameNode、DataNode、ResourceManager、NodeManager
    • 本地验证:hadoop version
    • Web UI:ResourceManager 8088,NameNode 9870(若浏览器访问,请确认主机名/IP 与端口可达)
  • 常见问题速查
    • 节点不通:检查 /etc/hosts、SSH 免密、防火墙/安全组
    • 权限错误:检查 Hadoop 目录属主/权限
    • 配置错误:核对 core-site.xml/hdfs-site.xml/mapred-site.xml/yarn-site.xml 的 key/value 与路径

四 部署与运行示例应用

  • 准备数据到 HDFS
    • hdfs dfs -mkdir -p /user/hadoop/input
    • hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /user/hadoop/input
  • 运行内置 WordCount
    • hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount
      /user/hadoop/input /user/hadoop/output
  • 查看结果
    • hdfs dfs -cat /user/hadoop/output/part-r-00000
  • 作业状态与日志
    • 浏览器访问 ResourceManager 8088 查看应用详情与日志
    • 或在 CLI:yarn application -list / yarn logs -applicationId <app_id>

五 生产部署与安全加固建议

  • 高可用与规模
    • 引入 JournalNode/ZooKeeper 实现 HDFS HAYARN ResourceManager HA 提升容错
    • 结合数据量与并发度调整 副本数(dfs.replication)、容器内存与 vcore
  • 操作系统与 JVM
    • 提升文件句柄与网络参数(如 fs.file-max、net.core.somaxconn
    • 合理设置 JVM 堆大小 与 GC 策略,避免 Full GC 抖动
  • 安全
    • 启用 Kerberos 认证、HDFS 权限/ACLYARN 队列与配额
    • 启用 TLS/HTTPS 保护 Web 与 RPC 通信
  • 数据与运维
    • 使用 Parquet/ORC 等列式格式,配合 分区/分桶 提升性能
    • 规范目录结构、备份关键配置与元数据,完善监控与告警(如 Prometheus + Grafana)

0