news 2026/5/1 7:26:43

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/5/1 1:50:01

怎么选水上乐园地面漆材料:耐水泡和附着力关键性能解析

水上乐园的运营维护中&#xff0c;如何选择适合水上乐园的漆料一直是行业痛点。许多水上设施面临漆膜起泡、脱落的问题。尤其在造浪池、水滑梯落水池等高频使用区域。普通漆料难以长期耐受水流冲击和化学腐蚀。运营方频繁翻新导致成本上升。选择不当还可能影响游客安全。 当前技…

作者头像 李华
网站建设 2026/4/29 21:47:01

传统建筑轩辕构件识别检测改进RetinaNet_r50-caffe_fpn_1x_coco方法实现

1. 传统建筑轩辕构件识别检测改进RetinaNet_r50-caffe_fpn_1x_coco方法实现 嗨&#xff0c;小伙伴们&#xff01;今天我要和大家一起探索如何使用改进的RetinaNet模型来识别传统建筑中的轩辕构件。这个项目真的超有意思&#xff0c;结合了传统文化和现代AI技术&#xff0c;简直…

作者头像 李华
网站建设 2026/5/1 6:56:33

发烧上考场仍上岸!26考研er请下这份心态急救包

一恍惚&#xff0c;研究生生涯已余额不足&#xff0c;而26考研的同学们本周末就要踏上初试战场 记得22年考研初试时&#xff0c;我考前突发高烧&#xff0c;但最终成功考入NNU GIS专业。现在回想&#xff0c;走进考场的那一刻&#xff0c;其实你已经战胜了一半的对手。以下是我…

作者头像 李华