Debian Hadoop 虚拟机部署教程
导读: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
- 更新索引并安装 OpenJDK 8:
- 配置 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/sbinsource /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>
- hadoop-env.sh
- 创建目录并格式化 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 8、SSH 服务,配置静态 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 可按需开启)。
- hadoop-env.sh
- 目录与权限(所有节点)
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。
- 运行示例任务(同单机)验证集群可用性。
- 仅在 master 执行:
四 防火墙与常见问题处理
- 防火墙与 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,目录 ~/.ssh 为 700,以及 /etc/hosts 解析是否正确。
- DataNode 未注册:确认 workers 配置、目录权限、网络互通与 dfs.replication 设置。
- 端口占用:检查 9870/8088/9000 是否被其他进程占用(
ss -tulpen | grep -E '9870|8088|9000')。 - Java/Hadoop 路径错误:核对 hadoop-env.sh 中的 JAVA_HOME 与 HADOOP_CONF_DIR。
- 首次启动未格式化:执行 hdfs namenode -format 后再启动 HDFS。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Hadoop 虚拟机部署教程
本文地址: https://pptw.com/jishu/775947.html
