环境测试 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 服务注册的更多相关文章

  1. Zookeeper服务注册与发现原理浅析

    了解Zookeeper的我们都知道,Zookeeper是一种分布式协调服务,在分布式应用中,主要用来实现分布式服务的注册与发现以及分布式锁,本文我们简单介绍一下Zookeeper是如何实现服务的注册与 ...

  2. 启动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 ...

  3. Zookeeper 服务注册和发现

    Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理 ...

  4. Linux上搭建zookeeper服务注册中心

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  5. 如何优化Spring Cloud微服务注册中心架构?

    作者: 石杉的架构笔记 1.再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相 ...

  6. 三(1)、springcloud之Eureka服务注册与发现

    1.认识Eureka ​ Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务架 ...

  7. silky微服务框架服务注册中心介绍

    目录 服务注册中心简介 服务元数据 主机名称(hostName) 服务列表(services) 终结点 时间戳 使用Zookeeper作为服务注册中心 使用Nacos作为服务注册中心 使用Consul ...

  8. 基于SpringCloud的服务注册和调用

    一:服务的注册和发现 Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry(注册登记)和Service Discovery(发现)实现.也是s ...

  9. zookeeper系列之:独立模式部署zookeeper服务

    一.简述 独立模式是部署zookeeper服务的三种模式中最简单和最基础的模式,只需一台机器即可,独立模式仅适用于学习,开发和生产都不建议使用独立模式.本文介绍以独立模式部署zookeeper服务器的 ...

随机推荐

  1. Delphi7/2007/2009/2010/XE/XE2/XE3/XE4/XE5/XE6/XE7/XE8/10最终版

    RAD Studio 10.1 Berlin(with Update1)http://altd.embarcadero.com/download/radstudio/10.1/delphicbuild ...

  2. python之datetime类

    datetime.time时间类,一般用于显示当地时间 import datetime # 新建对象 datetime_obj = datetime.time(hour=12, minute=20, ...

  3. CPU性能过剩提升乏力影响未来行业发展吗?

    导读 虽然CPU仍然在不断发展,但是它的性能已经不再仅仅受限于单个处理器类型或制造工艺上了.和过去相比,CPU性能提升的步伐明显放缓了,接下来怎么办,成为横亘在整个行业面前的大问题. 虽然CPU仍然在 ...

  4. git如何拉取指定分支的代码

    问题背景: 新项目还在开发阶段,没有正式对外发布,所以开发同事合并代码到develop上(或者其他名称分支上),而不是到master分支上 通过git拉取代码的时候,默认拉取的是master分支,如下 ...

  5. Django-website 程序案例系列-4 ORM数据库操作

    数据库表的创建: 使用mysql时注意,在setting.py中的设置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql' ...

  6. python3.5 opencv3显示视频fps

    由于要进行多路视频的处理,所以fps就很重要 fps介绍 模板: 1.获取某一时刻的fps import time while True: start_time = time.time() # sta ...

  7. 自学Linux Shell19.2-gawk程序高级特性

    点击返回 自学Linux命令行与Shell脚本之路 19.2-gawk程序高级特性 linux世界中最广泛使用的两个命令行编辑器: sed gawk 1. gawk使用变量 编程语言共有的特性是使用变 ...

  8. Android 第三课 构建简单的用户界面

    构建简单的用户界面 上一课下一课 该课程教你 创建线性布局 添加文本框 添加字符串资源 添加按钮 使输入框宽度充满整个屏幕 你也应该阅读 布局 Android的图形用户界面通过 View 和 View ...

  9. 【BZOJ3202】项链(莫比乌斯反演,Burnside引理)

    [BZOJ3202]项链(莫比乌斯反演,Burnside引理) 题面 BZOJ 洛谷 题解 首先读完题目,很明显的感觉就是,分成了两个部分计算. 首先计算本质不同的珠子个数,再计算本质不同的项链个数. ...

  10. emwin 之消息 WM_INIT_DIALOG

    @2018-08-09 小记 消息 WM_INIT_DIALOG 在创建窗口时首先发送且只在创建窗口时发送即只发送这一次