hadoop HA 配置 + zookeeper 服务注册
环境测试 6台机器 centos6.7 x64
master ( namenode/cluster )
10.10.100.101 namenode1
10.10.100.105 namenode2
ResourceManager
manager
datanode (datanode,NodeManager,JournalNnode,QuprumPeerMain)
10.10.100.102 datanode1 + zk1
10.10.100.103 datanode2 + zk2
10.10.100.104 datanode3 + zk3
节点服务部署:
节点服务创建
zookeeper/data/目录下建立myid文件
datanode1为1
datanode2为2
datanode3为3
配置文件:
配置core-site.xml
需要配置nameservice,hadoop 文件存储位置和Zookeeper集群来确保多个namenode之间的切换,修改后内容如下:
<configuration> <!-- 指定hdfs的nameservice为master -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master</value>
</property> <!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/tmp</value>
</property> <!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>datanode1:,datanode2:,datanode3:</value>
</property> <property>
<name>ha.zookeeper.session-timeout.ms</name>
<value></value>
</property> </configuration>
配置hdfs-site.xml
hdfs-site.xml主要配置namenode的高可用;
<configuration>
<!--指定hdfs的nameservice为master,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>master</value>
</property>
<!-- master下面有两个NameNode,分别是namenode1,namenode2 -->
<property>
<name>dfs.ha.namenodes.master</name>
<value>namenode1,namenode2</value>
</property>
<!-- namenode1 的 RPC 通信地址 -->
<property>
<name>dfs.namenode.rpc-address.master.namenode1</name>
<value>namenode1:</value>
</property>
<!-- namenode1 的http通信地址 -->
<property>
<name>dfs.namenode.http-address.master.namenode1</name>
<value>namenode1:</value>
</property>
<!-- namenode2 的 RPC 通信地址 -->
<property>
<name>dfs.namenode.rpc-address.master.namenode2</name>
<value>namenode2:</value>
</property>
<!-- namenode2 的http通信地址 -->
<property>
<name>dfs.namenode.http-address.master.namenode2</name>
<value>namenode2:</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://datanode1:8485;datanode2:8485;datanode3:8485/master</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 (工作目录)-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadoop/journal</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.master</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 配置sshfence隔离机制 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!-- 使用隔离机制时需要ssh免登陆 --> <property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property> <property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/hdfs/name</value>
</property> <property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/hdfs/data</value>
</property> <property>
<name>dfs.replication</name>
<value></value>
</property> <property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property> </configuration>
配置mapreduce文件mapred-site.xml
默认是没有mapred-site.xml文件的,里面有一个mapred-site.xml.example,重命名为mapred-site.xml
mv mapred-site.xml.example mapred-site.xml
配置内容如下,这里就是指明mapreduce是用在YARN之上来执行的。
<configuration>
<!-- 指定mr框架为yarn方式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property> <property>
<name>mapreduce.job.maps</name>
<value></value>
</property> <property>
<name>mapreduce.job.reduces</name>
<value></value>
</property> </configuration>
配置yarn-site.xml
做规划的时候就是配置hadoop03来运行yarn,配置如下:
<configuration>
<!-- 指定resourcemanager地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>manager</value>
</property> <!-- 指定nodemanager启动时加载server的方式为shuffle server -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property> <!-- <property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property> <property>
<name>yarn.log-aggregation.retain-seconds</name>
<value></value>
</property> <property>
<name>yarn.resourcemanager.zk-address</name>
<value>datanode1:,datanode3:,datanode2:</value>
</property> <property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster-yarn</value>
</property> <property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property> <property>
<name>yarn.resourcemanager.ha.master</name>
<value>namenode1,namenode2</value>
</property> <property>
<name>yarn.resourcemanager.hostname.namenode1</name>
<value>namenode1</value>
</property> <property>
<name>yarn.resourcemanager.hostname.namenode2</name>
<value>namenode2</value>
</property> <property>
<name>yarn.resourcemanager.scheduler.address.namenode1</name>
<value>namenode1:</value>
</property> <property>
<name>yarn.resourcemanager.scheduler.address.namenode2</name>
<value>namenode2:</value>
</property> <property>
<name>yarn.resourcemanager.resource-tracker.address.namenode1</name>
<value>namenode1:</value>
</property> <property>
<name>yarn.resourcemanager.resource-tracker.address.namenode2</name>
<value>namenode2:</value>
</property> <property>
<name>yarn.resourcemanager.address.namenode1</name>
<value>namenode1:</value>
</property> <property>
<name>yarn.resourcemanager.address.namenode2</name>
<value>namenode2:</value>
</property> <property>
<name>yarn.resourcemanager.admin.address.namenode1</name>
<value>namenode:</value>
</property> <property>
<name>yarn.resourcemanager.admin.address.namenode2</name>
<value>namenode2:</value>
</property> <property>
<name>yarn.resourcemanager.webapp.address.namenode1</name>
<value>namenode1:</value>
</property> <property>
<name>yarn.resourcemanager.webapp.address.namenode2</name>
<value>namenode2:</value>
</property> <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.ha.automatic-failover.zk-base-path</name>
<value>/yarn-leader-election</value>
</property> --> <property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property> <property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property> <property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property> <property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property> </configuration>
在hadoop master 上启动journalnode
[root@hadoop01 hadoop-2.7.]# sbin/hadoop-daemons.sh start journalnode
journalnode的节点是datanode1、datanode2、datanode3,这三台机器上会出现JournalNode
[root@hadoop04 zookeeper-3.4.]# jps
JournalNode
Jps
QuorumPeerMain
在hadoop上格式化hadoop hadoop namenode -format hadoop 上格式化 zk
hdfs zkfc -formatZK hdfs zkfc –formatZK
--格式化 zookeeper custer-ha主目录
hadoop HA 配置 + zookeeper 服务注册的更多相关文章
- Zookeeper服务注册与发现原理浅析
了解Zookeeper的我们都知道,Zookeeper是一种分布式协调服务,在分布式应用中,主要用来实现分布式服务的注册与发现以及分布式锁,本文我们简单介绍一下Zookeeper是如何实现服务的注册与 ...
- 启动Hadoop HA Hbase zookeeper spark
服务器角色 服务器 192.168.58.180 192.168.58.181 192.168.58.182 192.168.58.183 Name CentOSMaster Slvae1 Slave ...
- Zookeeper 服务注册和发现
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理 ...
- Linux上搭建zookeeper服务注册中心
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- 如何优化Spring Cloud微服务注册中心架构?
作者: 石杉的架构笔记 1.再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相 ...
- 三(1)、springcloud之Eureka服务注册与发现
1.认识Eureka Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务架 ...
- silky微服务框架服务注册中心介绍
目录 服务注册中心简介 服务元数据 主机名称(hostName) 服务列表(services) 终结点 时间戳 使用Zookeeper作为服务注册中心 使用Nacos作为服务注册中心 使用Consul ...
- 基于SpringCloud的服务注册和调用
一:服务的注册和发现 Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry(注册登记)和Service Discovery(发现)实现.也是s ...
- zookeeper系列之:独立模式部署zookeeper服务
一.简述 独立模式是部署zookeeper服务的三种模式中最简单和最基础的模式,只需一台机器即可,独立模式仅适用于学习,开发和生产都不建议使用独立模式.本文介绍以独立模式部署zookeeper服务器的 ...
随机推荐
- RSS & Server-Sent Events & HTML5 Notification API
RSS Rich Site Summary https://en.wikipedia.org/wiki/RSS https://www.lifewire.com/what-is-rss-2483592 ...
- delphi dbgrid 修改、更新、删除
https://zhidao.baidu.com/question/580946797.html DELPHI 中,使用 dbgrid显示数据.窗体上放置三个按钮,caption分别为:修改.删除.更 ...
- BZOJ3417[Poi2013]Tales of seafaring——BFS
题目描述 Young Bytensson loves to hang out in the port tavern, where he often listens to the sea dogs te ...
- hdu 6319 Problem A. Ascending Rating (2018 Multi-University Training Contest 3 A)
链接: http://acm.hdu.edu.cn/showproblem.php?pid=6319 思路: 单调队列倒着维护,队列里面剩下的值的数量就是这一段区间的count值,如样例第一个区间:3 ...
- MT【68】一边柯西一边舍弃
求$\sqrt{x-5}+\sqrt{24-3x}$的最值. 通常考试时会考你求最大值,常见的方式有三角代换,这里给如下做法: 证明:$\sqrt{x-5}+\sqrt{24-3x}=\sqrt{x- ...
- 自学Linux Shell6.1-环境变量概念
点击返回 自学Linux命令行与Shell脚本之路 6.1-环境变量概念 环境变量 在Linux中,很多程序和脚本都通过环境变量来获取系统信息.存储临时数据和配置信息: bash shell使用环境变 ...
- 学习Spring Boot:(二十二)使用 AOP
前言 AOP 1,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.基于AOP实现的功能不会破坏原来程序逻辑,因此它可以很好的对业务逻辑的各个部分进行隔离,从而使得业 ...
- 【BZOJ2671】Calc(莫比乌斯反演)
[BZOJ2671]Calc 题面 BZOJ 给出N,统计满足下面条件的数对(a,b)的个数: 1.\(1\le a\lt b\le N\) 2.\(a+b\)整除\(a*b\) 我竟然粘了题面!!! ...
- 洛谷 P3155 [CQOI2009]叶子的染色 解题报告
P3155 [CQOI2009]叶子的染色 题目描述 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根.内部结点和叶子均可)着以黑色或白色.你的着色方案应该保证根结点到 ...
- source、sh、bash
source.sh.bash../ 执行脚本的区别 1.source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令.该filename文件可以 ...