今天下午刚刚搭建了一个高可用hadoop集群,整理如下,希望大家能够喜欢。
 
namenode HA:得有两个节点,构成一个namenode HA集群
namenode Federation:可以有多个HA集群,分管不同的数据
至少得有4个节点,才能满足要求
节点 NN JournalNode DN ZK 归属组
Hmaster Y Y     cluster1
Hslave1 Y Y Y Y
Hslave2 Y Y Y Y cluster2
Hslave3 Y   Y Y
 
一、配置hosts、ssh免密登录、ZK集群等通用
二、有hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves 6个文件需要配置
(1)hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_91
(2)core-site.xml
fs.defaultFS hdfs://cluster1
hadoop.tmp.dir /home/hadoop/hadoop/tmp
ha.zookeeper.quorum Hslave1:2181,Hslave2:2181,Hslave3:2181
(3)hdfs-site.xml
dfs.nameservices cluster1,cluster2 备注
dfs.ha.namenodes.cluster1 nn1,nn2  
dfs.namenode.rpc-address.cluster1.nn1 Hmaster:9000  
dfs.namenode.rpc-address.cluster1.nn2 Hslave1:9000  
dfs.namenode.http-address.cluster1.nn1 Hmaster:9000  
dfs.namenode.http-address.cluster1.nn2 Hslave1:50070  
dfs.client.failover.proxy.provider.cluster1 org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider  
dfs.ha.automatic-failover.enabled.cluster1 true  
dfs.namenode.shared.edits.dir qjournal://Hmaster:8485;Hslave1:8485;Hslave2:8485/cluster1 只能出现在cluster1节点上
dfs.ha.namenodes.cluster2 nn1,nn2  
dfs.namenode.rpc-address.cluster2.nn1 Hslave2:9000  
dfs.namenode.rpc-address.cluster2.nn2 Hslave3:9000  
dfs.namenode.http-address.cluster2.nn1 Hslave2:9000  
dfs.namenode.http-address.cluster2.nn2 Hslave3:50070  
dfs.client.failover.proxy.provider.cluster2 org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider  
dfs.ha.automatic-failover.enabled.cluster2 true  
dfs.namenode.shared.edits.dir qjournal://Hmaster:8485;Hslave1:8485;Hslave2:8485/cluster2 只能出现在cluster2节点上
dfs.journalnode.edits.dir /home/hadoop/hadoop/tmp/journal  
dfs.ha.fencing.methods sshfence  
dfs.ha.fencing.ssh.private-key-files /home/hadoop/.ssh/id_rsa  
dfs.ha.fencing.ssh.connect-timeout 5000  
dfs.datanode.data.dir file:///home/hadoop/dfs/data  
dfs.replication 3  
(4)mapred-site.xml
mapreduce.framework.name yarn true
(5)yarn-site.xml
yarn.resourcemanager.hostname Hmaster RM目前是单节点,存在单点故障,以后配成RM HA
yarn.nodemanager.aux-services mapreduce_shuffle  
(6)slaves(DataNode节点)
Hslave1
Hslave2
Hslave3
分发到各节点,只有hdfs-site.xml中标红字段,根据cluster情况注释掉不必要的
三、启动集群
(1)启动、格式化ZK集群。
在每个ZK上执行:启动 zkServer.sh start
在每个cluster的其中一个节点执行: 建立HA节点:hdfs zkfc –formatZK
(2)启动JournalNode集群
每个节点上执行:hadoop-daemon.sh start journalnode
(3)格式化、启动NameNode集群
格式化并启动集群cluster1的namenode:
先在集群中的一个节点执行:hdfs namenode -format -clusterId c1 hadoop-daemon.sh start namenode
再在另一个节点执行(数据同步):hdfs namenode -bootstrapStandby hadoop-daemon.sh start namenode
cluster2集群类似
(4)启动DataNode
hadoop-daemons.sh start datanode
(5)启动YARN
start-yarn.sh
(6)启动ZooKeeperFailoverController
在其中一个节点执行:hadoop-daemons.sh start zkfc
四、测试
http://Hmaster:50070 看namenode的情况
http://Hmaster:8080/cluster 看集群的情况
kill其中一个namenode后,发现集群仍可正常使用

