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 ...
随机推荐
- freemaker 操作字符串
来源于博客:https://blog.csdn.net/qq_35624642/article/details/72926769 Freemarker操作字符串 1.substring(start,e ...
- VMware和Centos安装使用
下载centos系统ISO镜像 要安装centos系统,就必须得有centos系统软件安装程序,可以通过浏览器访问centos官网http://www.centos.org,然后找到Downloads ...
- 置信区间-显著性-P-值
1.置信区间:误差范围(区间)在统计概率中就叫做置信区间:简单来说置信区间就是误差范围 我们用中括号[a,b]表示样本估计总体平均值的误差范围的区间,由于a和b的确切数值取决于你希望自己对于“该区间包 ...
- [LeetCode] K-th Symbol in Grammar 语法中的第K个符号
On the first row, we write a 0. Now in every subsequent row, we look at the previous row and replace ...
- CF_2018-2019 Russia Open High School Programming Contest (Unrated, Online Mirror, ICPC Rules, Teams Preferred)
只做了两个就去上课去啦... A. Company Merging time limit per test 1 second memory limit per test 512 megabytes i ...
- ArcGIS AddIn 批量设置栅格图层背景色为透明
protected override void OnClick() { // // TODO: Sample code showing how to access button host // Arc ...
- JMM(java Memory Model)到底是什么?
经历过很多面试大部分都会问一句: 你知道Java内存模型么? 然后我就pulapula的说一大堆什么堆呀,栈呀,GC呀什么的,这段时间把JVM虚拟机和多线程编程完整的学习了一遍,发现JMM和堆/栈这 ...
- OO第三次博客作业
一.规格化的发展历史 最早的程序设计都是面向机器,从一开始使用的机器语言,到后面的汇编语言,都是面向机器的语言,编写困难也容易出错.随着需求的发展,程序的编写从面向机器走向面向过程,但由于goto语句 ...
- Linux服务器tomcat启动很慢
Linux服务器tomcat启动很慢 步骤: 一:找到 java 位置 whereis java 输出内容(部分):/usr/lib/java ...... 二:进入到 lib 目录 cd /usr ...
- Vue 前端面试题
Vue 前端面试题 1. 说一下 Vue 的双向绑定数据的原理 vue 实现数据双向绑定主要是:采用数据劫持结合“发布者 - 订阅者”模式的方式,通过 Object.defineProperty() ...