Debian HDFS配置新手指南
导读:Debian 上搭建与配置 HDFS 的简明步骤 一 环境准备与安装 安装 Java(推荐 OpenJDK 11) 执行:sudo apt update && sudo apt install -y openjdk-1...
Debian 上搭建与配置 HDFS 的简明步骤
一 环境准备与安装
- 安装 Java(推荐 OpenJDK 11)
- 执行:
sudo apt update & & sudo apt install -y openjdk-11-jdk - 验证:
java -version、javac -version
- 执行:
- 创建专用用户(推荐 hadoop)
- 执行:
sudo adduser --disabled-password --gecos "" hadoop & & sudo usermod -aG sudo hadoop
- 执行:
- 下载并解压 Hadoop(示例 3.3.15)
- 执行:
wget https://downloads.apache.org/hadoop/core/hadoop-3.3.15/hadoop-3.3.15.tar.gz sudo tar -xzvf hadoop-3.3.15.tar.gz -C /usr/local sudo mv /usr/local/hadoop-3.3.15 /usr/local/hadoop sudo chown -R hadoop:hadoop /usr/local/hadoop
- 执行:
- 配置环境变量(以 hadoop 用户执行)
- 编辑
~/.bashrc或/etc/profile:export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin - 生效:
source ~/.bashrc
- 编辑
- 主机名与免密登录
- 在
/etc/hosts为各节点添加主机名映射(如:192.168.1.10 namenode,192.168.1.11 datanode1) - 在 namenode 生成密钥并分发到各 datanode:
ssh-keygen -t rsa -b 2048 -N "" -f ~/.ssh/id_rsa ssh-copy-id hadoop@datanode1
- 在
- 时间同步
- 建议安装并启用 NTP:
sudo apt install -y ntp & & sudo timedatectl set-ntp true
- 建议安装并启用 NTP:
二 核心配置
- 配置目录与环境
- 配置文件路径:
$HADOOP_HOME/etc/hadoop/ - 设置 JAVA_HOME:编辑
hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
- 配置文件路径:
- 基础配置示例
core-site.xml< configuration> < property> < name> fs.defaultFS< /name> < value> hdfs://namenode:8020< /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> 3< /value> < /property> < property> < name> dfs.namenode.name.dir< /name> < value> file:/usr/local/hadoop/hdfs/namenode< /value> < /property> < property> < name> dfs.datanode.data.dir< /name> < value> file:/usr/local/hadoop/hdfs/datanode< /value> < /property> < property> < name> dfs.blocksize< /name> < value> 134217728< /value> < !-- 128MB --> < /property> < /configuration>- 目录准备与权限(以 hadoop 用户执行)
sudo mkdir -p /usr/local/hadoop/hdfs/{ namenode,datanode} sudo chown -R hadoop:hadoop /usr/local/hadoop
- 说明
fs.defaultFS指定默认文件系统地址(RPC 端口通常为 8020)。dfs.replication为副本数;单机或测试可设为 1。dfs.blocksize为块大小,默认 128MB。
三 启动与验证
- 首次启动前格式化 NameNode(仅一次)
- 执行:
hdfs namenode -format
- 执行:
- 启动 HDFS
- 在 namenode 执行:
$HADOOP_HOME/sbin/start-dfs.sh
- 在 namenode 执行:
- 进程与端口检查
- 进程:
jps(应看到 NameNode、DataNode,如配置了 Secondary 还会看到 SecondaryNameNode) - Web UI:访问 http://namenode:50070
- 命令行健康检查:
hdfs dfsadmin -report
- 进程:
- 基本文件操作
hdfs dfs -ls / hdfs dfs -mkdir -p /user/hadoop/input echo "Hello, HDFS" > test.txt hdfs dfs -put test.txt /user/hadoop/input/ hdfs dfs -cat /user/hadoop/input/test.txt - 常见问题速查
- 端口被占用:确认 8020/50070 未被占用或已放行
- Java 路径错误:检查
hadoop-env.sh中 JAVA_HOME - 权限问题:确保 Hadoop 目录属主为 hadoop:hadoop
- 节点不通:核对
/etc/hosts、SSH 免密、防火墙策略
四 常见问题与优化
- 防火墙与端口
- 放行常用端口:8020(NameNode RPC)、50070(NameNode Web)、50075(DataNode Web)、50010(DataNode 数据传输)等,或临时关闭防火墙用于排查
- 时间与时钟偏差
- 启用 NTP 同步,避免 HDFS 因时间漂移导致异常
- 副本与容量规划
- 副本数
dfs.replication建议与 DataNode 数量匹配;单机测试可设为 1
- 副本数
- 块大小
- 大文件场景可适当增大
dfs.blocksize(如 256MB/512MB),减少小文件数量
- 大文件场景可适当增大
- 日志与目录
- 自定义
hadoop.tmp.dir、HADOOP_LOG_DIR到容量充足的磁盘分区,便于排查与扩容
- 自定义
五 可选扩展 高可用 HA
- 前置组件
- 部署 ZooKeeper(建议 3 节点)并启动服务
- 核心配置思路(在
hdfs-site.xml中)- 定义命名服务:
dfs.nameservices=ns1 - 指定主备 NameNode:
dfs.ha.namenodes.ns1=nn1,nn2 - RPC 与 HTTP 地址:
dfs.namenode.rpc-address.ns1.nnX、dfs.namenode.http-address.ns1.nnX - 共享编辑日志:
dfs.namenode.shared.edits.dir=qjournal://nn1:8485; nn2:8485; jn1:8485/ns1 - 故障转移代理:
dfs.client.failover.proxy.provider.ns1=org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider - 隔离方法:
dfs.ha.fencing.methods=sshfence,并配置dfs.ha.fencing.ssh.private-key-files - 自动故障转移:
dfs.ha.automatic-failover.enabled=true
- 定义命名服务:
- 初始化与验证
- 按官方步骤初始化 JournalNode、格式化 ZKFC,启动 ZooKeeperFailoverController,验证主备切换
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian HDFS配置新手指南
本文地址: https://pptw.com/jishu/751781.html