原创hadoop2.6.4 namenode HA+Federation集群高可用部署的更多相关文章

  1. Centos 7 RabbitMQ + Haproxy 集群高可用部署

    一.   功能和原理介绍 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby..NET.Java.JMS.C.PHP.ActionSc ...

  2. Rabbitmq集群高可用部署详细

    序言 清风万里的季节,周末本该和亲人朋友一起消遣这烂漫的花花草草,或是懒洋洋的晒个太阳听听风声鸟鸣.无奈工作使然,理想使然,我回到啦公司,敲起啦键盘,撸起啦代码,程序狗的世界一片黯然,一片黯然,愿天下 ...

  3. hadoop+zookeeper集群高可用搭建

                                                                  hadoop+zookeeper集群高可用搭建 Senerity 发布于 2 ...

  4. Rabbitmq集群高可用测试

    Rabbitmq集群高可用 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡. Rabbit模式大概分为以下三种:单一模式.普通模 ...

  5. openstack pike 集群高可用 安装 部署 目录汇总

    # openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...

  6. bitmq集群高可用测试

    Rabbitmq集群高可用 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡. Rabbit模式大概分为以下三种:单一模式.普通模 ...

  7. RabbitMQ从零到集群高可用(.NetCore5.0) -高可用集群构建落地

    系列文章: RabbitMQ从零到集群高可用(.NetCore5.0) - RabbitMQ简介和六种工作模式详解 RabbitMQ从零到集群高可用(.NetCore5.0) - 死信队列,延时队列 ...

  8. 浅谈MySQL集群高可用架构

    前言 高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能 ...

  9. Eureka 集群高可用配置.

    SERVER:1 server: port: 1111 eureka: instance: hostname: ${spring.cloud.client.ip-address} instance-i ...

随机推荐

  1. P4147 玉蟾宫 题解

    原题链接 简要题意: 求最大 \(0\) 矩阵.(将字符转化为数字) 本题是模板题,可以用来爆踩.??? 悬线法 来了! 其中绿色是 \(0\),红色是 \(1\). 下面以这个图为例讲一下算法流程. ...

  2. 「面试指南」解读JavaScript原始数据类型

    JavaScript 有 7 种原始数据类型: String(字符型) Number(数值型) Boolean(布尔值型) Undefined Null Object(对象型) Symbol(符号型, ...

  3. MySQL 教程--检视阅读

    MySQL 教程--检视阅读 准备:Windows 上安装 MySQL 教程地址,PHP语言基础 教程地址2 教程地址3,有讲数据库的备份和恢复 教程地址4,w3c.china,php基础,扩展阅读 ...

  4. 更新statsmodels出现的一系列问题

    在statsmodels的开发12版本文档上正好看到使用三因子模型进行rolling regression,但是代码来自最新版本,而我的是老版本,运行下列代码会出现这个问题: No module na ...

  5. Python第六章-函数04-递归函数和拉姆达表达式

    五.递归函数 什么叫递归(recusive)? 你拿两个镜子互相面对着, 然后去看镜子, 会发现每个镜子中很多个镜子, 层层的嵌套, 无穷尽, 这就是一种递归! 从前有坐山, 山里有座庙, 庙里有个老 ...

  6. HOOK相关原理与例子

    消息HOOK 原理: 1. 用户输入消息,消息被放到系统消息队列. 2. 程序发生了某些需要获取输入的事件,就从系统消息队列拿出消息放到程序消息队列中. 3. 应用程序检测到有新的消息进入到程序消息队 ...

  7. Java并发编程锁之独占公平锁与非公平锁比较

    Java并发编程锁之独占公平锁与非公平锁比较 公平锁和非公平锁理解: 在上一篇文章中,我们知道了非公平锁.其实Java中还存在着公平锁呢.公平二字怎么理解呢?和我们现实理解是一样的.大家去排队本着先来 ...

  8. idea打包或编译错误,错误为c盘idea路径某些文件被占用(非idea文件,项目生成的文件)

    方法列表(2的效果可能更好) 1.将被占用的文件删除之后,重新打包或编译. 2.多编译几次项目. 3.发现真正可能的原因.(貌似被南航企业版360拦截了,导致targe或maven等文件被占用问题) ...

  9. centos替换源

    !/bin/sh 本文原内容来自:https://github.com/judasn/Linux-Tutorial/blob/master/CentOS-Extra-Packages.md 可能额外需 ...

  10. 新基建新机遇!100页PPT

    "新基建"是与传统的"铁公基"相对应,结合新一轮科技革命和产业变革特征,面向国家战略需求,为经济社会的创新.协调.绿色.开放.共享发展提供底层支撑的具有乘数效应 ...