CentOS 上 HDFS 高级配置与实战要点
一 高可用 HA 与故障切换
<configuration>
<property><name>dfs.nameservices</name><value>mycluster</value></property>
<property><name>dfs.ha.namenodes.mycluster</name><value>nn1,nn2</value></property>
<property><name>dfs.namenode.rpc-address.mycluster.nn1</name><value>nn1:8020</value></property>
<property><name>dfs.namenode.rpc-address.mycluster.nn2</name><value>nn2:8020</value></property>
<property><name>dfs.namenode.http-address.mycluster.nn1</name><value>nn1:50070</value></property>
<property><name>dfs.namenode.http-address.mycluster.nn2</name><value>nn2:50070</value></property>
<property><name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://jn1:8485;jn2:8485;jn3:8485/mycluster</value></property>
<property><name>dfs.journalnode.edits.dir</name><value>/data/hdfs/journal</value></property>
<property><name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property>
<property><name>dfs.ha.fencing.methods</name><value>sshfence</value></property>
<property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property>
</configuration>
core-site.xml:<configuration>
<property><name>fs.defaultFS</name><value>hdfs://mycluster</value></property>
</configuration>
hdfs namenode -format;4) 启动 nn1,在 nn2 执行 hdfs namenode -bootstrapStandby 后启动 nn2;5) 使用 hdfs haadmin -failover --forcefence --forceactive nn1 nn2 测试故障切换;6) 通过 hdfs dfsadmin -report 与 50070 Web UI 校验状态。二 性能调优关键参数与实战
<!-- 大文件/吞吐型场景可适当增大块大小 -->
<property><name>dfs.blocksize</name><value>536870912</value></property> <!-- 512MB -->
<!-- 提升 NameNode 元数据与 RPC 并发 -->
<property><name>dfs.namenode.handler.count</name><value>20</value></property>
<!-- 提升 DataNode 数据传输并发 -->
<property><name>dfs.datanode.handler.count</name><value>10</value></property>
<!-- 启用短路读取,降低网络往返 -->
<property><name>dfs.client.read.shortcircuit</name><value>true</value></property>
<!-- 启用并配置回收站,误删可恢复 -->
<property><name>fs.trash.interval</name><value>1440</value></property> <!-- 分钟 -->
<property><name>fs.trash.checkpoint.interval</name><value>60</value></property>
三 存储策略与数据生命周期管理
hdfs dfsadmin -setQuota -n 1000 /path(最多 1000 个文件/目录)hdfs dfsadmin -setSpaceQuota -s 1G /path(最多 1GB 数据)四 运维与故障排查要点
hdfs dfsadmin -safemode get/enter/leave 查看与退出,必要时配合 hdfs dfsadmin -recoverNamespace 恢复元数据。hdfs dfs -chmod/-chown 管理权限,避免因权限错误导致作业失败或数据不可访问。