news 2026/10/22 20:34:51

hadoop高可用搭建(版本:2.9.2)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hadoop高可用搭建(版本:2.9.2)

集群分布:

node01

namenode(active)

datanode

nodemanager

zk

node02

namenode(standby)

datanode

resourcemanager(standby)

nodemanager

zk

node03

resourcemanager(active)

datanode

nodemanager

zk

hdfs的web访问端口:50070
yarn的web访问端口:8088

1.修改slaves配置

node01
node02
node03

2.修改mapred-site.xml


<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

3.修改yarn-site.xml


<configuration>

<!-- Site specific YARN configuration properties -->


<property>
<name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.redirect.enabled</name>
<value>false</value>
</property>


<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<property>
<name>hadoop.registry.rm.enabled</name>
<value>false</value>
</property>
<property>
<name>mapreduce.job.hdfs-servers</name>
<value>hdfs://easyops-cluster</value>
</property>

<property>
<name>yarn.resourcemanager.ha.automatic-failover.zk-base-path</name>
<value>/yarn-leader-election</value>
</property>

<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn-cluster</value>
</property>

<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>node02</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>node03</value>
</property>

<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>


<property>
<name>yarn.application.classpath</name>
<value>$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*,$HADOOP_COMMON_HOME/share/hadoop/common/lib/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,$HADOOP_YARN_HOME/share/hadoop/yarn/*,$HADOOP_YARN_HOME/share/hadoop/yarn/lib/*</value>
</property>
<property>
<name>yarn.client.nodemanager-connect.max-wait-ms</name>
<value>60000</value>
</property>
<property>
<name>yarn.client.nodemanager-connect.retry-interval-ms</name>
<value>10000</value>
</property>

<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-check-interval-seconds</name>
<value>3600</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>2592000</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://node02:19888/jobhistory/logs</value>
</property>

<property>
<name>yarn.nodemanager.address</name>
<value>0.0.0.0:45454</value>
</property>

<property>
<name>yarn.nodemanager.bind-host</name>
<value>0.0.0.0</value>
</property>

<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/hadoop/yarn_nodemanager_local_log</value>
</property>


<property>
<name>yarn.nodemanager.localizer.address</name>
<value>0.0.0.0:8040</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/data/hadoop/yarn_nodemanager_dir_log</value>
</property>

<property>
<name>yarn.nodemanager.recovery.dir</name>
<value>/data/hadoop/yarn_nodemanager_recovery_dir</value>
</property>
<property>
<name>yarn.nodemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/data/hadoop/yarn_nodemanager_app_log</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</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>
<property>
<name>yarn.nodemanager.webapp.address</name>
<value>0.0.0.0:8042</value>
</property>

<property>
<name>yarn.resourcemanager.address.rm1</name>
<value>node02:8032</value>
</property>
<property>
<name>yarn.resourcemanager.address.rm2</name>
<value>node03:8032</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address.rm1</name>
<value>node02:8033</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address.rm2</name>
<value>node03:8033</value>
</property>


<property>
<name>yarn.resourcemanager.max-completed-applications</name>
<value>50000</value>
</property>



<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm1</name>
<value>node02:8031</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm2</name>
<value>node03:8031</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm1</name>
<value>node02:8030</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address.rm2</name>
<value>node03:8030</value>
</property>

<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.monitor.enable</name>
<value>false</value>
</property>
<property>
<name>yarn.resourcemanager.state-store.max-completed-applications</name>
<value>10000</value>
</property>
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<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>false</value>
</property>


<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>0.0.0.0:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>node02:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>node03:8088</value>
</property>


<property>
<name>yarn.resourcemanager.webapp.delegation-token-auth-filter.enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>0.0.0.0:8090</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address.rm1</name>
<value>node02:8090</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address.rm2</name>
<value>node03:8090</value>
</property>



<property>
<name>yarn.resourcemanager.work-preserving-recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.work-preserving-recovery.scheduling-wait-ms</name>
<value>10000</value>
</property>
<property>
<name>yarn.resourcemanager.zk-acl</name>
<value>world:anyone:rwcda</value>
</property>


<property>
<name>yarn.resourcemanager.zk-address</name>
<value>node01:2181,node02:2181,node03:2181</value>
</property>
<property>
<name>yarn.resourcemanager.zk-num-retries</name>
<value>1000</value>
</property>
<property>
<name>yarn.resourcemanager.zk-retry-interval-ms</name>
<value>1000</value>
</property>
<property>
<name>yarn.resourcemanager.zk-state-store.parent-path</name>
<value>/rmstore-secure</value>
</property>
<property>
<name>yarn.resourcemanager.zk-timeout-ms</name>
<value>90000</value>
</property>
<property>
<name>yarn.scheduler.configuration.zk-store.parent-path</name>
<value>/confstore</value>
</property>



<property>
<name>yarn.timeline-service.webapp.address</name>
<value>localhost:8188</value>
</property>
<property>
<name>yarn.timeline-service.webapp.https.address</name>
<value>localhost:8190</value>
</property>


</configuration>

修改hdfs-site.xml


<configuration>


<property>
<name>dfs.ha.health-monitor.check.interval.ms</name>
<value>1000</value>
</property>

<property>
<name>dfs.ha.health-monitor.rpc-timeout.ms</name>
<value>3000</value>
</property>

<property>
<name>dfs.ha.health-monitor.connect-retry-interval.ms</name>
<value>500</value>
</property>

<property>
<name>dfs.ha.health-monitor.max-retries</name>
<value>3</value>
</property>


<property>
<name>dfs.ha.automatic-failover.enabled.easyops-cluster</name>
<value>true</value>
</property>

<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>

<property>
<name>dfs.ha.fencing.methods</name>
<value>shell(/bin/true)</value>
</property>

<property>
<name>ha.zookeeper.quorum</name>
<value>node01:2181,node02:2181,node03:2181</value>
</property>

<!-- JournalNode编辑目录 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/data/hadoop/journalnode_edits</value>
</property>


<property>
<name>dfs.client.retry.policy.enabled</name>
<value>false</value>
</property>


<property>
<name>dfs.datanode.address</name>
<value>0.0.0.0:11004</value>
</property>


<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/hadoop/datanode_data</value>
</property>
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>750</value>
</property>

<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:11006</value>
</property>
<property>
<name>dfs.datanode.https.address</name>
<value>0.0.0.0:50475</value>
</property>
<property>
<name>dfs.datanode.ipc.address</name>
<value>0.0.0.0:8026</value>
</property>

<property>
<name>dfs.ha.namenodes.easyops-cluster</name>
<value>nn1,nn2</value>
</property>

<property>
<name>dfs.ha.zkfc.port</name>
<value>8019</value>
</property>

<property>
<name>dfs.https.enable</name>
<value>false</value>
</property>
<property>
<name>dfs.https.port</name>
<value>50470</value>
</property>


<property>
<name>dfs.journalnode.http-address</name>
<value>0.0.0.0:8480</value>
</property>
<property>
<name>dfs.journalnode.https-address</name>
<value>0.0.0.0:8481</value>
</property>

<property>
<name>dfs.journalnode.rpc-address</name>
<value>0.0.0.0:8485</value>
</property>

<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///data/hadoop/checkpoint_data</value>
</property>
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>7200</value>
</property>
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
</property>
<property>
<name>dfs.namenode.fslock.fair</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>128</value>
</property>


<property>
<name>dfs.namenode.http-address</name>
<value>0.0.0.0:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.easyops-cluster.nn1</name>
<value>node01:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.easyops-cluster.nn2</name>
<value>node02:50070</value>
</property>
<property>
<name>dfs.namenode.http-bind-host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>dfs.namenode.https-address.easyops-cluster.nn1</name>
<value>node01:50470</value>
</property>
<property>
<name>dfs.namenode.https-address.easyops-cluster.nn2</name>
<value>node02:50470</value>
</property>
<property>
<name>dfs.namenode.https-bind-host</name>
<value>0.0.0.0</value>
</property>



<property>
<name>dfs.namenode.lifeline.handler.count</name>
<value>10</value>
</property>
<property>
<name>dfs.namenode.lifeline.rpc-address.easyops-cluster.nn1</name>
<value>node01:8022</value>
</property>
<property>
<name>dfs.namenode.lifeline.rpc-address.easyops-cluster.nn2</name>
<value>node02:8022</value>
</property>
<property>
<name>dfs.namenode.lifeline.rpc-bind-host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>dfs.namenode.maintenance.replication.min</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/hadoop/namenode_date</value>
</property>


<property>
<name>dfs.namenode.name.dir.restore</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.recycle.bin.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.replication.max-streams</name>
<value>4</value>
</property>
<property>
<name>dfs.namenode.replication.max-streams-hard-limit</name>
<value>10</value>
</property>
<property>
<name>dfs.namenode.replication.work.multiplier.per.iteration</name>
<value>4</value>
</property>
<property>
<name>dfs.namenode.rpc-address.easyops-cluster.nn1</name>
<value>node01:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.easyops-cluster.nn2</name>
<value>node02:8020</value>
</property>



<property>
<name>dfs.namenode.safemode.threshold-pct</name>
<value>0.999</value>
</property>
<property>
<name>dfs.namenode.service.handler.count</name>
<value>20</value>
</property>
<property>
<name>dfs.namenode.servicerpc-address.easyops-cluster.nn1</name>
<value>node01:8021</value>
</property>
<property>
<name>dfs.namenode.servicerpc-address.easyops-cluster.nn2</name>
<value>node02:8021</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://node01:8485;node02:8485;node03:8485/easyops-cluster</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.easyops-cluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<property>
<name>dfs.namenode.stale.datanode.interval</name>
<value>60000</value>
</property>
<property>
<name>dfs.namenode.startup.delay.block.deletion.sec</name>
<value>3600</value>
</property>
<property>
<name>dfs.namenode.write.stale.datanode.ratio</name>
<value>1.0f</value>
</property>
<property>
<name>dfs.namenode.xattrs.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.nameservice.id</name>
<value>easyops-cluster</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>easyops-cluster</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>

<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.replication.max</name>
<value>50</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>

<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>

</configuration>

修改core-site.xml


<configuration>

<property>
<name>fs.defaultFS</name>
<value>hdfs://easyops-cluster</value>
</property>
<property>
<name>fs.du.interval</name>
<value>86400000</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>30</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>ha.failover-controller.active-standby-elector.zk.op.retries</name>
<value>120</value>
</property>
<property>
<name>ha.failover-controller.graceful-fence.rpc-timeout.ms</name>
<value>30000</value>
</property>
<property>
<name>ha.failover-controller.new-active.rpc-timeout.ms</name>
<value>360000</value>
</property>
<property>
<name>ha.health-monitor.rpc-timeout.ms</name>
<value>180000</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>node01:2181,node02:2181,node03:2181</value>
</property>
<property>
<name>ha.zookeeper.session-timeout.ms</name>
<value>40000</value>
</property>

<property>
<name>hadoop.proxyuser.yarn.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.yarn.hosts</name>
<value>*</value>
</property>

<property>
<name>hadoop.proxyuser.jzt.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.jzt.hosts</name>
<value>*</value>
</property>


<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>

<property>
<name>hadoop.proxyuser.hdfs.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hdfs.hosts</name>
<value>*</value>
</property>

<property>
<name>hadoop.proxyuser.HTTP.groups</name>
<value>*</value>
</property>

</configuration>

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 14:21:53

SPA 应用中的路由切换内存泄漏:未注销的 Scroll 监听与全局变量

SPA 应用中的路由切换内存泄漏&#xff1a;未注销的 Scroll 监听与全局变量大家好&#xff0c;我是你们的技术讲师。今天我们来深入探讨一个在现代前端开发中非常常见却又容易被忽视的问题——单页应用&#xff08;SPA&#xff09;中的内存泄漏问题&#xff0c;特别是由 未注销…

作者头像 李华
网站建设 2026/10/23 13:31:47

游泳池漆专用施工涂料如何选?专业视角解析耐水抗氯性能

说到游泳池漆哪个牌子好&#xff0c;很多工程方都会头疼。去年我亲自跟进一个市政泳池项目&#xff0c;施工队试了三种漆都出现脱落。后来改用海瑞的水池蓝池底漆&#xff0c;效果确实稳定。 环保安全与施工便捷的双重优势 游泳池漆哪个牌子好&#xff0c;首先要看环保指标。海…

作者头像 李华
网站建设 2026/10/23 1:49:49

中国RFID设备十大企业综合实力解析

&#xff08;注&#xff1a;以下排名基于技术研发、市场份额、行业应用等维度综合评估&#xff09;行业领军企业远望谷技术深耕物联网识别领域20年&#xff0c;其超高频读写设备在铁路物流管理市占率达38%&#xff0c;自主研发的$ \lambda \frac{c}{f} $抗干扰算法显著提升多标…

作者头像 李华
网站建设 2026/10/23 0:17:04

C#静态成员总结 常量与只读字段总结 类的继承总结

&#x1f4dd; C# 静态成员总结&#x1f3af; 核心区别表格特性静态成员/方法非静态成员/方法关键字static无关键字属于谁属于类本身属于类的实例对象调用方式类名.成员名对象.成员名内存位置内存中只有一份每个对象都有独立副本何时创建类加载时&#xff08;程序启动&#xff…

作者头像 李华
网站建设 2026/10/22 20:29:27

都说东莞有好的AI销售厂家,实际情况真如此吗?

都说东莞有好的AI销售厂家&#xff0c;事实究竟如何&#xff1f;某行业实践验证&#xff0c;优质AI销售方案可使企业销售效率提升超30%。接下来&#xff0c;我们深入剖析东莞AI销售厂家的现状。现状与挑战当前&#xff0c;东莞AI销售厂家发展迅速&#xff0c;众多企业投身其中。…

作者头像 李华