在CentOS上配置HDFS与集群的关系,主要涉及节点角色规划、配置文件设置及服务启动管理,具体如下:
-
节点角色规划
- NameNode:集群主节点,管理元数据,需配置
hdfs-site.xml中dfs.namenode.name.dir指定存储路径。 - DataNode:数据存储节点,配置
hdfs-site.xml中dfs.datanode.data.dir定义数据目录。 - Secondary NameNode(可选):辅助NameNode合并元数据,需在
hdfs-site.xml中配置dfs.namenode.secondary.http-address。 - JournalNode(高可用场景):用于NameNode元数据同步,需在
hdfs-site.xml中配置dfs.namenode.shared.edits.dir为qjournal://格式的JournalNode地址列表。
- NameNode:集群主节点,管理元数据,需配置
-
核心配置文件
- core-site.xml:设置
fs.defaultFS为集群NameNode的URI(如hdfs://namenode:9000),定义临时目录hadoop.tmp.dir。 - hdfs-site.xml:配置数据块副本数
dfs.replication(默认3)、NameNode和DataNode存储路径,高可用场景需启用dfs.ha.namenodes和dfs.client.failover.proxy.provider。 - yarn-site.xml(可选):若需集成YARN资源管理,需配置
yarn.nodemanager.aux-services为mapreduce_shuffle。
- core-site.xml:设置
-
集群启动与管理
- 格式化NameNode:首次启动前需在NameNode节点执行
hdfs namenode -format。 - 启动集群:在NameNode节点运行
start-dfs.sh启动HDFS服务,DataNode会自动连接NameNode。 - 状态验证:通过
hdfs dfsadmin -report查看节点状态,或访问NameNode Web界面(默认端口50070)监控集群。
- 格式化NameNode:首次启动前需在NameNode节点执行
-
高可用与扩展
- 高可用配置:需部署ZooKeeper集群,通过
hdfs-site.xml配置dfs.ha.automatic-failover.enabled为true,实现NameNode故障自动切换。 - 集群扩容:添加新DataNode时,需将其主机名加入
hdfs-site.xml的dfs.hosts文件,并在所有节点上更新配置后重启服务。
- 高可用配置:需部署ZooKeeper集群,通过
关键依赖:需先安装JDK并配置环境变量,确保节点间SSH免密登录,同时开放HDFS默认端口(如8020、50070等)。
参考来源: