一、环境准备:基础条件需严格满足
hadoop)并配置sudo权限,避免使用root用户运行;配置SSH无密码登录(主节点到所有从节点),便于集群管理。二、网络配置:确保节点间通信稳定
/etc/hosts文件,添加所有节点的IP与主机名映射(如192.168.1.10 namenode、192.168.1.11 datanode1),禁止使用DNS解析(减少依赖)。systemctl stop firewalld)或开放HDFS所需端口(如NameNode的8020/RPC端口、50070/HTTP端口,DataNode的50010/数据传输端口、50020/IPC端口),防止端口阻塞导致通信失败。三、核心配置文件:精准调整参数
fs.defaultFS为HDFS集群地址(如hdfs://mycluster,高可用集群需指定nameservice);配置Hadoop临时目录(hadoop.tmp.dir,如/usr/local/hadoop/tmp),避免数据丢失。dfs.replication,生产环境建议3,测试环境可设为1);指定NameNode和DataNode的数据存储路径(dfs.namenode.name.dir、dfs.datanode.data.dir,推荐多目录提升IO性能);高可用集群需添加dfs.nameservices(如mycluster)、dfs.ha.namenodes.mycluster(如nn1,nn2)、dfs.namenode.shared.edits.dir(JournalNode共享目录,如qjournal://jn1:8485;jn2:8485/mycluster)等参数。四、高可用(HA)配置:保障服务连续性
hdfs-site.xml添加dfs.journalnode.edits.dir(如/home/hadoop/journal/data),并在所有JournalNode节点启动服务(hdfs --daemon start journalnode)。nn1)上执行hdfs namenode -format格式化,启动后同步元数据到备用NameNode(nn2):hdfs namenode -bootstrapStandby。dfs.ha.fencing.methods(如sshfence)和dfs.ha.fencing.ssh.private-key-files(SSH私钥路径),确保备用NameNode能自动接管故障节点;客户端配置core-site.xml中的fs.defaultFS为高可用集群地址(hdfs://mycluster)。五、性能优化:提升集群吞吐量
/etc/security/limits.conf中设置nofile 65536)和网络连接数;关闭swap分区(swapoff -a并注释/etc/fstab中的swap行),避免内存交换导致性能下降。dfs.block.size(如128MB或256MB,大文件推荐更大块大小);增加NameNode处理线程数(dfs.namenode.handler.count,如100)和DataNode RPC线程数(dfs.datanode.handler.count,如80),提升并发处理能力。/data1、/data2),提高IO吞吐量;使用高效压缩算法(如Snappy)和文件格式(如Parquet、ORC),减少数据存储空间和传输开销。六、安全与管理:确保健壮性
dfs.replication),定期通过hdfs fsck命令检查数据块完整性,修复损坏的块。/usr/local/hadoop/logs),使用Ganglia、Nagios或Hadoop自带的ResourceManager Web界面监控集群状态(如CPU、内存、磁盘使用率,节点健康状态);定期备份NameNode元数据(如/usr/local/hadoop/dfs/name目录),防止元数据丢失。