HDFS核心配置文件及说明
HDFS的主要配置文件均位于Hadoop安装目录的etc/hadoop
子目录下(如$HADOOP_HOME/etc/hadoop
),其中$HADOOP_HOME
为Hadoop的安装根目录。
作用:定义Hadoop集群的核心参数,是HDFS和MapReduce等组件的基础配置,影响文件系统访问、临时存储等核心行为。
关键配置项:
fs.defaultFS
:指定HDFS的默认文件系统URI(如hdfs://namenode_host:8020
),客户端所有路径均以此为基准;hadoop.tmp.dir
:Hadoop临时目录(如/tmp/hadoop-${user.name}
),用于存储临时数据、日志及NameNode元数据(需定期清理);io.file.buffer.size
:文件I/O缓冲区大小(默认128KB,建议设置为128KB~1MB,提升数据传输效率)。作用:专门配置HDFS的行为,涵盖数据存储、副本管理、节点通信等核心功能,是HDFS性能与可靠性的关键配置文件。
关键配置项:
dfs.replication
:数据块副本数(默认3,需根据集群规模调整,如3副本适用于生产环境,保证数据容错);dfs.namenode.name.dir
:NameNode元数据存储路径(如file:/data/hdfs/name
,建议配置多路径提升可靠性);dfs.datanode.data.dir
:DataNode数据存储路径(如file:/data/hdfs/data1,file:/data/hdfs/data2
,可配置多个磁盘路径,用逗号分隔,提高存储利用率);dfs.block.size
:HDFS文件块大小(默认128MB,大文件建议设置为256MB~512MB以提升并行度,小文件建议保持128MB避免NameNode内存压力过大);dfs.heartbeat.interval
:DataNode向NameNode发送心跳的时间间隔(默认3秒,调整该值可影响故障检测灵敏度)。作用:列出集群中所有DataNode节点的主机名或IP地址(每行一个),NameNode通过该文件识别集群中的数据节点。
说明:新版本Hadoop(如3.x)推荐使用workers
,旧版本可能使用slaves
,两者功能一致。
作用:设置HDFS守护进程(如NameNode、DataNode)的环境变量,是HDFS进程启动的基础配置。
关键配置项:
JAVA_HOME
:JDK安装路径(如/usr/lib/jvm/java-11-openjdk
,HDFS依赖Java环境);HADOOP_HOME
:Hadoop安装路径(如/opt/hadoop
,需与实际路径一致);HADOOP_CONF_DIR
:Hadoop配置文件目录(如$HADOOP_HOME/etc/hadoop
,指定配置文件位置);HADOOP_LOG_DIR
:HDFS日志目录(如$HADOOP_HOME/logs
,存储NameNode、DataNode等进程的日志)。作用:配置YARN(Yet Another Resource Negotiator)资源管理器的参数,HDFS的MapReduce作业需依赖YARN进行资源调度(如申请容器、分配内存)。
关键配置项:yarn.resourcemanager.hostname
(ResourceManager主机名)、yarn.nodemanager.aux-services
(NodeManager辅助服务,需配置为mapreduce_shuffle
以支持MapReduce)。
作用:配置MapReduce框架的参数,HDFS存储的文件需通过MapReduce进行处理(如WordCount、数据聚合)。
关键配置项:mapreduce.framework.name
(指定MapReduce运行框架,需设置为yarn
以使用YARN进行资源管理)。