当前位置: 首页 > news >正文

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>

http://www.cnnetsun.cn/news/114366.html

相关文章:

  • React Fiber 架构解析:如何利用 `requestIdleCallback` 实现时间切片(Time Slicing)
  • SPA 应用中的路由切换内存泄漏:未注销的 Scroll 监听与全局变量
  • 游泳池漆专用施工涂料如何选?专业视角解析耐水抗氯性能
  • 中国RFID设备十大企业综合实力解析
  • C#静态成员总结 常量与只读字段总结 类的继承总结
  • 都说东莞有好的AI销售厂家,实际情况真如此吗?
  • Python开发者必看:一行代码切换GPT-5.2与DeepSeek V3.2,企业级大模型中台搭建实录
  • 浏览器代理实现理想数据抓取
  • LeetCode 01 背包 完全背包 题型总结
  • ubuntu通过公网Ubuntu服务器远程桌面连接私网IPUbuntu
  • Unity学习笔记(十九)GUI控件(三)
  • IPA 深度混淆是什么意思?分析其与普通混淆的区别
  • 33、Linux 内存管理全解析
  • 5.回溯算法
  • 嵌入式模组温控策略
  • 【昇腾CANN训练营·架构篇】打破内存墙:Ascend C 算子融合(Operator Fusion)的极致心法
  • 【昇腾CANN训练营·算法篇】寻找消失的除法器:Newton Iteration 与高精度数学计算的艺术
  • 19、Linux 帧缓冲接口设计与图形库应用
  • 人才发展ℓℓ 人才盘点怎么做?这篇完全应用手册给出答案
  • 真相来了|字节跳动的人才真相:真正拉开差距的,是“人才密度”(附人才密度清单)
  • 力扣(LeetCode) 66: 加一 - 解法思路
  • HC32L130精准延时实现指南
  • 收藏必看!大学生网络安全学习5大方向,校招不踩坑,小白也能逆袭!
  • 收藏!从“黑客梦“到网络安全专家:过来人告诉你自学路线图
  • Bagisto 产品更新后,前台默认语言的内容不更信,其他语言正常。
  • 【收藏】运维转网安的黄金路径:4个高适配岗位+3步落地指南,薪资提升50%
  • 大语言模型全解析:一篇文章带你深入理解AI的强大能力!
  • 【网络】网络通信模型
  • Slimjet浏览器:基于Chromium的高效网页浏览解决方案,内置广告拦截与多功能工具
  • AMP页面还要做吗?2025替代方案及优化指南