以下是CentOS上优化Hadoop配置的关键方向及具体措施:
systemctl stop firewalld)和SELinux(setenforce 0),减少资源消耗。/etc/security/limits.conf,设置* soft nofile 65535。/etc/sysctl.conf中设置net.core.somaxconn=65535、net.ipv4.tcp_tw_reuse=1,并执行sysctl -p生效。dfs.namenode.name.dir、dfs.datanode.data.dir),分散磁盘压力。dfs.block.size):大文件建议256MB-512MB,小文件场景可保持默认128MB。dfs.replication):根据数据重要性设置2-3份,平衡冗余与存储成本。fs.trash.interval):避免误删数据,设置fs.trash.checkpoint.interval定期清理。yarn-site.xml中设置yarn.nodemanager.resource.memory-mb和yarn.nodemanager.resource.cpu-vcores,按节点硬件配置分配资源。mapreduce.map.memory.mb、mapreduce.reduce.memory.mb,并设置JVM堆大小(如-Xmx为内存的80%)。Capacity Scheduler或Fair Scheduler,按队列优先级分配资源,避免资源争用。mapreduce.task.io.sort.mb(默认100MB,可增大至200MB+)和mapreduce.task.io.sort.factor(默认10,可增大至20),优化排序性能。mapreduce.job.reduces),通常为集群Reduce槽数的0.95倍,避免数据倾斜。mapreduce.map.output.compress=true),选择Snappy算法(mapreduce.map.output.compress.codec=org.apache.hadoop.io.compress.SnappyCodec)。hadoop fs -rm -r /var/log/hadoop/*),通过日志定位慢任务或异常。hadoop-env.sh、core-site.xml),并在测试环境验证效果。参考来源: