今天下午刚刚搭建了一个高可用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. spring 请求静态资源文件

    在springMVC项目中使用restful风格写,需要到web.xml配置全拦截. <servlet>        <servlet-name>springmvc</ ...

  2. JavaScript语法记要

    JavaScript语法记要 1.JS代码忽略缩进和换行 2.JS六种数据类型 String // 字符串 Number // 数值 Boolean // 布尔值 null // 空值 undefin ...

  3. SVM | 支持向量机原理讲解(二)

    一.线性可分的支持向量机存在的问题 在支持向量机一中,我们介绍了当数据集是线性可分的时候,我们可以使用线性可分的支持向量机将数据进行分类(由于隔了很长时间才更新,因此忘记了支持向量机一的读者可以回看支 ...

  4. 【Pytest05】全网最全最新的Pytest框架之用例分组执行

    一.Fixture用例分组运行常用于冒烟测试,分模块运行等 pytest.ini配置文件中增加分组参数markers来实现用例分组,如: markers = g1:组一 smoke:冒烟测试 pyte ...

  5. ARM处理器的堆栈和函数调用,以及与Sparc的比较

    主要描述一下ARM处理器的堆栈和函数调用过程,并和Sparc处理器进行对比分析. 主要内容来自以下网址.该网站是个学习ARM汇编的好地方.对该篇文章注解一下,并和Sparc对比. https://az ...

  6. coding++:win10家庭版升级专业版方案

    win10家庭版升级专业版密钥: VK7JG-NPHTM-C97JM-9MPGT-3V66T 4N7JM-CV98F-WY9XX-9D8CF-369TT FMPND-XFTD4-67FJC-HDR8C ...

  7. Go深入学习之select

    select的用法 1)select只能用于channel的操作(写入.读出),而switch则更通用一些 2)select的case是随机的,而switch里的case是顺序执行 3)select要 ...

  8. 使用electron和node-serialport的环境搭建过程

    项目运行所需环境 1,必须安装nodejs 附上node下载地址-Nodejs node安装过程简单, 一直next就行了,我安装的版本是12.16.1,可以在powershell中通过 node - ...

  9. 并查集例题01. 种类并查集(poj1733)

    题目: http://poj.org/problem?id=1733 题意: 输入n表示有一个长度为n的0,1字符串, m表示接下来有m行输入, 接下来的m行输入中x, y, even表示第x到第y个 ...

  10. 数据源管理 | 基于JDBC模式,适配和管理动态数据源

    本文源码:GitHub·点这里 || GitEE·点这里 一.关系型数据源 1.动态数据源 动态管理数据源的基本功能:数据源加载,容器维护,持久化管理. 2.关系型数据库 不同厂商的关系型数据库,提供 ...