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服务器的 ...
随机推荐
- LODOP、C-LODOP注册号的区别
LODOP是一款免费的web打印控件,预览打印后无水印,是免费的,直接打印会在纸张下方有个水印“本页由XXX试用版输出”,通常商用打印较多,常用直接打印,这种时候可以购买注册号去水印. LODOP注册 ...
- Lodop窗口的按钮、权限,隐藏或设置功能不可用
Lodop隐藏某个按钮或部分,具体参考Lodop技术手册 SET_SHOW_MODE篇.以下是几个例子,(对应下图图片): 第一种:LODOP.SET_SHOW_MODE ("HIDE_PB ...
- fix
rounds the elements of A toward zero, resulting in an array of integers. For complex A, the imaginar ...
- maven-assembly-plugin把java工程打包成为一个可执行的jar包
用Java写了一个小工具,使用maven java 工程.写完后,想打包成一个可执行的jar包. 使用maven的插件maven-assembly-plugin pom.xml里添加 <buil ...
- 自学Linux Shell16.1-函数概念
点击返回 自学Linux命令行与Shell脚本之路 16.1-函数概念 编写比较复杂的shell脚本时,完成具体任务的代码可能需要重复使用.bash shell提供满足这种要求的特性.函数是被赋予名称 ...
- INSTALL_FAILED_INSUFFICIENT_STORAGE 的解决方法
今天用真机测试,出现了下面的情况 , 网上找了好多情况 , 都感觉比较费事,没什么效果,报错依旧, [2013-08-06 16:31:04 - Flashlight] Installation er ...
- python开启httpserver服务在自动化测试中的一个小运用
httpserver可以在本机启动一个python实现的web服务器,在自动化测试中,可以将生成测试报告的目录开放给项目组同事. 先安装python 自动化测试框架,生成报告的目录D:\Automat ...
- matplotlib 刻度,坐标轴不可见
plt.gray():只有黑白两色,没有中间的渐进色 1. 关闭坐标刻度 plt.xticks([]) plt.yticks([]) 关闭坐标轴: plt.axis('off') 注意,类似的这些操作 ...
- Linux下Vim编辑器访问系统剪切板
默认情况下VIM使用的是内置的寄存器,而不是X Window的剪切板 启用系统剪切板支持 可以使用vim --version | grep clipboard查看,若clipboard前显示-标记,而 ...
- Redis我想入门——数据类型
每一个数据库都有自己的数据类型.同样子redis为我们提供了五种类型的数据——字符串.哈希.列表.集合.有序集合.我们知道关系型数据的数据存放型式是一张二维表.用行和列来表示数据之间的关系.redis ...