hadoop3.2.3的高可用集群hdfs-site.xml配置实例
xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<!-- 设置HDFS的副本因子,即数据块在集群中的副本数量为3 -->
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<!-- 配置HDFS的名称服务,此处指定了一个名为starcluster的名称服务 -->
<name>dfs.nameservices</name>
<value>starcluster</value>
</property>
<property>
<!-- 配置名称服务starcluster下的活跃和备用名称节点 -->
<name>dfs.ha.namenodes.starcluster</name>
<value>nn1,nn2</value>
</property>
<property>
<!-- 配置名称节点nn1的RPC通信地址 -->
<name>dfs.namenode.rpc-address.starcluster.nn1</name>
<value>namenode-1:9000</value>
</property>
<property>
<!-- 配置名称节点nn1的HTTP通信地址 -->
<name>dfs.namenode.http-address.starcluster.nn1</name>
<value>namenode-1:50070</value>
</property>
<property>
<!-- 配置名称节点nn2的RPC通信地址 -->
<name>dfs.namenode.rpc-address.starcluster.nn2</name>
<value>namenode-2:9000</value>
</property>
<property>
<!-- 配置名称节点nn2的HTTP通信地址 -->
<name>dfs.namenode.http-address.starcluster.nn2</name>
<value>namenode-2:50070</value>
</property>
<property>
<!-- 配置共享编辑日志的存储位置,用于支持名称节点的高可用性 -->
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://datanode-1:8485;datanode-2:8485;datanode-3:8485;datanode-4:8485;datanode-5:8485/starcluster</value>
</property>
<property>
<!-- 启用自动故障转移功能,以提高HDFS的可用性 -->
<name>dfs.ha.automatic-failover.enabled.starcluster</name>
<value>true</value>
</property>
<property>
<!-- 配置客户端故障转移代理提供者,用于在名称节点故障时自动切换到备用名称节点 -->
<name>dfs.client.failover.proxy.provider.starcluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<!-- 配置JournalNode的编辑日志存储目录 -->
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/journal</value>
</property>
<property>
<!-- 配置名称节点在进行故障转移时的隔离方法,此处使用shell命令(/bin/true)作为示例 -->
<name>dfs.ha.fencing.methods</name>
<value>shell(/bin/true)</value>
</property>
<property>
<!-- 指定SSH私钥文件的位置,该文件用于名称节点之间进行安全的SSH通信 -->
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<property>
<!-- 配置名称节点的本地存储目录,用于保存名称节点的元数据 -->
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<!-- 配置数据节点的本地存储目录,用于保存数据节点的数据块 -->
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<property>
<!-- 设置HDFS的权限检查是否启用,此处设置为false,表示不启用权限检查 -->
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<!-- 配置数据节点选择存储卷的策略,此处使用基于可用空间的策略 -->
<name>dfs.datanode.fsdataset.volume.choosing.policy</name>
<value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value>
</property>
<property>
<!-- 指定一个文件,该文件包含需要被排除在HDFS之外的主机列表 -->
<name>dfs.hosts.exclude</name>
<value>/home/hadoop/hadoop/etc/hadoop/dfs.exclude</value>
</property>
</configuration>