今天下午刚刚搭建了一个高可用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. Layui+Servlet+MyBatis+Mysql实现的大学生创新竞赛管理平台

    项目简介 项目来源于:https://gitee.com/fly-liuhao/SCMS 原仓库中未上传jar包及登录异常,现将修改过的源码上传到百度网盘上. 链接:https://pan.baidu ...

  2. Oracle时间日期计算--计算某一日期为一年中的第几周

    Oracle时间日期计算--计算某一日期为一年中的第几周 select to_char(sysdate-10,'yyyymmdd')||':iw:'||to_char(sysdate-10,'iw') ...

  3. 16.如何查找所需的maven的依赖

    http://mvnrepository.com/ 1.先打开上面的网址 搜索需要的依赖,点进去 2.选择需要的版本 3.红框中的就是依赖的地址 此外也有其他自动化构建工具所需要的地址

  4. Unity 游戏框架搭建 2019 (十八~二十) 概率函数 & GameObject 显示、隐藏简化 & 第二章 小结与快速复习

    在笔者刚做项目的时候,遇到了一个需求.第一个项目是一个跑酷游戏,而跑酷游戏是需要一条一条跑道拼接成的.每个跑道的长度是固定的,而怪物的出现位置也是在跑道上固定好的.那么怪物出现的概率决定一部分关卡的难 ...

  5. [noip2016]组合数问题<dp+杨辉三角>

    题目链接:https://vijos.org/p/2006 当时在考场上只想到了暴力的做法,现在自己看了以后还是没思路,最后看大佬说的杨辉三角才懂这题... 我自己总结了一下,我不能反应出杨辉三角的递 ...

  6. MATLAB——时间,日期及显示格式

    一.日期和时间 1.生成指定格式日期和时间 标准日期格式 2.获取当前时间的数值 >> datestr(now,) ans = -- :: >> datestr(now,'yy ...

  7. C#中的字符串处理

    C#中的字符串处理 是由多个单个字符组成的.字符串的关键字是string,而我们单个字符char型.也就是一个字符串可以分为很多个char的字符.注意 同时,我们在开发项目或者学习时.更多的操作不是数 ...

  8. JS去除字符串内的空白字符方法

    有时我们需要对用户的输入进行一些处理,比如用户输入的密码或者用户名我们就需要去除前后空格,下面写一个去除空白字符的方法 function trim(string = '') { return stri ...

  9. HDU1087:Super Jumping! Jumping! Jumping!(DP水题)

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  10. Shell:Day08.笔记

    函数:写一个代码块,用来重复调用的: 1.函数的写法格式 2.参数,在函数名后面直接加,即可:如果在外面  abc(){   函数体 $@  }  abc 1 2 3 4 5   :wq    a.s ...