news 2026/6/26 2:09:33

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/6/24 20:46:50

实际项目开发应用--485通信

一、485通信波特率的选择 长距离485Modbus通信时&#xff0c;波特率设置“小点更好” ——核心原则是“优先保证通信稳定性&#xff0c;再兼顾效率”&#xff0c;高波特率会加剧信号衰减、抗干扰能力下降&#xff0c;反而容易出现丢包、误码&#xff1b;低波特率虽通信速度慢&a…

作者头像 李华
网站建设 2026/6/24 18:02:01

【JavaSE】十八、URL HTTP请求格式 常见报头 状态码 会话保持

文章目录Ⅰ. URLⅡ. 报文格式Ⅲ. HTTP 请求方法&#x1f4a5; GET 和 POST 的区别Ⅳ. HTTP 常见报头Ⅴ. HTTP 状态码Ⅵ. 会话保持一、Cookie二、Session三、两者区别四、理解 cookie、session、token 三者的区别Ⅰ. URL 统一资源描述定位符 URL&#xff08;Uniform Resource L…

作者头像 李华
网站建设 2026/6/24 15:10:26

车间每天报喜不报忧,直到真 OEE 摆上墙,谁都装不下去!

目录 一、车间数据造假&#xff0c;到底有多日常&#xff1f; 1. 停机时间“自动消失” 2. 产量“向上取整”&#xff0c;报废“向下取整” 3. 点检表天天签&#xff0c;谁也没看过 二、为什么大家宁愿造假&#xff0c;也不愿报真实&#xff1f; 1. 指标只考结果&#xf…

作者头像 李华
网站建设 2026/6/25 11:04:31

python3.7-python3.12通过whl安装dlib

1、安装Cmakepip install cmake2、安装boostpip install cmake3、通过whl文件安装dlib下载链接中包括python3.7-python3.12版本对应的dlib库例如我的python版本是3.12&#xff0c;在.whl下载路径下&#xff0c;输入以下指令安装pip install dlib-19.24.2-cp312-cp312-win_amd64…

作者头像 李华
网站建设 2026/6/24 13:28:54

合并区间(二维vector使用,多维vector使用默认sort)

注意点&#xff1a; 1.sort自带的比较函数是支持多维数组比较的&#xff0c;使用的是字典序比较&#xff1b; 2.对于多维的vector&#xff0c;可以使用back&#xff0c;front,at等函数 比较例子&#xff1a; 二维 vector 示例 vector<vector<int>> v {{2,5},{1,3}…

作者头像 李华
网站建设 2026/6/24 17:50:47

ubuntu远程rdp连接屏幕分辨率太小

# 切换root权限 sudo -i # 编辑XRDP的会话配置文件 nano /etc/xrdp/startwm.sh在文件的最顶部&#xff08;#!/bin/sh下面&#xff09;添加一行分辨率配置&#xff08;比如设置为 1920x1080&#xff0c;可根据需求调整&#xff09;&#xff1a;bash运行# 设置XRDP默认分辨率&…

作者头像 李华