1. 前置准备:安装与配置Hadoop基础环境
在CentOS上实现HDFS资源管理前,需完成Hadoop的安装与环境配置。首先安装Java(Hadoop依赖Java环境)、配置SSH免密登录(确保节点间无密码通信);接着下载并解压Hadoop安装包,编辑/etc/profile文件添加Hadoop环境变量(如HADOOP_HOME、PATH),执行source /etc/profile使变量生效。这些步骤是HDFS资源管理的基础。
2. 核心配置:HDFS与YARN资源管理参数设置
HDFS的资源管理依赖core-site.xml、hdfs-site.xml和yarn-site.xml三个核心配置文件:
fs.defaultFS,如hdfs://namenode-host:8020),指定Hadoop临时目录(hadoop.tmp.dir)。dfs.namenode.name.dir)、DataNode存储路径(dfs.datanode.data.dir)、数据块副本数(dfs.replication,默认3,可根据集群规模调整)及数据块大小(dfs.blocksize,默认128MB,大文件建议256MB)。yarn.resourcemanager.hostname)、NodeManager辅助服务(yarn.nodemanager.aux-services,需设置为mapreduce_shuffle以支持MapReduce任务)、NodeManager资源限制(yarn.nodemanager.resource.memory-mb为物理内存总量,yarn.nodemanager.resource.cpu-vcores为CPU核心数)。3. 资源调度:YARN调度器配置
YARN是HDFS资源管理的核心调度框架,需通过yarn-site.xml配置调度器类型及资源分配策略:
CapacityScheduler(支持多租户资源配额)或FairScheduler(公平分配资源),通过yarn.resourcemanager.scheduler.class参数指定。yarn.scheduler.minimum-allocation-mb为单个容器最小内存,默认1024MB;yarn.scheduler.maximum-allocation-mb为单个容器最大内存,默认8192MB;同理可配置vcores参数)。4. 权限与配额:精细化资源管控
hdfs dfs -chmod(修改文件权限,如755)、hdfs dfs -chown(修改文件所有者,如hdfs:hadoop)命令管理;支持更精细的ACL(访问控制列表),通过hdfs dfs -setfacl(添加ACL规则,如user:user1:rwx)和hdfs dfs -getfacl(查看ACL规则)命令配置。hdfs dfsadmin命令限制用户/目录的资源使用:-setQuota -n user:username:1000(限制用户username的文件数量不超过1000个)、-setSpaceQuota -n user:username:1G(限制用户username的目录存储空间不超过1GB)。5. 监控与维护:资源状态跟踪
hdfs dfsadmin -report命令查看DataNode数量、磁盘使用情况、数据块分布等信息;使用yarn node -list命令查看NodeManager的运行状态。http://resourcemanager-host:8088)实时监控集群资源使用情况(内存、CPU、容器数量)、应用程序运行状态及历史记录。6. 高级优化:提升资源利用率
COLD、WARM、HOT)根据数据访问频率分类存储,将冷数据迁移至低成本存储介质(如HDD),减少高成本存储(如SSD)的占用。hdfs dfsadmin -allowSnapshot创建快照目录,hdfs dfs -createSnapshot生成快照)功能快速备份数据;数据丢失时可通过快照、编辑日志或DistCp(分布式复制工具)恢复。Har归档、CombineFileInputFormat)减少NameNode的内存压力。