今天下午刚刚搭建了一个高可用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. Linux网络学习笔记(二):域名解析(DNS)——以 CoreDNS 为例

    个人笔记,观点不一定正确. 适合对 Kubernetes 有一定了解的同学. 前言 最近一直在学习 Kubernetes,但是手头没有个自有域名,要测试 ingress 就比较麻烦,每次都是手动改 h ...

  2. 图-搜索-DFS-51. N皇后

    2020-03-15 19:49:59 问题描述: n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 上图为 8 皇后问题的一种解法. 给定一个整数 n ...

  3. SVM支持向量机——核函数、软间隔

    支持向量机的目的是寻找一个能讲两类样本正确分类的超平面,很多时候这些样本并不是线性分布的. 由此,可以将原始特征空间映射到更高维的特征空间,使其线性可分.而且,如果原始空间是有限维,即属性数量有限, ...

  4. Java构造器(构造方法/constructor)

    我们先来看一下什么是构造器: 1.构造器也叫构造方法或构造函数,分为有参构造器和无参构造器: 2.构造器也是一种方法,只不过是一种特殊的方法,它会在对象创建的时候被调用: 3.构造器最大的作用就是在创 ...

  5. Dome_iptest_server

    一个简单的ip测试服务器 打印返回 请求头request import socket def send_data(conn, data=None, status=200): if status != ...

  6. Python常用模块之configparser

    ConfigParser简介 ConfigParser 是用来读取配置文件的包.配置文件的格式如下:中括号“[ ]”内包含的为section.section 下面为类似于key-value 的配置内容 ...

  7. Pyhton多线程

    在了解多线程前先给大家介绍下并发和并行: 并发:多个任务一起执行 在多任务之间快速切换处理 任务数量大于cpu核数  并行:一个cpu核处理一个任务,多个cpu核同时处理多个任务 任务数量等于或者小于 ...

  8. 前端经典面试题解密:JS的new关键字都干了什么?

    前言 new关键字在实例化获取对象时都做了什么?是一道经常出现在前端面试时的问题.如果只是简单的了解new关键字是实例化构造函数获取对象,是万万不能够的.更深入的层级发生了什么呢?同时面试官想从这道题 ...

  9. Activiti网关--包含网关

    1.什么是包含网关 包含网关可以看做是排他网关和并行网关的结合体:和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析它们:但是主要的区别是包含网关可以选择多于一条顺序流,这和并行网关一样,包 ...

  10. RedHat 6.7 下安装 Cadence IC617

    操作系统:RedHat 6.7 搭建一个RedHat的本地源[1]: # mount -o /dev/cdrom1 /mnt # mkdir -p /opt/redhat/6.7 # cp -rv / ...