HDFS之HA
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的更多相关文章
- 第九章 搭建Hadoop 2.2.0版本HDFS的HA配置
Hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作.在hadoop1时代,只有一个NameNode.如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了.这是 ...
- HDFS NameNode HA 部署文档
简介: HDFS High Availability Using the Quorum Journal Manager Hadoop 2.x 中,HDFS 组件有三个角色:NameNode.DataN ...
- HDFS的HA机制
传统的HDFS机制如下图所示: 也就是存在一个NameNode,一个SecondaryNameNode,然后若干个DataNode.这样的机制虽然元数据的可靠性得到了保证(靠edits,fsimage ...
- 使用QJM实现HDFS的HA配置
使用QJM实现HDFS的HA配置 1.背景 hadoop 2.0.0之前,namenode存在单点故障问题(SPOF,single point of failure),如果主机或进程不可用时,整个集群 ...
- HDFS的HA(高可用)
HDFS的HA(高可用) 概述 (1)实现高可用最关键的策略是[消除单点故障].HA 严格来说应该分成各个组件的 HA 机制:HDFS 的 HA 和 YARN 的 HA. (2)Hadoop2.0 之 ...
- Hdfs的HA高可用
1.Hdfs的HA高可用:保证Hdfs高可用,其实就是保证namenode的高可用,保证namenode的高可用的机制有两个,editlog共享机制+ZKFC.ZKFC就是ZookeeperFailO ...
- 大数据谢列3:Hdfs的HA实现
在之前的文章:大数据系列:一文初识Hdfs , 大数据系列2:Hdfs的读写操作 中Hdfs的组成.读写有简单的介绍. 在里面介绍Secondary NameNode和Hdfs读写的流程. 并且在文章 ...
- Hadoop 2.7.4 HDFS+YRAN HA部署
实验环境 主机名称 IP地址 角色 统一安装目录 统一安装用户 sht-sgmhadoopnn-01 172.16.101.55 namenode,resourcemanager /usr/local ...
- 【Hadoop 分布式部署 十:配置HDFS 的HA、启动HA中的各个守护进程】
官方参考 配置 地址 :http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabili ...
随机推荐
- UOJ#172. 【WC2016】论战捆竹竿 字符串 KMP 动态规划 单调队列 背包
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ172.html 题解 首先,这个问题显然是个背包问题. 然后,可以证明:一个字符串的 border 长度可 ...
- Laravel 5 中间件、路由群组、子域名路由、 权限控制的基本使用方法
创建控制器: php artisan make:controller Admin/IndexController 创建Middleware: php artisan make:middleware T ...
- Linux内核原理与分析-第二周作业
写之前回看了一遍秒速五厘米:如果
- JavaScript异步加载的三种方式——async和defer、动态创建script
一.script标签的位置 传统的做法是:所有script元素都放在head元素中,必须等到全部js代码都被下载.解析.执行完毕后,才能开始呈现网页的内容(浏览器在遇到<body>标签时才 ...
- event.target 和 event.currentTarget 的区别
event.target This property of event objects is the object the event was dispatched on. It is differe ...
- 【CF765F】Souvenirs 主席树
[CF765F]Souvenirs 题意:给你一个长度为n的序列{ai},有m个询问,每次询问给出l,r,问在所有$l\le x < y\le r$中,$|a_x-a_y|$的最小值是多少. $ ...
- python基础一 ------排序和查找算法
插入排序; 假设数组长度为n,先从第二个元素开始,与前一个元素比较,之后将较小的元素 放在前面,现在前两个元素是有顺序的,这时取第三个元素,与前一个元素(也就是第二个)比较,较小的放在前面 ...
- Web 录音
所需文件下载地址 链接:https://pan.baidu.com/s/1Dzbv8gPUZJ3T8Fe02hOJvg 提取码:zbgt py文件 from flask import Flask, j ...
- Java 基础 Java平台的3个版本
Java平台有3个版本:适用于小型设备和智能卡的JavaME(Java Platform Micro Edition,Java微型版).适用于桌面系统的JavaSE(Java Platform Sta ...
- Digest of Overview of Linux Kernel Security Features
Linux kernel Security: I. DAC: Discretionary Access Control, the core security model of UNIX. II. PO ...