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 ...
随机推荐
- fillder--修改返回数据
fillder面板中抓到想要的URL后: ①.在需要修改的url---右键------UNclocking For Editing(解除编辑功能) ②.承接上步,在数据结果的TextView模式下,返 ...
- Python 中文(大写)数字转阿拉伯数字(转)
# constants for chinese_to_arabic CN_NUM = { '〇' : 0, '一' : 1, '二' : 2, '三' : 3, '四' : 4, '五' : 5, ' ...
- h5怎么做分享到QQ 、朋友圈、微信 、微博等功能
微信已经成为我们日常聊天联系基本的必备工具,所以小菜我首先介绍一下如何调用微信的分享功能.其实除了可以在微信上分享到朋友圈和发送给好友,微信的分享接口还提供了分享到QQ和分享到腾讯微博等,就是在页面的 ...
- C_使用clock()函数获取程序执行时间
clock():捕捉从程序开始运行到clock()被调用时所耗费的时间.这个时间单位是clock tick ,即“时钟打点”. 常数CLK_TCK:机器时钟每秒所走的时钟打点数. #include & ...
- ftp搭建安装
本文摘要:https://jingyan.baidu.com/article/380abd0a77ae041d90192cf4.html FTP 是File Transfer Protocol(文件传 ...
- JDBC API 事务的实践
使用了持久化框架几乎没有使用过原生的jdbc API ,发现原来使用jdbc API来实现事务也是很简单的. 数据库的链接connection具有一个属性autocommit,这个属性默认是true, ...
- nagios的安装与部署
参考文献: https://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html https://www.jianshu.com/p/3476d ...
- WinForm打包或部署
一.新建InstallShield项目 二. 三. 四. 五. 六. 七. 最后重新生成,安装包一般在E\Setup1\Setup1\Express\SingleImage\DiskImages\DI ...
- jquery easyui datagrid 如何第一次点击列标题时是降序排列
使用 EasyUI的onBeforeLoad事件,在发回到服务器查询之前,修改排序和对应的图标样式. 1.配置回调函数 data-options='onBeforeLoad:fnOnBeforeLoa ...
- 19.3.20 cmd操作:1.dir查看当前文件夹内的文件;2.alt+space+c关闭cmd窗口
cmd操作记录: 1.dir:查看当前文件夹内的所有文件: 2.alt+space+c:关闭打开的cmd窗口: