Debian如何实现HDFS集群配置
导读:在 Debian 上搭建 HDFS 集群的完整步骤 一 环境准备与规划 节点规划 NameNode 1 台:管理元数据 DataNode N 台:存储数据块 可选:ResourceManager 1 台、NodeManager N 台...
在 Debian 上搭建 HDFS 集群的完整步骤
一 环境准备与规划
- 节点规划
- NameNode 1 台:管理元数据
- DataNode N 台:存储数据块
- 可选:ResourceManager 1 台、NodeManager N 台(如需 YARN)
- 软件要求
- Java 8 或 11(Hadoop 3.x 推荐 8/11)
- OpenSSH 服务器
- Hadoop 3.x 稳定版(所有节点安装相同版本与路径)
- 网络与主机名
- 建议使用静态 IP,并在所有节点配置 /etc/hosts 解析主机名
- 确保节点间免密 SSH互通(便于启动与维护)
二 安装与基础配置
- 系统更新与 Java
- 执行:
sudo apt update & & sudo apt upgrade -y - 安装 Java(二选一):
sudo apt install openjdk-11-jdk -y或sudo apt install openjdk-8-jdk -y - 验证:
java -version
- 执行:
- 创建专用用户与目录
sudo adduser hadoop & & sudo usermod -aG sudo hadoop- 建议数据目录:
sudo mkdir -p /opt/hadoop/hdfs/{ name,data}
- 安装 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.d/hadoop.sh)
- 内容:
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 /etc/profile或source /etc/profile.d/hadoop.sh
- 内容:
- SSH 免密
- 在每台机器生成密钥:
ssh-keygen -t rsa -b 4096 - 在 master 上分发公钥:
ssh-copy-id hadoop@node1、ssh-copy-id hadoop@node2… - 验证:
ssh hadoop@node1无需密码
- 在每台机器生成密钥:
三 HDFS 核心配置
- 目录与文件
- 配置目录:
$HADOOP_HOME/etc/hadoop/ - 关键文件:core-site.xml、hdfs-site.xml、hadoop-env.sh
- 配置目录:
- 配置示例
- hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export HADOOP_HOME=/usr/local/hadoop - core-site.xml
< configuration> < property> < name> fs.defaultFS< /name> < value> hdfs://master:9000< /value> < /property> < /configuration> - hdfs-site.xml
< configuration> < property> < name> dfs.replication< /name> < value> 3< /value> < /property> < property> < name> dfs.namenode.name.dir< /name> < value> file:///opt/hadoop/hdfs/name< /value> < /property> < property> < name> dfs.datanode.data.dir< /name> < value> file:///opt/hadoop/hdfs/data< /value> < /property> < /configuration>
- hadoop-env.sh
- 主机名解析
- 编辑 /etc/hosts(示例)
192.168.1.100 master 192.168.1.101 node1 192.168.1.102 node2
- 编辑 /etc/hosts(示例)
- 目录权限
sudo chown -R hadoop:hadoop /opt/hadoop/hdfs
四 启动与验证
- 格式化 NameNode(仅首次)
- 切换 hadoop 用户:
su - hadoop - 执行:
hdfs namenode -format
- 切换 hadoop 用户:
- 启动 HDFS
start-dfs.sh
- 验证
- 进程检查:
jps(应看到 NameNode、DataNode 等) - Web 界面:http://master:9870(HDFS NameNode Web UI)
- 基本操作:
hdfs dfs -mkdir -p /user/hadoop hdfs dfs -put $HADOOP_HOME/README.txt /user/hadoop/ hdfs dfs -ls /user/hadoop
- 进程检查:
- 常见问题排查
- 无法免密 SSH:检查
~/.ssh/authorized_keys权限为 600 - 端口不通:确认 9000/9870 未被占用且防火墙放行
- 目录权限:确保 /opt/hadoop/hdfs 属主为 hadoop:hadoop
- DataNode 未注册:检查 /etc/hosts、SSH、NameNode 与 DataNode 的 dfs.datanode.data.dir 一致性与可写性
- 无法免密 SSH:检查
五 扩展与高可用(可选)
- YARN 基础配置(如需)
- yarn-site.xml
< configuration> < property> < name> yarn.resourcemanager.hostname< /name> < value> master< /value> < /property> < property> < name> yarn.nodemanager.aux-services< /name> < value> mapreduce_shuffle< /value> < /property> < property> < name> yarn.nodemanager.aux-services.mapreduce.shuffle.class< /name> < value> org.apache.hadoop.mapred.ShuffleHandler< /value> < /property> < /configuration> - 启动:
start-yarn.sh
- yarn-site.xml
- HDFS 高可用 HA(QJM + ZooKeeper)
- 部署 ZooKeeper 集群(3 或 5 节点)
- 配置 core-site.xml 与 hdfs-site.xml:定义 nameservices、dfs.ha.namenodes、JournalNodes、Failover 与 ZKFC
- 初始化与启动 ZKFC、格式化 ZooKeeper、启动 JournalNode 与 NameNode,验证 Active/Standby 切换
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian如何实现HDFS集群配置
本文地址: https://pptw.com/jishu/765096.html
