Linux环境下HDFS集群管理指南
在管理HDFS集群前,需完成Linux环境的初始化配置,确保集群节点间通信正常:
sudo apt-get install openjdk-8-jdk),并配置JAVA_HOME环境变量。ssh-keygen -t rsa生成密钥对,通过ssh-copy-id将公钥复制到所有节点。systemctl enable ntpd && systemctl start ntpd),确保所有节点时间一致,避免数据同步问题。$HADOOP_HOME/etc/hadoop)下的关键文件:
fs.defaultFS=hdfs://namenode:9000)和临时目录(hadoop.tmp.dir=/path/to/tmp)。dfs.namenode.name.dir)、DataNode数据存储路径(dfs.datanode.data.dir)及副本数(dfs.replication=3,生产环境建议3副本)。hdfs namenode -format),初始化元数据存储目录(会清空原有数据,生产环境需谨慎)。start-dfs.sh启动HDFS集群,DataNode节点会自动注册;停止集群使用stop-dfs.sh。hdfs dfsadmin -report查看集群整体状态,包括DataNode数量、磁盘使用情况、副本数等;hdfs dfsadmin -safemode get查看NameNode是否处于安全模式(安全模式下无法写入数据)。http://namenode-host:9870)可视化监控集群状态,查看DataNode列表、存储容量、数据块分布等信息。hdfs dfs -chmod(修改文件权限,如hdfs dfs -chmod 755 /user/data)、hdfs dfs -chown(修改所有者,如hdfs dfs -chown user:group /user/data)管理文件/目录权限。hdfs dfs -setfacl(添加ACL规则,如hdfs dfs -setfacl -m user:alice:rwx /user/data)实现更精细的权限控制,允许特定用户或组访问资源;使用hdfs dfs -getfacl查看ACL规则。hdfs dfsadmin -safemode leave),或在配置文件中设置自动退出时间(dfs.safemode.extension)。stop-dfs.sh),在slaves文件中添加新DataNode主机名,配置新节点的hdfs-site.xml(指向NameNode地址),启动新节点(hadoop-daemon.sh start datanode),最后执行start-dfs.sh重启集群。slaves文件中添加新节点,新节点执行hadoop-daemon.sh start datanode启动;在NameNode执行hdfs dfsadmin -refreshNodes刷新节点列表,NameNode会自动连接新节点并分配数据块。hdfs-site.xml中配置dfs.hosts.exclude(指定排除节点的文件路径),将待移除节点添加到该文件,执行hdfs dfsadmin -refreshNodes,NameNode会将节点标记为“decommissioning”(正在退役),并自动迁移其上的数据块到其他节点;待数据迁移完成后,停止该节点的DataNode服务并从slaves文件中移除。hdfs dfsadmin -allowSnapshot /path允许目录创建快照,使用hdfs dfs -createSnapshot /path snapshotname创建快照(如hdfs dfs -createSnapshot /user/data snap1),快照是某一时刻的数据状态,可用于快速恢复误删除或损坏的数据。hdfs dfs -copyToLocal将HDFS数据复制到本地存储,或复制到其他HDFS目录(如hdfs dfs -cp /user/data /backup/data)。hdfs dfs -restoreSnapshot /path snapname)、编辑日志(NameNode的edits文件)或备份文件恢复数据。dfs.blocksize),大文件处理(如视频、日志)建议设置为256MB或512MB(减少寻址开销),小文件处理建议设置为64MB(提高并行度)。dfs.replication),热数据(频繁访问)设置为3副本(高可靠性),冷数据(很少访问)设置为2副本(节省存储成本)。hadoop archive工具或自定义脚本)。