一、Hadoop1.X痛点分析

上篇博客搭建了hadoop1.x的全分布式集群项目,角色及角色之间的关系如下图:

搭建完成后会发现有明显的问题,该集群只有一台服务器位 namenode角色,而在整个hadoop系统中,namenode的作用和责任又如此之大 ,如果namenode节点挂掉了,那么就意味着整个hadoop系统挂掉,因为所有的文件上传及管理操作及计算操作都是通过client(客户端)去请求namenode,namenode再去调用datanode。

痛点一、所以只有一台namenode节点是 不可靠的。统称:单点故障

痛点二、而只有一台namenode节点,当大量的客户端并发操作的时候,肯定会降低namenode的响应速度,所以从性能角度,hadoop1.X也是存在着很大的 弊端。统称:内存受限

二、Hadoop2.X提供的解决方案

Hadoop 2.x由HDFS、MapReduce和YARN三个分支构成;

HDFS:分布式文件系统

MapReduce:运行再YARN上的MR,用于离线计算,基于磁盘I/O计算。

YARN:资源管理系统

针对痛点一:解决单点故障

          HDFS  HA:  

解释:HA是high alive,高可用的意思,通过部署主备namenode来解决。2.X需要部署 两台namenode,3.X可部署 三台,如果主namenode发生故障,则切换至备namenode上。

针对痛点二:解决内存首先问题

           HDFS Federation(联邦):

                      解释:类似HA的思想,水平扩展,部署多台namenode,所有的namenode服务器共享所有的datanode存储 的资源。但是每台namenode上只能操作和分管一部分目录。

三、2.X中,HA详解

从下往上开始说明

1.最下面是datanode节点服务器。

2.往上为两台namenode节点,一台为active(活跃状态),一台为standby(备用状态),只能有一台active。当active的namenode节点挂掉后,standby状态的namenode状态变为active,并将挂掉的namenode状态强制改为standby状态。

主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换。

所有DataNode同时向两个NameNode汇报数据块信息(位置)

3.JournalNodes(JN集群 ):在1.X版本中,通过搭建一台secondary namenode节点来记录"所有操作"到edits文件,然后存放在namenode上。在2.x版本中,为了同步两台namenode节点,”所有操作“都记录在JN上,然后为解决JN存在单点故障的问题,所以应用JN集群,官方要求最少3台,允许挂掉一台。

到此已经可以把2.X的hadoop跑起来了,但是此时的HA环境,当active状态的namenode节点挂掉后,需要手动的去改standby状态的namenode。我需要的是这种情况下的自动状态切换,所以就需要应用了zookeeper集群。

4.zookeeper集群:zk是是分布式应用程序协调服务,避免单点故障发生,用zk集群。通过配置后,他会在namenode上开启一个zkfc线程(zookeeper  FailoverController)来监测NN的健康状态。当然这个监测行为并不是主动的,是standby的NN委托ZK监测active的NN。

四、2.X中 ,HDFS Federation(联邦)详解

待更新

大数据学习系列(九)Hadoop1.X痛点分析及Hadoop2.X提出的解决方案相关推荐

  1. 大数据学习系列----大数据项目的思考

    2019独角兽企业重金招聘Python工程师标准>>> 最近做了一个大数据可视化的项目,目前阶段还仅仅对我们关心的指标做一些年度,季度,月度维度的汇总和展示,提供了简单的纵向横向的指 ...

  2. 大数据学习系列之八----- Hadoop、Spark、HBase、Hive搭建环境遇到的错误以及解决方法

    大数据学习系列之八----- Hadoop.Spark.HBase.Hive搭建环境遇到的错误以及解决方法 参考文章: (1)大数据学习系列之八----- Hadoop.Spark.HBase.Hiv ...

  3. 大数据学习系列:Hadoop3.0苦命学习(一)

    传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...

  4. 大数据学习系列:Hadoop3.0苦命学习(五)

    传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...

  5. 大数据学习系列:Hadoop3.0苦命学习(七)

    传送门: 大数据学习系列:Hadoop3.0苦命学习(一) 大数据学习系列:Hadoop3.0苦命学习(二) 大数据学习系列:Hadoop3.0苦命学习(三) 大数据学习系列:Hadoop3.0苦命学 ...

  6. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  7. “卜算子·大数据”学习系列原创文章、源码——从入门到精通

    大数据 big-data :white_check_mark: 转载请注明出处与作者信息(如下) 原创作者:王小雷 作品出自:https://github.com/wangxiaoleiAI/big- ...

  8. 大数据学习系列----基于Spark Streaming流式计算

    2019独角兽企业重金招聘Python工程师标准>>> 个性化的需求 随着互联网知识信息指数级膨胀,个性化的需求对于用户来说越来越重要,通过推荐算法和用户点击行为的流式计算可以很简单 ...

  9. Flink-1.17.0(Standalone)集群安装-大数据学习系列(四)

    前置:集群规划 机器信息 Hostname k8s-master k8s-node1 k8s-node2 外网IP 106.15.186.55 139.196.15.28 47.101.63.122 ...

最新文章

  1. 网游生命周期在百度指数曲线上呈“M”形分布,各阶段搜索行为呈一定特征
  2. Asp.net服务器端控件CheckBoxList的使用心得
  3. C/C++指针错误与调试相关学习总结
  4. java基础之访问控制符
  5. 浙大慕课c语言答案,程序设计入门——C语言
  6. 小米9全面现货还降价,米粉却心情复杂?
  7. 面试中被问到HashMap的结构,1.7和1.8有哪些区别?这篇做深入分析!
  8. grpc 可以传递context嘛_Python中使用gRPC方法示例
  9. BuzzFeed如何从Perl单体应用迁移到Go和Python微服务
  10. 首届电子商务AI算法大赛 Organized by automlai
  11. bp神经网络图像压缩原理图,bp神经网络图像分类
  12. JavaScript:点击按钮打开/关闭网页
  13. joomla网页加速插件
  14. directadmin(DirectAdmin Extended)
  15. 让你的动画不再生硬 Android插值器Interpolator使用秘籍
  16. monit 内存 监控_mac系统监控软件Monity for Mac
  17. 【UER #4】量子态的棋盘
  18. myftpadmin+proftpd+mysql架设ftp服务器_proftpd – 碎言碎语
  19. revit建模中两面墙贴在一起怎么插入门窗及隐框玻璃的做法
  20. 软件测试工程师未来发展前景

热门文章

  1. ElasticSearch(ES)详解(二)
  2. nginx $remote_addr 详解
  3. 【SQL必知必会】002-基础篇:了解SQL:一门半衰期很长的语言
  4. 字符串及有效长度(字节数)计算
  5. linux kernel build
  6. 潜规则------中国历史中的真实游戏 吴思
  7. 源代码VS业务的悟道——知行合一
  8. IDEA(或Android Studio)CamelCase插件的使用(解释了CamelCase插件无法使用问题)
  9. css 设置字间距、字母间距和汉子间距
  10. matlab模糊自适应pid控制仿真程序,模糊自适应整定PID控制matlab仿真程序(刘金锟-先进PID控制及其MATLAB仿真)...