HDFS高可用环境HA的架构

HDFS组件由一个对外提供服务的namenode(存储元数据)和N个datanode组成;Zookeeper有三个作用:1.为了统一配置文件 config 2.多个节点的进程要修改公共变量的话,zookeeper会加一个锁 3.仲裁 (必须是奇数个节点,自己组成一个集群,叫Ensemble) HA:多了一台NameNode(standby),datanode同时向NameNode(Active)和NameNode(standby)发送心跳。当提交一个上传任务put的时候,连接的只能是NameNode(active)。元数据有两个,分别是fsimage和editlog(存放这对元数据信息的更改),通过奇数个(至少3个)进程JPS(JournalNode,超过一半接收到editlog就)推送日志给NameNode(standby)来保证数据的一致性。Zookeeper Failover Controller(简称zkfc,汇报Active standby节点的健康情况给Zookeeper),如果超过二分之一Zookeeper的server接收到了来自同一个zkfc发来的病情恶化的信息,自动进行主备切换,另一边恶化的马上进行隔离,不对外提供服务,以免造成数据不一致。通过SSH登录,直接kill进程或者shutdown,后期再反做HA

一般HA是针对HDFS组件的,当然在Yarn组件里也可以由HA;Yarn组件里Resource Manager最重要(有问题,会导致作业提交不了,数据不会遗失)

HA搭建

一般HA是针对HDFS组件的,当然在Yarn组件里也可以有HA;Yarn组件里Resource Manager最重要(有问题,会导致作业提交不了,数据不会遗失) 可扩展的集群,hdfs和yarn主节点ha都要做。 instances里边有哪些角色,分布在哪些节点。有一项Enable High Availability,首先要配置的是nameservice name 。在做hadoop fs -ls这个命令的时候,要先找到namenode,怎么找到Namenode的,在配置文件里 vim /etc/hadoop/conf/ 若果集群是用CM来管的话,所有的配置文件都存在cloudera Manager的后台数据库里,cat /etc/cloudera-scm-server/db.properties 如果要手动改已经用CM管理的集群的配置,vim /etc/hadoop/conf/hdfs-site.xml,关于服务的配置不起作用,关于客户端的配置起作用。 做了HA时,client不在乎那个namenode节点处理请求,客户端的hdfs-site.xml会写统一的名字,会统一发送到nameservice name,然后nameservice name再映射到两个做HA的主机。类同于Oracle的RAC,对外提供服务的永远是scanname,scanname后台绑3个ip,浮动在任意的多台主机上选三台,轮询的访问。

添加集群节点:

一台新的linux系统主机,配好网络,更新hosts文件,关闭iptables,关闭selinux,setenforce 0,时间需要同步,时区需要改; 在cloudera Manager里 hosts,add new hosts to cluster,输入ip地址;选择CDH的版本,我们选择自定义的源(之前搭建好的安装服务器),Navigator是cloudera 云部署的组件,不用管,选None。Cloudera Manager Agent选之前搭建好的CM源,continue。install jdk 选上,continue,其他用户、密码(跟之前一样),continue,开始安装。可以点detail查看安装过程; swappiness还没改,透明大页也没改。接下来选择角色:可以是hdfs的datanode,yarn组件里的node manager,取个名字newnode。如果手工做,可以查看cloudera manager的日志,看看做了哪些操作。

Zookeeper server的角色三台都选上,一台leader,两台follower。 HA:Enable High Availability 再选择一个NameNode Host;选择journalNode,三个都选上;continue; 在这之前,来看看Zookeeper的配置, cd /usr/lib/zookeeper/bin/ ./zkCli.sh -server monkey:2181 出问题报错 是不是java的环境变量没设,echo $JAVA_HOME,果然。java -version 查看版本 cd /usr/java/ ls 把环境变量写好 vi java.txt 执行一下 bash java.txt java -version cd /usr/lib/zookeeper/bin/ ./zkCli.sh -server monkey:2181 cloudera manager 的 review Changes里,设置好journalNode edit directory。然后就是创建HA的过程,分为这么多步。finish!再到instance里 就能看到HA,在Zookeeper的文件夹里也多了一个hadoop.ha,说明namenode ha的应用在Zookeeper上托管。Zookeeper在这里主要做举手表决,如何切换这个动作都是Zookeeper来决定的。

