作者 by aigle / 2023-12-18 / 暂无评论
<-- 描述集群中NameNode结点的URI(包括协议、主机名称、端口号) -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp101:8020</value>
<final>true</final>
</property>
<-- 启用 s3a 快速上载机制 -->
<property>
<name>fs.s3a.fast.upload</name>
<value>true</value>
</property>
<-- 所有数据上传缓存在磁盘中 -->
<property>
<name>fs.s3a.fast.upload.buffer</name>
<value>disk</value>
</property>
<-- upload或copy操作,当文件超过多大时,即拆分。 -->
<property>
<name>fs.s3a.multipart.size</name>
<value>67108864</value>
</property>
<-- 检查点之间的时间间隔, 单位为分钟, 此属性可以在服务器和客户端上配置,如果服务器上被禁用,则检查客户端配置,如果服务器上被启用,则忽略客户端配置。-->
<property>
<name>fs.trash.interval</name>
<value>360</value>
</property>
<-- zookeeper 失败切换控制器的重试次数设置 -->
<property>
<name>ha.failover-controller.active-standby-elector.zk.op.retries</name>
<value>120</value>
</property>
<-- zookeeper ACL认证 -->
<property>
<name>ha.zookeeper.acl</name>
<value>sasl:nn:rwcda</value>
</property>
<-- zookeeper -->
<property>
<name>ha.zookeeper.quorum</name>
<value>client:2181,namenode:2181,snamenode:2181</value>
</property>
<-- 允许跨域的方法列表 -->
<property>
<name>hadoop.http.cross-origin.allowed-methods</name>
<value>GET,PUT,POST,OPTIONS,HEAD,DELETE</value>
</property>
<-- 允许跨域访问的来源 -->
<property>
<name>hadoop.http.cross-origin.allowed-origins</name>
<value>*</value>
</property>
<-- 一个逗号分隔的类名列表,他们必须继承于org.apache.hadoop.http.FilterInitializer,相应的过滤器被初始化后,将应用于所有的JSP和Servlet网页 -->
<property>
<name>hadoop.http.filter.initializers</name>
<value>org.apache.hadoop.security.AuthenticationFilterInitializer,org.apache.hadoop.security.HttpCrossOriginFilterInitializer</value>
</property>
<-- hdfs 代理用户 -->
<property>
<name>hadoop.proxyuser.hdfs.hosts</name>
<value>*</value>
</property>
<-- hive 代理用户组 -->
<property>
<name>hadoop.proxyuser.hive.groups</name>
<value>*</value>
</property>
<-- hdp102 上的hive用户可以以superuser 的方式模拟hadoop组的任务用户 -->
<property>
<name>hadoop.proxyuser.hive.hosts</name>
<value>hdp102</value>
</property>
<-- 通过 httpfs 接口访问的用户获得的群组身份 -->
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<-- 通过 httpfs接口hdfs的IP地址限制 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>hdp101</value>
</property>
<-- 将 kerberos主题映射到本地用户名 -->
<property>
<name>hadoop.security.auth_to_local</name>
<value>DEFAULT</value>
</property>
<-- 是否启用service级别的授权 -->
<property>
<name>hadoop.security.authorization</name>
<value>false</value>
</property>
<-- 指示是否需要管理员 ACL才能访问 -->
<property>
<name>hadoop.security.instrumentation.requires.admin</name>
<value>false</value>
</property>
<-- 逗号分割的压缩编码器类列表,可以用于压缩 /解压 -->
<property>
<name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
<-- 在序列文件中使用的缓冲区大小。这个缓冲区的大小应该是页大小(英特尔x86上为4096)的倍数,它决定读写操作中缓冲了多少数据。 -->
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<-- 可用于获取序列化和反序列化的序列化类的列表。 -->
<property>
<name>io.serializations</name>
<value>org.apache.hadoop.io.serializer.WritableSerialization</value>
</property>
<-- 客户端重新建立服务器连接的重试次数 -->
<property>
<name>ipc.client.connect.max.retries</name>
<value>50</value>
</property>
<-- 空闲连接断开时间 -->
<property>
<name>ipc.client.connection.maxidletime</name>
<value>30000</value>
</property>
<-- 定义连接的阈值数量,之后检查连接是否空闲 -->
<property>
<name>ipc.client.idlethreshold</name>
<value>8000</value>
</property>
<-- 关闭Nagle’s算法,此算法可以延迟小数据包发送,从而达到网络流量更有效利用。但是这对小数据包是不利的。默认关闭。建议false,即开启Nagle算法 -->
<property>
<name>ipc.server.tcpnodelay</name>
<value>true</value>
</property>
<-- 设为true,则JT和NN的tracker网页会出现杀任务删文件等操作连接,默认是false -->
<property>
<name>mapreduce.jobtracker.webinterface.trusted</name>
<value>false</value>
</property>
<-- 机架感知,当 datanode 注册时和 heartbeat 时,会把 datanode 的 ip 作为参数传入,返回信息为此datanode 的机架信息 -->
<property>
<name>net.topology.script.file.name</name>
<value>/etc/hadoop/conf/topology_script.py</value>
</property><-- 允许跨域访问的来源,如果有多个,用逗号(,)分隔 -->
<property>
<name>hadoop.http.cross-origin.allowed-origins</name>
<value>*</value>
</property>
<-- 客户端认证方式 kerberos -->
<property>
<name>hadoop.registry.client.auth</name>
<value>kerberos</value>
</property>
<-- 与 DNS 侦听器应绑定到的网络接口关联的地址。 -->
<property>
<name>hadoop.registry.dns.bind-address</name>
<value>0.0.0.0</value>
</property>
<-- YARN Registry DNS的默认端口53 -->
<property>
<name>hadoop.registry.dns.bind-port</name>
<value>53</value>
<hidden>true</hidden>
</property>
<-- YARN 注册DNS开启 -->
<property>
<name>hadoop.registry.dns.enabled</name>
<value>true</value>
</property>
<-- 区域 IP 范围关联的网络掩码。 如果指定,则用于确定可能的 IP 范围并提供适当的反向区域名称 -->
<property>
<name>hadoop.registry.dns.zone-mask</name>
<value>255.255.255.0</value>
</property>
<-- 配置ZK -->
<property>
<name>hadoop.registry.zk.quorum</name>
<value>hdp101:2181,hdp102:2181,hdp103:2181</value>
</property>
<-- 是否启用ACL权限控制 -->
<property>
<name>yarn.acl.enable</name>
<value>false</value>
</property>
<-- yarn用户是YARN集群管理员的 ACL -->
<property>
<name>yarn.admin.acl</name>
<value>activity_analyzer,yarn</value>
</property>
<-- 适用于YARN应用程序的CLASSPATH -->
<property>
<name>yarn.application.classpath</name>
<value>$HADOOP_CONF_DIR,/usr/hdp/3.1.4.0-315/hadoop/*,/usr/hdp/3.1.4.0-315/hadoop/lib/*,/usr/hdp/current/hadoop-hdfs-client/*,/usr/hdp/current/hadoop-hdfs-client/lib/*,/usr/hdp/current/hadoop-yarn-client/*,/usr/hdp/current/hadoop-yarn-client/lib/*</value>
</property>
<-- 定义client连接到nodemanager的最大超时时间 -->
<property>
<name>yarn.client.nodemanager-connect.max-wait-ms</name>
<value>60000</value>
</property>
<-- 每次尝试连接到NM之间的时间间隔 -->
<property>
<name>yarn.client.nodemanager-connect.retry-interval-ms</name>
<value>10000</value>
</property>
<-- 这会为YARN守护程序配置HTTP端点。支持以下值: - HTTP_ONLY:仅在http上提供服务 - HTTPS_ONLY:仅在https上提供服务 -->
<property>
<name>yarn.http.policy</name>
<value>HTTP_ONLY</value>
</property>
<-- 是否启用日志聚合。日志聚合收集每个容器的日志,并在应用程序完成后将这些日志移动到文件系统,例如HDFS。用户可以配置“yarn.nodemanager.remote-app-log-dir”和“yarn.nodemanager.remote-app-log-dir-suffix”属性以确定这些日志的移动位置。用户可以通过应用程序时间线服务器访问日志。 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<-- 在删除聚合日志之前保留多长时间。-1禁用。小心设置这个太小,你会浪费 name node 。在删除聚合日志之前保留多长时间。-1禁用。小心设置这个值,你会浪费 NameNode HDP 默认一个月删除一次 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>2592000</value>
</property>
<-- 日志聚合服务器的URL -->
<property>
<name>yarn.log.server.url</name>
<value>http://hdp102:19888/jobhistory/logs</value>
</property>
<-- 日志聚合服务器WEB服务的URL -->
<property>
<name>yarn.log.server.web-service.url</name>
<value>http://hdp102:8188/ws/v1/applicationhistory</value>
</property>
<-- 节点标签功能 -->
<property>
<name>yarn.node-labels.enabled</name>
<value>false</value>
</property>
<-- 用于FileSystem节点标签存储的重试策略。策略由N对休眠时间(以毫秒为单位)和重试次数“s1,n1,s2,n2,...”指定。 -->
<property>
<name>yarn.node-labels.fs-store.retry-policy-spec</name>
<value>2000, 500</value>
</property>
<-- NodeLabelManager的URI。默认值为本地文件系统中的 /system -->
<property>
<name>yarn.node-labels.fs-store.root-dir</name>
<value>/system/yarn/node-labels</value>
</property>
<-- NodeManager 中容器管理的地址 -->
<property>
<name>yarn.nodemanager.address</name>
<value>0.0.0.0:45454</value>
</property>
<-- 从NodeManger 环境转发到容器的环境变量 -->
<property>
<name>yarn.nodemanager.admin-env</name>
<value>MALLOC_ARENA_MAX=$MALLOC_ARENA_MAX</value>
</property>
<-- 以逗号分割的服务列表 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle,spark2_shuffle,timeline_collector</value>
</property>
<-- Map Reduce运行需要设置的shuffle服务 -->
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<-- NodeManager中辅助服务对应的类 -->
<property>
<name>yarn.nodemanager.aux-services.spark2_shuffle.class</name>
<value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>
<-- NodeManager中辅助服务对应的类 -->
<property>
<name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
<value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>
<-- 服务器将绑定到的实际地址。如果设置了此可选地址,则RPC和webapp服务器将分别绑定到此地址和yarn.nodemanager.address和yarn.nodemanager.webapp.address中指定的端口。这对于通过设置为0.0.0.0使NM监听所有接口非常有用。 -->
<property>
<name>yarn.nodemanager.bind-host</name>
<value>0.0.0.0</value>
</property>
<-- 执行容器的 类 -->
<property>
<name>yarn.nodemanager.container-executor.class</name>
<value>org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor</value>
</property>
<-- 完成后取消注册容器指标的延迟时间 -->
<property>
<name>yarn.nodemanager.container-metrics.unregister-delay-ms</name>
<value>60000</value>
</property>
<-- 监视容器的频率,默认 3s -->
<property>
<name>yarn.nodemanager.container-monitor.interval-ms</name>
<value>3000</value>
</property>
<-- 应用程序在nodemanager的DeletionService删除应用程序的本地化文件目录和日志目录之前完成的秒数。要诊断YARN应用程序问题,请将此属性的值设置得足够大(例如,设置为600 = 10分钟)以允许检查这些目录。更改属性的值后,必须重新启动nodemanager才能使其生效。YARN应用程序工作目录的根目录可以使用yarn.nodemanager.local-dirs属性进行配置(见下文),YARN应用程序日志目录的根目录可以使用yarn.nodemanager.log-dirs 属性进行配置(另请参见下面)。-->
<property>
<name>yarn.nodemanager.delete.debug-delay-sec</name>
<value>0</value>
</property>
<-- 磁盘空间利用率的最大百分比,在此之后磁盘被标记为坏。值的范围为0.0到100.0。如果该值大于或等于100,则nodemanager将检查是否有完整磁盘。这适用于yarn.nodemanager.local-dirs和yarn.nodemanager.log-dirs。 -->
<property>
<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
<value>90</value>
</property>
<-- 磁盘上必须使用的最小空间。这适用于yarn.nodemanager.local-dirs和yarn.nodemanager.log-dirs -->
<property>
<name>yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb</name>
<value>1000</value>
</property>
<-- nodemanager启动新容器的最佳磁盘数量的最小比例。这对应于yarn.nodemanager.local-dirs和yarn.nodemanager.log-dirs。
即如果可用的健康local-dirs(或log-dirs)数量较少,则不会在此节点上启动新容器。 -->
<property>
<name>yarn.nodemanager.disk-health-checker.min-healthy-disks</name>
<value>0.25</value>
</property>
<-- 节点运行状态检查时间间隔 -->
<property>
<name>yarn.nodemanager.health-checker.interval-ms</name>
<value>135000</value>
</property>
<-- 健康检测脚本运行超时时间,默认为20分钟,运行时间超过该时间则认为不健康 -->
<property>
<name>yarn.nodemanager.health-checker.script.timeout-ms</name>
<value>60000</value>
</property>
<-- 标志确定应用程序是应以严格的资源限制运行,还是允许在需要时使用备用资源。例如,打开标志将限制应用程序仅使用其CPU份额,即使该节点具有备用CPU周期。默认值为false,即使用可用资源。请注意,打开此标志可能会降低群集上的作业吞吐量。 -->
<property>
<name>yarn.nodemanager.linux-container-executor.cgroups.strict-resource-usage</name>
<value>false</value>
</property>
<-- yarn.nodemanager.linux-container-executor 应用运行的UNIX组 -->
<property>
<name>yarn.nodemanager.linux-container-executor.group</name>
<value>hadoop</value>
</property>
<-- 决定了LCE在非安全的集群上使用的两种模式的哪一种。 设置为true,则将以yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user中指定的用户启动所有容器 -->
<property>
<name>yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users</name>
<value>true</value>
</property>
<-- 存储本地化文件的目录列表 -->
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/hadoop/yarn/local</value>
</property>
<-- 用于压缩聚合日志文件的压缩类型 -->
<property>
<name>yarn.nodemanager.log-aggregation.compression-type</name>
<value>gz</value>
</property>
<-- 每个application进行聚合的日志的最大个数 -->
<property>
<name>yarn.nodemanager.log-aggregation.num-log-files-per-app</name>
<value>30</value>
</property>
<-- 定义NodeManager 唤醒上载日志文件的频率 ,设置此配置可以在应用程序运行时定期上载日志-->
<property>
<name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds</name>
<value>3600</value>
</property>
<-- 存储容器日志的地方 -->
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/hadoop/yarn/log</value>
</property>
<-- 保留用户日志的时间 -->
<property>
<name>yarn.nodemanager.log.retain-seconds</name>
<value>604800</value>
</property>
<-- 启用恢复时节点管理器将在其中存储状态的本地文件系统目录 -->
<property>
<name>yarn.nodemanager.recovery.dir</name>
<value>/var/log/hadoop-yarn/nodemanager/recovery-state</value>
</property>
<-- 启动后启用节点管理器以进行恢复 -->
<property>
<name>yarn.nodemanager.recovery.enabled</name>
<value>true</value>
</property>
<-- NodeManager 是否在监督下进行,支持恢复并在监督下运行的节点管理器将不会尝试清理清理容器,因为她它会立即重新启动并恢复容器 -->
<property>
<name>yarn.nodemanager.recovery.supervised</name>
<value>true</value>
</property>
<-- 将日志聚合到的位置 HDFS路径 -->
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/app-logs</value>
</property>
<-- 远程日志目录前缀 -->
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
<-- 可以为容器分配的 vcores 数。在为容器分配资源时,RM调度程序使用它。 这不用在限制 YARN容器使用的CPU数量。如果设置为 -1 且 yarn.nodemanager.resource.detect-hardware-capabilites 为 true,则在Windows和 Linux的情况下会自动从硬件确定。在其他情况下,默认情况下,vcores的数量为8 -->
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>6</value>
</property>
<-- 可以为容器分配的物理内存量(MB)。如果设置为-1且yarn.nodemanager.resource.detect-hardware-capabilities为true,则会自动计算(如果是Windows和Linux)。在其他情况下,默认值为8192MB。 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8192</value>
</property>
<-- 可以为容器分配的CPU百分比。此设置运行用户限制YARN容器使用的CPU数量。目前仅在使用cgroup的Linux上运行。默认是使用100%的CPU。 -->
<property>
<name>yarn.nodemanager.resource.percentage-physical-cpu-limit</name>
<value>80</value>
</property>
<-- 逗号分隔的使用LinuxContainerExecutor时允许的运行时列表。允许的值是default和docker-->
<property>
<name>yarn.nodemanager.runtime.linux.allowed-runtimes</name>
<value>default,docker</value>
</property>
<-- 使用DockerContainerRuntime 启动容器时允许的网络集 -->
<property>
<name>yarn.nodemanager.runtime.linux.docker.allowed-container-networks</name>
<value>host,none,bridge</value>
</property>
<-- 此配置设置确定在启动时分配给docker容器的功能。虽然从docker的角度来看这些可能不区分大小写,但最好保持这些大写。要在没有任何功能的情况下运行,请将此值设置为“none”或“NONE”-->
<property>
<name>yarn.nodemanager.runtime.linux.docker.capabilities</name>
<value>
CHOWN,DAC_OVERRIDE,FSETID,FOWNER,MKNOD,NET_RAW,SETGID,SETUID,SETFCAP,
SETPCAP,NET_BIND_SERVICE,SYS_CHROOT,KILL,AUDIT_WRITE</value>
</property>
<-- 在请求中未指定网络时使用DockerContainerRuntime启动容器时使用的网络。该网络必须是(可配置的)允许的容器网络之一。 -->
<property>
<name>yarn.nodemanager.runtime.linux.docker.default-container-network</name>
<value>host</value>
</property>
<-- 此配置设置确定允许谁在此群集上运行特权docker容器。请特别小心使用。 -->
<property>
<name>yarn.nodemanager.runtime.linux.docker.privileged-containers.acl</name>
<value></value>
</property>
<-- 在请求中未指定网络时使用DockerContainerRuntime启动容器时使用的网络。该网络必须是(可配置的)允许的容器网络之一。 -->
<property>
<name>yarn.nodemanager.runtime.linux.docker.privileged-containers.allowed</name>
<value>false</value>
</property>
<-- 是否将对容器强制实施虚拟内存限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<-- 设置容器的内存限制时虚拟内存与物理内存之间的比率。容器分配以物理内存表示,允许虚拟内存使用量超过此分配。 -->
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<-- 标记以在NM中启用跨源(CORS)支持。此标志需要将CORS过滤器初始化程序添加到core-site.xml中的过滤器初始化程序列表中。 -->
<property>
<name>yarn.nodemanager.webapp.cross-origin.enabled</name>
<value>true</value>
</property>
<-- ResourceManager 管理应用程序管理器的界面的地址 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>hdp101:8050</value>
</property>
<-- RM管理界面的地址 -->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hdp101:8141</value>
</property>
<-- 最大应用程序尝试次数。它是所有应用程序的全局设置,每个应用程序都可以通过API指定其各自的最大应用程序尝试次数,但是单数应用程序的重试次数不能超过全局上限,默认数量设置为2,以允许至少一次重试ApplicationMaster,AM创建重试次数可通过 ResourceManager 日志得知-->
<property>
<name>yarn.resourcemanager.am.max-attempts</name>
<value>2</value>
</property>
<-- 服务器将绑定到的实际地址 , 0.0.0.0 使RM监听所有接口非常有用 -->
<property>
<name>yarn.resourcemanager.bind-host</name>
<value>0.0.0.0</value>
</property>
<-- 等待与 ResourceManager 建立连接的最大等待时间 -->
<property>
<name>yarn.resourcemanager.connect.max-wait.ms</name>
<value>900000</value>
</property>
<-- 多久尝试连接一次 ResourceManager -->
<property>
<name>yarn.resourcemanager.connect.retry-interval.ms</name>
<value>30000</value>
</property>
<-- 标记以允许将每个用户的应用程序显示为管理员配置 -->
<property>
<name>yarn.resourcemanager.display.per-user-apps</name>
<value>true</value>
</property>
<-- HDFS客户端重试策略规范 -->
<property>
<name>yarn.resourcemanager.fs.state-store.retry-policy-spec</name>
<value>2000, 500</value>
</property>
<-- 启用RM高可用性 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<-- RM逻辑id列表,以逗号分割,比如:rm1,rm2 -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<-- RM所在的主机 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hdp101</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hdp102</value>
</property>
<-- 是否为队列启用队列内抢占。默认值true -- >
<property>
<name>yarn.resourcemanager.monitor.capacity.preemption.intra-queue-preemption.enabled</name>
<value>true</value>
</property>
<-- 两次调用该策略之间的时间间隔 -->
<property>
<name>yarn.resourcemanager.monitor.capacity.preemption.monitoring_interval</name>
<value>15000</value>
</property>
<-- 在为每个队列计算了抢占目标之后,可以应用此因子来减慢资源抢占(例如,“从队列A中退回5 GB”)。例如,如果需要5 GB,则在第一个周期中,抢占将收回1 GB(5 GB的20%),在下一个周期中收回0.8 GB(其余4 GB的20%),在0.64 GB(其余3.2 GB的20%)中抢占。 GB),依此类推。您可以增加此值以加快资源回收。此参数的建议值为1.0,这意味着一个循环中将抢占100%的目标容量。 -->
<property>
<name>yarn.resourcemanager.monitor.capacity.preemption.natural_termination_factor</name>
<value>1</value>
</property>
<-- 单回合中可抢占的最大资源百分比。您可以使用此值来限制从集群回收Containers的速度。计算完所需的总抢占后,策略会将其重新扩展到此限制。应将其设置为(memory-of-one-NodeManager)/(total-cluster-memory)。例如,如果一个NodeManager拥有32 GB,并且群集总资源为100 GB,则total_preemption_per_round应设置为32/100 = 0.32。默认值为0.1(10%)。我地笔记本每个 NM 512M,yarn的总资源为1525.76M 512/1525.76=0.33 -->
<property>
<name>yarn.resourcemanager.monitor.capacity.preemption.total_preemption_per_round</name>
<value>0.33</value>
</property>
<-- 要排除的节点文件的路径 -->
<property>
<name>yarn.resourcemanager.nodes.exclude-path</name>
<value>/etc/hadoop/conf/yarn.exclude</value>
</property>
<-- 直接使用调度器作为处理器 -->
<property>
<name>yarn.resourcemanager.placement-constraints.handler</name>
<value>scheduler</value>
</property>
<-- 启动后启用RM 恢复状态,如果为true 则必须指定 yarn.resourcemanager. store.class -->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<-- ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等 -->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hdp101:8025</value>
</property>
<-- 调度程序接口的地址 -->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hdp101:8030</value>
</property>
<-- 资源调度程序的类 -->
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
<-- 启用一组影响调度程序的定期监视器(在 yarn.resourcemanager.scheduler.monitor.policies中指定)-->
<property>
<name>yarn.resourcemanager.scheduler.monitor.enable</name>
<value>true</value>
</property>
<-- zk保存的已完成任务的最大数量,RM状态存储保留的最大已完成应用程序数,默认情况下,它等于$ {yarn.resourcemanager.max-completed-applications}。这可确保保存在状态存储中的应用程序与RM内存中记住的应用程序一致。任何大于$ {yarn.resourcemanager.max-completed-applications}的值都将重置为$ {yarn.resourcemanager.max-completed-applications}。请注意,此值会影响RM恢复性能。通常,值越小表示RM恢复的性能越好。-->
<property>
<name>yarn.resourcemanager.state-store.max-completed-applications</name>
<value>${yarn.resourcemanager.max-completed-applications}</value>
</property>
<-- 应用信息保存的方式。如果使用org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore,则隐式隔离存储; 这意味着单个ResourceManager可以在任何时间点使用商店。 -->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<-- 发送yarn系统指标数据的工作线程数 -->
<property>
<name>yarn.resourcemanager.system-metrics-publisher.dispatcher.pool-size</name>
<value>10</value>
</property>
<-- 系统指标数据收集开启 -->
<property>
<name>yarn.resourcemanager.system-metrics-publisher.enabled</name>
<value>true</value>
</property>
<-- RM web页面访问地址 -->
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>hdp101:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>hdp10w:8088</value>
</property>
<-- 用作持久存储的类。如果使用org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore,则隐式隔离存储; 这意味着单个ResourceManager可以在任何时间点使用商店。 -->
<property>
<name>yarn.resourcemanager.webapp.cross-origin.enabled</name>
<value>true</value>
</property>
<-- 标记以在RM中启用跨源(CORS)支持。此标志需要将CORS过滤器初始化程序添加到core-site.xml中的过滤器初始化程序列表中。 -->
<property>
<name>yarn.resourcemanager.webapp.delegation-token-auth-filter.enabled</name>
<value>false</value>
</property>
<-- RM web 应用程序的 htttps地址 -->
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>hdp101:8090</value>
</property>
<-- 启用RM工作以保留恢复 -->
<property>
<name>yarn.resourcemanager.work-preserving-recovery.enabled</name>
<value>true</value>
</property>
<-- 设置RM在为工作保留 - 恢复分配新容器之前等待的时间。在将新容器分配给应用程序之前,这样的等待期使RM有机会在恢复时解决与集群中的NM重新同步的问题。-->
<property>
<name>yarn.resourcemanager.work-preserving-recovery.scheduling-wait-ms</name>
<value>10000</value>
</property>
<-- zk acl 进行共享管理员访问 -->
<property>
<name>yarn.resourcemanager.zk-acl</name>
<value>world:anyone:rwcda</value>
</property>
<-- zk -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hdp101:2181,hdp102:2181,hdp103:2181</value>
</property>
<-- zk 保存状态不成功的前提下,重试次数 -->
<property>
<name>yarn.resourcemanager.zk-num-retries</name>
<value>1000</value>
</property>
<-- zk 保存状态重试时间间隔 -->
<property>
<name>yarn.resourcemanager.zk-retry-interval-ms</name>
<value>1000</value>
</property>
<-- zoookeeper 保存 RM任务状态的路径 -->
<property>
<name>yarn.resourcemanager.zk-state-store.parent-path</name>
<value>/rmstore</value>
</property>
<-- zk会话超时时间 -->
<property>
<name>yarn.resourcemanager.zk-timeout-ms</name>
<value>10000</value>
</property>
<-- 控制纱线容器事件是否由RM发布到时间轴服务的设置 -->
<property>
<name>yarn.rm.system-metricspublisher.emit-container-events</name>
<value>true</value>
</property>
<-- RM中每个 容器请求的最大分配,高于此内存的请求将抛出InvalidResourceRequestException异常 -->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8192</value>
</property>
<-- 虚拟CPU而言,RM上每个容器请求的最大分配 -->
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>6</value>
</property>
<-- RM中每个 容器请求的最小分配,从最大 510M可以看出 最大为单个容器内存的最大限制,最小分配为 最大分配内存的 1/3-->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
<-- 虚拟CPU而言,RM上每个容器请求的最小分配 -->
<property>
<name>yarn.scheduler.minimum-allocation-vcores</name>
<value>1</value>
</property>
<-- 定义用于时间线服务器HTTP端点的身份验证。支持的值是:simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME# -->
<property>
<name>yarn.timeline-service.http-authentication.type</name>
<value>simple</value>
</property>
<-- 用于在时间轴服务v2中为时间轴服务v1.x或时间线读取器启用跨源(CORS)支持的标志。对于时间轴服务v2,还要将org.apache.hadoop.security.HttpCrossOriginFilterInitializer添加到core-site.xml中的配置hadoop.http.filter.initializers。 -->
<property>
<name>yarn.timeline-service.http-cross-origin.enabled</name>
<value>true</value>
</property>
<-- 存储leveldb状态存储的文件名。 -->
<property>
<name>yarn.timeline-service.leveldb-state-store.path</name>
<value>/hadoop/yarn/timeline</value>
</property>
<-- 存储leveldb时间线存储的文件名。 -->
<property>
<name>yarn.timeline-service.leveldb-timeline-store.path</name>
<value>/hadoop/yarn/timeline</value>
</property>
<-- leveldb时间轴存储的未压缩块的读缓存大小(以字节为单位) -->
<property>
<name>yarn.timeline-service.leveldb-timeline-store.read-cache-size</name>
<value>104857600</value>
</property>
<-- 最近写入的实体开始时间的高速缓存大小,用于leveldb时间线存储在实体数量中。 -->
<property>
<name>yarn.timeline-service.leveldb-timeline-store.start-time-read-cache-size</name>
<value>10000</value>
</property>
<-- 最近读取的实体开始时间的高速缓存大小,用于leveldb时间线存储在实体数量中。 -->
<property>
<name>yarn.timeline-service.leveldb-timeline-store.start-time-write-cache-size</name>
<value>10000</value>
</property>
<-- leveldb时间轴存储的删除周期之间等待的时间长度,以毫秒为单位 -->
<property>
<name>yarn.timeline-service.leveldb-timeline-store.ttl-interval-ms</name>
<value>300000</value>
</property>
<-- eveldb时间轴存储的删除周期之间等待的时间长度,以毫秒为单位。 -->
<property>
<name>yarn.timeline-service.reader.webapp.address</name>
<value>hdp101:8198</value>
</property>
<-- 启动后启用时间轴服务器恢复状态。如果为true,则必须指定yarn.timeline-service.state-store-class。-->
<property>
<name>yarn.timeline-service.recovery.enabled</name>
<value>true</value>
</property>
<-- 存储时间线状态存储的类名 -->
<property>
<name>yarn.timeline-service.state-store-class</name>
<value>org.apache.hadoop.yarn.server.timeline.recovery.LeveldbTimelineStateStore</value>
</property>
<-- 存储时间轴商店的类名。-->
<property>
<name>yarn.timeline-service.store-class</name>
<value>org.apache.hadoop.yarn.server.timeline.EntityGroupFSTimelineStore</value>
</property>
<-- 启用时间轴存储数据的年龄 -->
<property>
<name>yarn.timeline-service.ttl-enable</name>
<value>true</value>
</property>
<-- 生存时间线的时间以毫秒为单位存储数据 -->
<property>
<name>yarn.timeline-service.ttl-ms</name>
<value>2678400000</value>
</property>
<-- 时间轴服务版本 -->
<property>
<name>yarn.timeline-service.version</name>
<value>2.0f</value>
</property>
<-- 时间轴服务Web应用程序的http地址 -->
<property>
<name>yarn.timeline-service.webapp.address</name>
<value>hdp102:8188</value>
</property>
<-- 时间线服务Web应用程序的https地址。 -->
<property>
<name>yarn.timeline-service.webapp.https.address</name>
<value>hdp102:8190</value>
</property>
<-- 启用RM web ui2应用程序。 -->
<property>
<name>yarn.webapp.ui2.enable</name>
<value>true</value>
</property><-- 数据节点访问令牌标识 -->
<property>
<name>dfs.block.access.token.enable</name>
<value>true</value>
</property>
<-- 块顺序报告的间隔时间 -->
<property>
<name>dfs.blockreport.initialDelay</name>
<value>120</value>
</property>
<-- 块大小为128M 对大多数生产环境来说是一个比较稳妥的值。因为该值决定了MR的默认map数,也会影响NN消耗的内存量, 需要谨慎修改 -->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<-- 配置客户端Failover proxy provider类,该类使用传递的协议创建NameNode proxy。 -->
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<-- 短路本地读取 -->
<property>
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
</property>
<-- 短路读取缓存大小 -->
<property>
<name>dfs.client.read.shortcircuit.streams.cache.size</name>
<value>4096</value>
</property>
<-- 客户端重试策略 -->
<property>
<name>dfs.client.retry.policy.enabled</name>
<value>false</value>
</property>
<-- HDFS 超级用户 hdfs -->
<property>
<name>dfs.cluster.administrators</name>
<value> hdfs</value>
</property>
<-- DataNode 服务的地址 -->
<property>
<name>dfs.datanode.address</name>
<value>0.0.0.0:1019</value>
</property>
<-- balancer hdfs移动数据的速度 HDFS做均衡时使用的最大带宽,默认为1048576,即1MB/s,对大多数千兆 甚至万兆带宽的集群来说过小。 -->
<property>
<name>dfs.datanode.balance.bandwidthPerSec</name>
<value>6250000</value>
</property>
<-- 设置 DataNode 节点存储数据文件的本地路径,可以通过逗号分隔指定多个路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/hadoop/hdfs/data</value>
<final>true</final>
</property>
<-- 当DataNode向NameNode汇报可用的硬盘大小的时候,它会把所有dfs.data.dir所列出的可用的硬盘大小总和发给NameNode。由于mapred.local.dir经常会跟DataNode共享可用的硬盘资源,因此我们需要为Mapreduce任务保留一些硬盘资源。dfs.datanode.du.reserved定义了每个dfs.data.dir所定义的硬盘空间需要保留的大小,以byte为单位。默认情况下,该值为0,也就是说HDFS可以使用每个数据硬盘的所有空间,节点硬盘资源耗尽时就会进入读模式。因此,建议每个硬盘都为map任务保留最少10GB的空间,如果每个Mapreduce作业都会产生大量的中间结果,或者每个硬盘空间都比较大(超过2TB),那么建议相应的增大保留的硬盘空间。我在生产环境中设置该值的大小为50G字节! -->
<property>
<name>dfs.datanode.du.reserved</name>
<value>9350827008</value>
</property>
<-- DataNode 决定停止数据节点提供服务允许卷的出错次数,0 则表示任务卷出错都要停止数据节点 -->
<property>
<name>dfs.datanode.failed.volumes.tolerated</name>
<value>0</value>
<final>true</final>
</property>
<-- DataNode 的RPC服务器地址和端口 -->
<property>
<name>dfs.datanode.ipc.address</name>
<value>0.0.0.0:8010</value>
</property>
<-- DataNode 进行文件传输时的最大线程数 -->
<property>
<name>dfs.datanode.max.transfer.threads</name>
<value>16384</value>
</property>
<-- DataNode 本地文件系统到 UNIX域套接字的路径,用于 DataNode 和 本地HDFS客户端之间的通信,该套接字用于 Short circuit Read -->
<property>
<name>dfs.domain.socket.path</name>
<value>/var/lib/hadoop-hdfs/dn_socket</value>
</property>
<-- DataNode 本地文件系统到 UNIX域套接字的路径,用于 DataNode 和 本地HDFS客户端之间的通信 -->
<property>
<name>dfs.encrypt.data.transfer.cipher.suites</name>
<value>AES/CTR/NoPadding</value>
</property>
<-- HA自动的故障转移开启 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<-- 如果出现故障并且fencing方法返回false,则会继续执行shell(true),从而active/standby自动切换。 fencing方法返回true,则不会执行shell。-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>shell(/bin/true)</value>
</property>
<-- mycluster 集群的两个namenode 。-->
<property>
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<-- DataNode 的心跳时间 ,默认为3s timeout = 2 * heartbeat.recheck.interval + 10 * dfs.heartbeat.interval -->
<property>
<name>dfs.heartbeat.interval</name>
<value>3</value>
</property>
<-- 指定连接NameNode主机的 黑名单 -->
<property>
<name>dfs.hosts.exclude</name>
<value>/etc/hadoop/conf/dfs.exclude</value>
</property>
<-- 为了启用SSL,必须设置dfs.http.policy=HTTPS_ONLY或者是HTTP_AND_HTTPS(在hdfs-site.xml)。 -->
<property>
<name>dfs.http.policy</name>
<value>HTTP_ONLY</value>
</property>
<-- https服务的端口 -->
<property>
<name>dfs.https.port</name>
<value>50470</value>
</property>
<-- journalnode 本地存储路径 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/hadoop/hdfs/journalnode</value>
</property>
<-- HTTP服务 -->
<property>
<name>dfs.journalnode.http-address</name>
<value>0.0.0.0:8480</value>
</property>
<-- journalnode HTTP服务 -->
<property>
<name>dfs.journalnode.https-address</name>
<value>0.0.0.0:8481</value>
</property>
<-- HDFS文件的访问时间精确到此值。默认值为1小时。设置为0将禁用HDFS的访问时间。 -->
<property>
<name>dfs.namenode.accesstime.precision</name>
<value>0</value>
</property>
<-- HDFS 权限控制开启 -->
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
<-- HDFS文件的访问时间精确到此值。默认值为1小时。设置为0将禁用HDFS的访问时间。 -->
<property>
<name>dfs.namenode.audit.log.async</name>
<value>true</value>
</property>
<-- 指示是否避免读取“过时”的数据节点(DataNode),这些数据节点(DataNode)的心跳消息在指定的时间间隔内未被名称节点(NameNode)接收。过时的数据节点(DataNode)将移动到返回供读取的节点列表的末尾。 -->
<property>
<name>dfs.namenode.avoid.read.stale.datanode</name>
<value>true</value>
</property>
<-- 指示超过失效 DataNode 时间间隔 NameNode 未收到检测信号信息时是否避免写入失效 DataNode。写入应避免使用失效 DataNode,除非多个已配置比率 (dfs.namenode.write.stale.datanode.ratio) 的 DataNode 标记为失效 -->
<property>
<name>dfs.namenode.avoid.write.stale.datanode</name>
<value>true</value>
</property>
<-- 每隔一段时间,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge,这个过程称为checkpoint,secondary namenode的本地工作目录 -->
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/hadoop/hdfs/namesecondary</value>
</property>
<-- namenode checkpoint 路径 -->
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>${dfs.namenode.checkpoint.dir}</value>
</property>
<-- 两次checkpoint之间的时间间隔3600秒 -->
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>21600</value>
</property>
<-- 两次checkpoint之间最大的操作记录 -->
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
</property>
<-- 是否启用公平锁机制 -->
<property>
<name>dfs.namenode.fslock.fair</name>
<value>false</value>
</property>
<-- NameNode 处理rpc请求的线程数,默认为10 -->
<property>
<name>dfs.namenode.handler.count</name>
<value>200</value>
</property>
<-- dfs namenode web ui使用的监听地址和基本端口。可以在etc/hadoop/hdfs-site.xml进行指定设置。 -->
<property>
<name>dfs.namenode.http-address</name>
<value>hdp101:50070</value>
<final>true</final>
</property>
<-- 指定一个本地的文件系统,决定NameNode 在何处存放fsimage -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/hadoop/hdfs/namenode</value>
<final>true</final>
</property>
<-- 指定一个本地的文件系统,默认是开启的 -->
<property>
<name>dfs.namenode.name.dir.restore</name>
<value>true</value>
</property>
<-- NameNode RPC 绑定的地址 -->
<property>
<name>dfs.namenode.rpc-address</name>
<value>hdp101:8020</value>
</property>
<-- 安全模式下的HDFS只支持元数据的操作读取,不支持文件的创建、删除等操作,同时会对数据块进行大量校验,导致资源的分配和申请耗时远超预期。集群中满足正常配置的数据块比例 ,如果是为了防止某些异常数据导致始终校验不过的情况,可以尝试将上面的dfs.namenode.safemode.threshold-pct参数调为0或比0小的值后重启NameNode,这样永远不会进入安全模式 -->
<property>
<name>dfs.namenode.safemode.threshold-pct</name>
<value>0.99f</value>
</property>
<-- 数据节点标记为“过时”的时间间隔, 默认为300000ms, “过时”的节点不一定“死亡“。默认五分钟没有心跳就过时,十分钟没有心跳死亡 -->
<property>
<name>dfs.namenode.stale.datanode.interval</name>
<value>30000</value>
</property>
<-- NameNode 启动后不进行块删除, 开启HDFS异步删除机制,增加数据恢复几率 -->
<property>
<name>dfs.namenode.startup.delay.block.deletion.sec</name>
<value>3600</value>
</property>
<-- 当全部DN被标记为脏DN的比率高于此阀值,停止不写数据到脏DN的策略,以免造成热点问题(有效的,可写的DN太少,压力太大), dfs.namenode.avoid.write.stale.datanode -->
<property>
<name>dfs.namenode.write.stale.datanode.ratio</name>
<value>1.0f</value>
</property>
<-- 默认为 true。如果为 true,则启用HDFS的权限检查,否则不启用 -->
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<-- 默认 hdfs ,指定 HDFS 的超级用户组的组名,可按需设置 -->
<property>
<name>dfs.permissions.superusergroup</name>
<value>hdfs</value>
</property>
<-- 块副本数,默认为3 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<-- 最大块副本数 -->
<property>
<name>dfs.replication.max</name>
<value>50</value>
</property>
<-- 在NN和DN上开启WebHDFS (REST API)功能 -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
<final>true</final>
</property>
<-- 在创建文件和目录时使用此umask值(用户掩码) 例如:"022" (8进制,等同于以符号表示的u=rwx,g=r-x,o=r-x) 8进制的掩码,和实际权限设置值正好相反 -->
<property>
<name>fs.permissions.umask-mode</name>
<value>022</value>
</property>
<-- 启用该功能后,会将其他字段写入用于审计粗粒度操作的名称节点审计日志记录。 -->
<property>
name>hadoop.caller.context.enabled</name>
<value>true</value>
</property>
<-- 为 HDFS 启用包含文件管理 -->
<property>
<name>manage.include.files</name>
<value>false</value>
</property>
<-- 默认情况下,导出可以由任何客户端装入。您必须更新此属性才能控制访问权限。值字符串包含机器名称和访问权限,由空格字符分隔。计算机名称可以是单主机,通配符或IPv4网络格式。访问权限使用rw或ro指定对导出的readwrite或readonly访问 -->
<property>
<name>nfs.exports.allowed.hosts</name>
<value>* rw</value>
</property>
<-- 此目录用于在写入HDFS之前临时保存无序写入。需要确保目录有足够的空间 -->
<property>
<name>nfs.file.dump.dir</name>
<value>/tmp/.hdfs-nfs</value>
</property>
评论已关闭