Debian如何管理HDFS数据
小樊
38
2025-12-27 01:17:15
在 Debian 上管理 HDFS 数据
一 环境准备与基础配置
- 安装 Java 8/11(以 OpenJDK 11 为例):sudo apt update && sudo apt install -y openjdk-11-jdk;验证:java -version。创建专用用户 hadoop 并配置 SSH 免密;在 /etc/hosts 完成主机名映射;建议启用 NTP 做时钟同步。下载并解压 Hadoop 3.3.x,设置环境变量:export HADOOP_HOME=/usr/local/hadoop;export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin;在 hadoop-env.sh 中设置 JAVA_HOME。核心配置示例:core-site.xml 设置 fs.defaultFS=hdfs://namenode:8020;hdfs-site.xml 设置 dfs.replication=3、dfs.namenode.name.dir、dfs.datanode.data.dir、dfs.blocksize=134217728(128MB)。首次启动前在 NameNode 执行:hdfs namenode -format;启动 HDFS:start-dfs.sh;进程检查:jps(应见 NameNode/DataNode,如配置 Secondary 还会看到 SecondaryNameNode);健康检查:hdfs dfsadmin -report;Web UI:Hadoop 3.x 为 http://namenode:9870。
二 常用 HDFS 数据操作
- 目录与权限:hdfs dfs -mkdir -p /user/hadoop;hdfs dfs -chmod 755 /user/hadoop;hdfs dfs -chown hadoop:hadoop /user/hadoop。
- 文件传输:hdfs dfs -put local.txt /user/hadoop/input;hdfs dfs -get /user/hadoop/output/part-r-00000 ./out;hdfs dfs -cat /user/hadoop/input/local.txt;hdfs dfs -tail /user/hadoop/logs/app.log;hdfs dfs -cp /src /dst;hdfs dfs -mv /src /dst;hdfs dfs -rm /path/file;hdfs dfs -rm -r /path/dir。
- 配额与统计:hdfs dfsadmin -setQuota 100000 /data(文件数配额);hdfs dfsadmin -setSpaceQuota 1t /data(容量配额);hdfs dfs -count -q /data(配额与已用);hdfs dfsadmin -report(集群节点与容量);hdfs dfs -du -h /data(目录大小);hdfs dfs -ls -h /data(人类可读列表)。
三 数据保护与恢复
- 快照(Snapshot):对关键目录开启快照 hdfs fs -allowSnapshot /data;创建快照 hdfs fs -createSnapshot /data snap_20250801;恢复文件 hdfs fs -cp /data/.snapshot/snap_20250801/file /data/restore/。
- 回收站(Trash):删除默认进入回收站(保留期可配置),误删可从回收站恢复:hdfs dfs -cp /user/hadoop/.Trash/Current/file /user/hadoop/。
- 跨集群/异地备份:使用 distcp 做全量/增量同步,例如:hadoop distcp -m 20 hdfs://src-cluster:8020/data hdfs://dst-cluster:8020/backup/data;可按日期/目录分层执行,便于回滚。
四 运维与优化要点
- 安全与连通:核对 /etc/hosts、SSH 免密、防火墙策略;放行端口 8020(NameNode RPC)、9870(NameNode Web)、50075(DataNode Web)、50010(DataNode 数据传输)。启用 NTP 避免时间漂移导致异常。
- 存储与副本:生产环境建议 dfs.replication=3;单机或测试可设为 1;块大小 dfs.blocksize 大文件可设为 256MB/512MB 减少小文件与元数据压力;为 dfs.namenode.name.dir/dfs.datanode.data.dir 挂载高性能/大容量磁盘,并将 hadoop.tmp.dir、HADOOP_LOG_DIR 指向充足分区。
- 监控与排障:用 jps 与 hdfs dfsadmin -report 巡检;通过 http://namenode:9870 查看 DataNode 健康、块报告与容量;NameNode 元数据与编辑日志(fsimage/edits)定期备份;目录与配额超限、磁盘满、权限错误是常见故障点,优先检查对应目录、配额与磁盘使用。