HDFS之HA的更多相关文章

  1. 第九章 搭建Hadoop 2.2.0版本HDFS的HA配置

    Hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作.在hadoop1时代,只有一个NameNode.如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了.这是 ...

  2. HDFS NameNode HA 部署文档

    简介: HDFS High Availability Using the Quorum Journal Manager Hadoop 2.x 中,HDFS 组件有三个角色:NameNode.DataN ...

  3. HDFS的HA机制

    传统的HDFS机制如下图所示: 也就是存在一个NameNode,一个SecondaryNameNode,然后若干个DataNode.这样的机制虽然元数据的可靠性得到了保证(靠edits,fsimage ...

  4. 使用QJM实现HDFS的HA配置

    使用QJM实现HDFS的HA配置 1.背景 hadoop 2.0.0之前,namenode存在单点故障问题(SPOF,single point of failure),如果主机或进程不可用时,整个集群 ...

  5. HDFS的HA(高可用)

    HDFS的HA(高可用) 概述 (1)实现高可用最关键的策略是[消除单点故障].HA 严格来说应该分成各个组件的 HA 机制:HDFS 的 HA 和 YARN 的 HA. (2)Hadoop2.0 之 ...

  6. Hdfs的HA高可用

    1.Hdfs的HA高可用:保证Hdfs高可用,其实就是保证namenode的高可用,保证namenode的高可用的机制有两个,editlog共享机制+ZKFC.ZKFC就是ZookeeperFailO ...

  7. 大数据谢列3:Hdfs的HA实现

    在之前的文章:大数据系列:一文初识Hdfs , 大数据系列2:Hdfs的读写操作 中Hdfs的组成.读写有简单的介绍. 在里面介绍Secondary NameNode和Hdfs读写的流程. 并且在文章 ...

  8. Hadoop 2.7.4 HDFS+YRAN HA部署

    实验环境 主机名称 IP地址 角色 统一安装目录 统一安装用户 sht-sgmhadoopnn-01 172.16.101.55 namenode,resourcemanager /usr/local ...

  9. 【Hadoop 分布式部署 十:配置HDFS 的HA、启动HA中的各个守护进程】

    官方参考 配置 地址  :http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabili ...

随机推荐

  1. Scala集合常用方法解析

    Java 集合 : 数据的容器,可以在内部容纳数据  List : 有序,可重复的  Set : 无序,不可重复  Map : 无序,存储K-V键值对,key不可重复 scala 集合 : 可变集合( ...

  2. elk安装&集群配置

    ---恢复内容开始--- 这里我用以elasticsearch-5.3.2.kibana-5.3.0.logstash-5.3.0的版本为例: 1.创建elastic用户,这里elasticsearc ...

  3. django——面试题(已工作,暂停更新)

    谈谈你对HTTP协议的认识. 什么是协议? 协议,是指通信的双方,在通信流程或内容格式上,共同遵守的标准. 什么是http协议? http协议,是互联网中最常见的网络通信标准. http协议的特点 ① ...

  4. Codechef August Challenge 2018 : Safe Partition

    传送门 (虽然是A了但是不知道复杂度是不是正确的 考虑以某个位置为结尾的合法划分 先考虑min,带来的影响是限制了最小长度,预处理出这个最小长度后,这可以在处理到这个数时,把不能算的部分去掉(不满足m ...

  5. Java逆向武器库_反编译工具

    1.反编译工具之_jd-gui 官网下载地址:http://java-decompiler.github.io/#jd-gui-download 使用: 下载后解压直接使用即可. jd-gui的优势是 ...

  6. Linux 定时任务调度(crontab命令)

    crond 是Linux下用周期性的执行某种任务或者等待处理某些事件的一个守护进程,crond 进程会每分钟定期检查是否有要执行的任务,如果有要执行的任务则自动执行该任务 Linux 下的任务调度 系 ...

  7. QVM 实操记 - 18.12.28

    视频回放地址:https://i.iamlj.com/mp4/QVM-IMC-12.27-1080P.mp4 目录 目录 常规开发部署流程 准备工作 开发准备 网站部署 操作步骤 重装系统 LANP环 ...

  8. swust oj 982

    输出利用二叉树存储的普通树的度 1000(ms) 10000(kb) 2619 / 5991 普通树可转换成相应的二叉树(该二叉树的根结点一定缺少右儿子),反之亦然.故而可以根据相应的转换方法去统计某 ...

  9. CQL语句

    CQL中默认忽略大小写,若需要大小写敏感,可使用双引号将对象包起来,引用的时候也要用双引号包住 tips: 使用CQL需要预装Python环境 Ⅰ.基本知识点 1.1 数据类型 这边和关系型数据库相近 ...

  10. ASO的效果应该如何去评判,有什么标准可以量化指标

    ASO的效果应该如何去评判,有什么标准可以量化指标 以往我们主要会教大家怎么做 ASO 优化,优化中有什么技巧……在掌握ASO优化技巧之后,从执行层面来考虑,就该选择流量平台了. 目前市场上的流量平台 ...