文档章节

4-Hadoop1.x VS Hadoop2.x

crayzer_yixiu
 crayzer_yixiu
发布于 2016/09/11 00:52
字数 911
阅读 23
收藏 0

Hadoop 2.0 产生背景

  • Hadoop 1.0 中HDFS和MapReduce在高可用、扩展性等方面存在问题
    • HDFS 存在的问题
      • NameNode单点故障,难以应用于在线场景;
      • NameNode压力过大,且内存受限,影响系统扩展性。
    • MapReduce存在的问题
      • JobTracker访问压力大,影响系统扩展性;
      • 难以支持除MapReduce之外的计算框架,比如Spark、Storm等。

输入图片说明

HDFS 2.x

  • 解决HDFS 1.0 单点故障和内存受限问题。
  • 解决单点故障
  • 解决内存受限问题
    • HDFS Federation (联邦)
    • 水平扩展,支持多个NameNode;
    • 每个NameNode分管一部分目录;
    • 所有NameNode共享所有DataNode存储的资源。
  • 2.x仅是架构上发生了改变,使用方式不变
  • 对HDFS使用者透明
  • HDFS 1.x 中的命令和API仍可以使用

输入图片说明

  • 主备NameNode
  • 解决单点故障
    • 主NameNode对外提供服务,备NameNode同步主NameNode元数据,以待切换;
    • 所有DataNode同时向两个NameNode汇报数据块信息。
  • 两种切换选择
    • 手动切换:通过命令实现准备之间的切换,可以用HDFS升级等场合;(X)
    • 自动切换:基于Zookeeper实现。 (√)
  • 基于Zookeeper自动切换方案
    • Zookeeper Failove Controller:监控Namenode健康状态,并向Zookeeper 注册 Namenode
    • NameNode挂掉后,ZKFC为NameNode竞争锁,获得ZKFC锁的NameNode变为active

HDFS 2.x Federation

  • 通过多个namenode/namespace把元数据的存储和管理分散到多个节点中,使namenode/namespace可以通过增加机器来进行水平扩张。
  • 能把单个namenode的负载分散到多个节点中,在HDFS数据规模较大的时候也不会降低HDFS的性能。可以通过多个namsespace来隔离不同类型的应用,把不同类型应用的HDFS的存储和管理分派到不同的namenode中。

输入图片说明

YARN

  • YARN - Yet Another Resource Negotiator;
  • Hadoop 2.0 新引入的资源管理系统,直接从MRv1演化而来;
    • 核心思想:将MRv1中JobTracker的资源管理和任务调度两个功能分开,分别由ResourceManager和ApplicationMaster进程实现; -ResourceManager:负责整个集群的资源管理和调度;整个集群只有一个;
    • ApplicationMaster:负责应用程序相关的事务,比如任务调度、任务监控和容错等;一个应用程序对应一个ApplicationMaster;
  • YARN的引入,是的多个计算框架可运行在一个集群中
    • 每个应用程序对应一个ApplicationMaster;
    • 目前多个计算框架可以运行在YARN上,比如MapReduce、Spark、Storm等。

MapReduce On YARN

  • 运行在YARN之上的MapReduce称为MRv2;
  • 将MapReduce作业直接运行在YARN上,而不是运行在由JobTracker和TaskTracker构建的MRv1系统中;
  • 在Hadoop2.0中并不存在JobTracker和TaskTracker;

MRv2的模块基本功能:

  • YARN:负责资源管理和调度;
  • MRAppMaster:负责一个应用程序/作业的任务切分、任务调度、任务监控和容错;
  • Map/Reduce Task:任务驱动引擎,与MRv1一致;
  • 每个应用程序/作业(MapReduce作业)对应一个MRAppMaster
    • 单个应用程序/作业运行失败,不会影响其他应用程序/作业,由YARN重新启动;
    • 任务失败后,MRAppMaster重新申请资源;
    • 负责应用程序/作业相关的事务,包括将从YARN分配得到的资源二次分配给内部的任务、任务切分、任务健康和容错等;

输入图片说明

参看资料:

Hadoop 2.0中单点故障解决方案总结

© 著作权归作者所有

crayzer_yixiu
粉丝 26
博文 57
码字总数 87921
作品 0
杭州
高级程序员
私信 提问
视频jourk--hadoop2.2.0(第一个2.x的正式版本)框架介绍:笔记

hadoop2.x包括4个模块: common: hadoop的公共模块,以前叫core。包括通信模块等等。。。 HDFS: 分布式文件系统。 YARN: 任务调度和集群管理框架;是一个云操作系统/平台/框架(上面可以放很...

一枚Sir
2014/08/08
177
0
Hadoop相关文章索引(3)

环境部署 hadoop-2.7.0.tar.gz hadoop 2.6.0单节点-伪分布式模式安装 hadoop2.x配置jobHistory server(转) Hadoop2.7.2集群搭建详解(三台) 基本常识 Hadoop1.x和2.X的HDFS fsimage和edi...

司小幽
2018/08/22
0
0
hadoop2.x和hadoop1.x的区别

hadoop2.0解决了hadoop1.x版本的一些问题如:1.解决了namenode单点故障问题。 2.解决namenode内存压力过大难以扩展问题。 3.解决JobTracker单点故障问题。 4.解决JobTracker访问压力过大问题...

蓝狐乐队
2014/04/11
1K
0
Hadoop1.x和2.X的HDFS fsimage和edits文件运行机制对比

一、概述 之前写过一篇非常详细的,利用QJM在HDFS2.0部署HA策略的文章,主要说了利用QJM进行HA部署以及其原理(http://zengzhaozheng.blog.51cto.com/8219051/1441170 )。但是,其中没有详细...

zengzhaozheng
2018/07/02
0
0
hadoop2.x常用端口、定义方法及默认端口

以hadoop2.2为例完全分布式最新高可靠安装文档 http://www.aboutyun.com/thread-7684-1-1.html hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比 http://www.aboutyun.com/thread...

aibati2008
2016/04/13
74
0

没有更多内容

加载失败,请刷新页面

加载更多

cleanLastUpdated.bat

@echo offrem create by AnXiaole rem 这里写你的仓库路径set REPOSITORY_PATH=C:\Users\AnXiaole\.m2\repositoryrem 正在搜索...for /f "delims=" %%i in ('dir /b /s "%REPO......

安小乐
8分钟前
1
0
操作放大器的用法是什么?

  有区别   1、单级放大的倍数比较有限,一般在100倍以下。放大倍数很大的话,负反馈就比较浅,对于放大倍数的稳定性不利。假如需要放大倍数更高,就不得不动用多级放大电路了。单级放大...

仙溪
11分钟前
2
0
c++ 上传文件 curl

bool uploadFile(std::string url, std::string file, std::string auth) { boost::filesystem::path p(file); CURL *curl; CURLcode res; struct curl_httppost *for......

青黑
17分钟前
2
0
冒泡与插入排序的代码实现

// 冒泡排序,a 表示数组,n 表示数组大小public void bubbleSort(int[] a, int n) { if (n <= 1) return; for (int i = 0; i < n; ++i) { // 提前退出冒泡循环的标志位 ...

无名氏的程序员
20分钟前
3
0
centos7.6 +mhvtl1.6安装

以前的mhvtl都是在centos6.x,5.x上安装的mhvtl以前版本为1.4,现在最新的1.6出来,可以安装在centos7.6上,下面是安装过程: 1.安装基础包 centos7.6只要能上外网,默认是配置了yun源的,这些...

突突突酱
21分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部