Debian Hadoop集群怎么搭建
导读:在 Debian 上搭建 Hadoop 集群的实操步骤 一 环境与规划 操作系统与版本:建议使用 Debian 11/12,节点间网络互通,主机名可解析(/etc/hosts 或 DNS)。 Java:安装 JDK 8(推荐) 或 JD...
在 Debian 上搭建 Hadoop 集群的实操步骤
一 环境与规划
- 操作系统与版本:建议使用 Debian 11/12,节点间网络互通,主机名可解析(/etc/hosts 或 DNS)。
- Java:安装 JDK 8(推荐) 或 JDK 11。示例命令(Debian 11/12 使用 Adoptium 仓库安装 JDK 8):
- sudo apt update & & sudo apt install -y wget apt-transport-https
- 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 $(awk -F= ‘/^VERSION_CODENAME/{ print$2} ’ /etc/os-release) main” | sudo tee /etc/apt/sources.list.d/adoptium.list
- sudo apt update & & sudo apt install -y temurin-8-jdk
- 用户与权限:建议创建 hadoop 用户并加入 sudo;所有 Hadoop 目录归属该用户(或统一使用 root,注意安全)。
- 集群角色规划(示例):
- master:NameNode + ResourceManager(可选 SecondaryNameNode)
- worker1/worker2/…:DataNode + NodeManager
- 目录规划(示例):/opt/hadoop,/opt/hadoop/hdfs/{ name,data} ,/opt/hadoop/logs(提前创建并赋权)。
二 基础环境准备
- 主机名与解析:编辑 /etc/hosts(或 DNS),确保各节点可互相解析主机名,例如:
- 192.168.50.201 master
- 192.168.50.202 worker1
- 192.168.50.203 worker2
- SSH 免密登录(推荐主节点到所有节点免密,含本机):
- 生成密钥:ssh-keygen -t rsa -C “hadoop@master”
- 分发公钥:ssh-copy-id hadoop@worker1;ssh-copy-id hadoop@worker2;ssh-copy-id hadoop@master
- 验证:ssh worker1、ssh worker2 无需口令
- 防火墙与 SELinux:
- Debian 11 默认无 SELinux;如使用 firewalld/ufw,请放行相关端口或临时关闭用于测试(生产环境按最小暴露原则放行)。
- 创建 Hadoop 用户与目录(示例以 hadoop 用户为例):
- sudo useradd -m -s /bin/bash hadoop & & sudo passwd hadoop
- echo “hadoop ALL=(ALL) NOPASSWD:ALL” | sudo tee /etc/sudoers.d/hadoop
- sudo chown -R hadoop:hadoop /opt/hadoop /opt/hadoop/hdfs /opt/hadoop/logs。
三 安装与配置 Hadoop
- 安装 Hadoop(示例版本 3.3.6,亦可选择 3.3.x 或 2.10.x 稳定版):
- 下载并解压:wget -P /root/packages https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
- sudo tar -zxvf /root/packages/hadoop-3.3.6.tar.gz -C /usr/local
- sudo ln -sfn /usr/local/hadoop-3.3.6 /usr/local/hadoop
- 环境变量(建议写入 /etc/profile.d/hadoop.sh,所有节点一致):
- export JAVA_HOME=/usr/lib/jvm/temurin-8-jdk-amd64
- export HADOOP_HOME=/usr/local/hadoop
- export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 使生效:source /etc/profile
- 关键配置($HADOOP_HOME/etc/hadoop/):
- hadoop-env.sh:export JAVA_HOME=$JAVA_HOME
- workers(或旧版 slaves):列出所有 worker 主机名,一行一个(worker1、worker2…)
- core-site.xml:
- fs.defaultFShdfs://master:8020
- hadoop.tmp.dir/export/data/hadoop
- hadoop.http.staticuser.userhadoop
- hdfs-site.xml:
- dfs.replication2
- dfs.namenode.name.dirfile:///usr/local/hadoop/hdfs/name
- dfs.datanode.data.dirfile:///usr/local/hadoop/hdfs/data
- mapred-site.xml(如不存在先 cp mapred-site.xml.template mapred-site.xml):
- mapreduce.framework.nameyarn
- mapreduce.jobhistory.addressmaster:10020
- mapreduce.jobhistory.webapp.addressmaster:19888
- yarn-site.xml:
- yarn.nodemanager.aux-servicesmapreduce_shuffle
- yarn.resourcemanager.hostnamemaster
- 目录准备与权限:
- sudo -u hadoop mkdir -p /usr/local/hadoop/hdfs/{ name,data} /export/data/hadoop /usr/local/hadoop/logs
- sudo chown -R hadoop:hadoop /usr/local/hadoop /export/data/hadoop。
四 启动与验证
- 首次格式化 NameNode(仅一次):
- sudo -u hadoop hdfs namenode -format
- 启动集群:
- 启动 HDFS:start-dfs.sh(或单独:hdfs --daemon start namenode/datanode)
- 启动 YARN:start-yarn.sh(或单独:yarn --daemon start resourcemanager/nodemanager)
- 启动历史服务(可选):mapred --daemon start historyserver
- 进程与连通性检查:
- jps(master 应见到 NameNode、ResourceManager;worker 见到 DataNode、NodeManager;历史服务节点见到 JobHistoryServer)
- HDFS Web UI:http://master:9870
- YARN Web UI:http://master:8088
- 简单功能测试:
- hdfs dfs -mkdir -p /user/hadoop
- hdfs dfs -put /etc/hosts /user/hadoop/hosts
- hdfs dfs -ls /user/hadoop
- yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 2 4。
五 常见问题与优化
- 端口与防火墙:若无法访问 Web UI,确认 9870/8088/19888 等端口已放行;云环境需配置安全组规则。
- 权限与用户:若以 root 运行,需在 hadoop-env.sh 显式设置 HDFS/YARN 相关 *_USER(不建议生产使用 root);以 hadoop 用户运行时确保目录属主一致。
- 临时目录:务必配置 hadoop.tmp.dir,避免默认 /tmp 重启后丢失导致需反复 format。
- 副本因子:单节点或测试环境可将 dfs.replication 设为 1;生产建议 3。
- SSH 免密:至少保证 master → 所有节点 免密,便于统一启停脚本执行。
- 资源与内核:根据节点 CPU/内存 调整 YARN 容器内存与 vcore;必要时优化 ulimit -n 等系统参数。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Hadoop集群怎么搭建
本文地址: https://pptw.com/jishu/771313.html
