【跟韩工学Hadoop系列第3篇】Hadoop 单节点集群搭建(优化版)-003篇
文章目录Hadoop 单节点集群搭建优化版一、环境前置优化基础层1. 系统级优化Linux2. JDK 环境优化二、核心配置优化功能层1. 通用配置core-site.xml2. HDFS 配置hdfs-site.xml3. YARN 配置yarn-site.xml4. MapReduce 配置mapred-site.xml三、运维效率优化易用层1. 一键启停脚本2. 日志优化3. 免密登录增强四、性能监控优化可观测层1. 启用JMX监控2. 简化Web UI访问五、常见问题优化容错层总结Hadoop 单节点集群搭建优化版针对单节点集群的性能、稳定性、易用性结合生产级规范和开发测试场景需求从配置、环境、资源、运维四个维度做深度优化既适配新手快速上手也满足开发调试的高效性。一、环境前置优化基础层1. 系统级优化Linux单节点集群易因系统限制导致性能瓶颈优先调整以下参数# 1. 关闭防火墙测试环境生产需精细化配置sudosystemctl stop firewalldsudosystemctl disable firewalld# 2. 关闭SELinux避免权限拦截Hadoop进程sudosetenforce0sudosed-is/^SELINUXenforcing/SELINUXdisabled//etc/selinux/config# 3. 调整文件描述符限制Hadoop进程需大量文件句柄echo* soft nofile 65535/etc/security/limits.confecho* hard nofile 65535/etc/security/limits.confecho* soft nproc 65535/etc/security/limits.confecho* hard nproc 65535/etc/security/limits.conf# 4. 禁用swap避免内存交换导致性能下降sudoswapoff-asudosed-i/swap/s/^/#//etc/fstab# 5. 配置DNS解析避免Hadoop解析localhost卡顿echo127.0.0.1$(hostname)localhost/etc/hosts2. JDK 环境优化优先选择JDK11LTS避免JDK8与Protobuf 3.21.12的兼容性问题Hadoop 3.4.x官方提示且JDK11对容器/内存管理更友好配置JVM临时目录避免/tmp目录权限问题导致进程启动失败# 在hadoop-env.sh中添加exportHADOOP_OPTS-Djava.io.tmpdir/opt/hadoop/tmpexportJAVA_OPTS-Xms2G -Xmx4G# 根据服务器内存调整单节点建议堆内存2-4G二、核心配置优化功能层1. 通用配置core-site.xml在基础配置上增加性能和容错项configuration!-- 基础配置指定默认文件系统 --propertynamefs.defaultFS/namevaluehdfs://localhost:9000/value/property!-- 优化项1Hadoop临时目录自定义路径避免系统tmp清理 --propertynamehadoop.tmp.dir/namevalue/opt/hadoop/data/tmp/value/property!-- 优化项2开启文件系统缓存提升小文件读写性能 --propertynamefs.hdfs.impl.disable.cache/namevaluefalse/value/property!-- 优化项3调整RPC超时避免单节点网络抖动导致连接断开 --propertynameipc.client.connect.timeout/namevalue30000/value/property/configuration2. HDFS 配置hdfs-site.xml针对单节点特性优化副本、缓存和IOconfiguration!-- 基础配置副本数设为1单节点无需多副本 --propertynamedfs.replication/namevalue1/value/property!-- 优化项1关闭HDFS权限检查测试环境简化操作 --propertynamedfs.permissions.enabled/namevaluefalse/value/property!-- 优化项2调整块大小单节点适合128M平衡小文件和大文件性能 --propertynamedfs.blocksize/namevalue134217728/value!-- 128MB --/property!-- 优化项3开启NameNode内存缓存提升元数据访问速度 --propertynamedfs.namenode.fs-limits.max-files-under-directory/namevalue1000000/value/property!-- 优化项4关闭HDFS审计日志减少单节点磁盘IO --propertynamedfs.audit.logger/namevalueINFO,NullAppender/value/property/configuration3. YARN 配置yarn-site.xml单节点YARN易出现资源不足优化资源分配和调度configuration!-- 基础配置启用shuffle服务 --propertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property!-- 优化项1配置NodeManager可用资源根据服务器内存调整 --propertynameyarn.nodemanager.resource.memory-mb/namevalue4096/value!-- 单节点建议4G --/propertypropertynameyarn.nodemanager.resource.cpu-vcores/namevalue2/value!-- 对应CPU核心数 --/property!-- 优化项2关闭虚拟内存检查测试环境避免资源限制 --propertynameyarn.nodemanager.vmem-check-enabled/namevaluefalse/value/property!-- 优化项3调整任务超时时间避免单节点任务卡顿被杀死 --propertynameyarn.app.mapreduce.am.resource.mb/namevalue1024/value/propertypropertynameyarn.app.mapreduce.am.command-opts/namevalue-Xmx819m/value/property/configuration4. MapReduce 配置mapred-site.xml优化任务执行效率适配单节点资源configuration!-- 基础配置指定YARN作为运行框架 --propertynamemapreduce.framework.name/namevalueyarn/value/property!-- 优化项1调整Map/Reduce任务内存 --propertynamemapreduce.map.memory.mb/namevalue512/value/propertypropertynamemapreduce.reduce.memory.mb/namevalue1024/value/property!-- 优化项2启用Map输出压缩减少网络IO单节点也能提速 --propertynamemapreduce.map.output.compress/namevaluetrue/value/propertypropertynamemapreduce.map.output.compress.codec/namevalueorg.apache.hadoop.io.compress.SnappyCodec/value/property!-- 优化项3调整任务并行度单节点建议2-4个并行任务 --propertynamemapreduce.job.reduces/namevalue2/value/property/configuration三、运维效率优化易用层1. 一键启停脚本编写脚本简化集群启停避免重复执行多条命令# 创建脚本hadoop-single-node.sh#!/bin/bashHADOOP_HOME/opt/hadoop-3.4.3# 替换为你的Hadoop安装路径case$1instart)echo启动HDFS...$HADOOP_HOME/sbin/start-dfs.shecho启动YARN...$HADOOP_HOME/sbin/start-yarn.shecho查看进程...jps;;stop)echo停止YARN...$HADOOP_HOME/sbin/stop-yarn.shecho停止HDFS...$HADOOP_HOME/sbin/stop-dfs.shecho查看进程...jps;;format)echo格式化HDFS...$HADOOP_HOME/bin/hdfs namenode-format;;status)echo集群状态jps|grep-ENameNode|DataNode|ResourceManager|NodeManager||echo集群未运行;;*)echo用法$0{start|stop|format|status}exit1;;esac赋予执行权限并使用chmodx hadoop-single-node.sh ./hadoop-single-node.sh start# 启动集群./hadoop-single-node.sh status# 查看状态2. 日志优化默认日志易占满磁盘且不易排查问题调整日志配置!-- 在hadoop-env.sh中添加日志级别和滚动策略 --export HADOOP_LOGLEVELINFO # 减少DEBUG日志输出 export HADOOP_LOG_DIR/opt/hadoop/logs # 自定义日志目录 # 配置日志滚动修改etc/hadoop/log4j2.properties appender.RFA.policy.size100MB # 单个日志文件最大100M appender.RFA.policy.maxIndex5 # 保留5个滚动文件3. 免密登录增强避免每次重启后免密失效补充配置# 确保ssh服务开机自启sudosystemctlenablesshdsudosystemctl start sshd# 清除旧密钥避免冲突ssh-keygen-f~/.ssh/known_hosts-Rlocalhost四、性能监控优化可观测层1. 启用JMX监控在hadoop-env.sh中添加JMX配置便于监控JVM状态# NameNode JMX配置exportHDFS_NAMENODE_OPTS-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port9999 -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.sslfalse$HDFS_NAMENODE_OPTS# ResourceManager JMX配置exportYARN_RESOURCEMANAGER_OPTS-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port9998 -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.sslfalse$YARN_RESOURCEMANAGER_OPTS2. 简化Web UI访问单节点可配置端口映射避免端口冲突NameNode UI默认http://localhost:9870优化后可直接查看HDFS存储、块分布ResourceManager UI默认http://localhost:8088优化后可直观查看任务运行状态五、常见问题优化容错层问题现象优化方案启动DataNode失败1. 检查hadoop.tmp.dir权限2. 避免重复格式化NameNode3. 删除tmp目录下的old数据YARN任务提交卡顿1. 关闭虚拟内存检查2. 增大yarn.scheduler.minimum-allocation-mb3. 检查磁盘IOJVM内存溢出调整hadoop-env.sh中的Xms/Xmx参数避免堆内存过大/过小小文件读写慢启用HDFS缓存、调整块大小为128M、使用CombineFileInputFormat合并小文件总结环境层关闭防火墙/SELinux、调整系统资源限制解决单节点基础性能瓶颈配置层优化HDFS/YARN/MapReduce核心参数适配单节点资源特性兼顾性能和易用性运维层一键脚本、日志滚动、免密增强降低日常操作成本容错层针对单节点常见问题提前优化减少故障排查时间。优化后的单节点集群既适合新手学习调试也能满足小规模数据处理的性能需求同时贴近生产环境的配置规范便于后续向多节点集群迁移。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2415713.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!