介绍hadoop不同版本的区别

hadoop1.0

hadoop1.0是最早的版本,只是在google上发表的三篇论文转变过来的。所以hadoop1.0在开发过程当中存在诸多的缺陷,hadoop1.0主要是有HDFS(分布式系统)和一个分布式计算框架(MapReduce)组成的。

对于HDFS,hadoop1.0常用的是主从架构,其中主节点是namenode节点,从节点是datanode节点,对于HDFS的介绍可以参考:

hadoop1.0中,NameNode节点有且只有一个,虽然可以通过SecondaryNameNode进行主节点数据备份,但是存在延时情况,假如主节点挂掉,这时部分数据还未同步到SecondaryNameNode节点上,就会存在资源数据的缺失。因为NameNode是存储着DataNode节点等元数据信息。

对于MapReduce,hadoop1.0也是一个简单的主从结构,是有一个主JobTracker和多个从的TaskTracker组成,而且在hadoop1.0中JobTracker任务繁重:

1.1:负责接收客户端的计算任务,同时要把任务分发给TaskTracker进行执行

1.2:通过心跳机制来管理TaskTracker节点的运行情况。

hadoop2.0

针对hadoop1.0中在HDFS、MapReduce在高可用的、扩展性等方面存在的问题,hadoop做了相应的改进。

2.1、从HDFS上改进:

hadoop2.0增加了HDFS HA机制,解决了hdfs1.0中的单点故障问题,通过HA进行standbynamenode的热备份。

hadoop2.0增加了HDFS Federation(联邦)水平扩展,支持多个namenode同时运行,每一个namenode分管一批目录,然后共享所有datanode的存储资源,从而解决1.0当中单个namenode节点内存受限问题。

hadoop2.0虽然HDFS架构上发生了一些变化,但是使用方式不变,1.0当中相关的命令与API任然可以继续使用。

2.2、从MapReduce上改进:

在hadoop2.0当中增加了YARN框架,针对hadoop1.0中主JobTracker压力太大的不足,把JobTracker资源分配和作业控制分开,利用Resource Manager在namenode上进行资源管理调度,利用ApplicationMaster进行任务管理和任务监控。由NodeManager替代TaskTracker进行具体任务的执行,因此MapReduce2.0只是一个计算框架。对比hadoop1.0中相关资源的调用全部给Yarn框架管理。

hadoop3.0

hadoop2.0之后版本就相对稳定,大部分实际生产环境中都使用的是2.0,包括本次我们教程也是基于2.0上进行讲解,hadoop3.0主要增加了一些性能上的优化和支持:

3.1、java运行环境升级为1.8,对之前低版本的Java不在支持。

3.2、HDFS3.0支持数据的擦除编码,调高存储空间的使用率。

3.3、一些默认端口的改变。

3.4、增加一些MapReduce的调优。

hdp对应hadoop的版本_hadoop不同版本区别相关推荐

  1. Hadoop详解以及历史版本介绍

    Hadoop详解 Hadoop的介绍以及发展历史 Hadoop之父Doug Cutting Hadoop最早起源于lucene下的Nutch.Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页 ...

  2. Cloudera Manager安装之利用parcels方式(在线或离线)安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(Ubuntu14.04)(五)...

    如果大家,在启动的时候,比如遇到如下问题,则 明明已经授权了啊,怎么被拒绝,纳尼??? 解决办法 然后,再来这样,就可以了. 注意,在此之前. ubuntucmbigdata1机器上,则需要执行 bi ...

  3. linux下安装gcc及设置多版本gcc多版本共存(如果enable静态库,会报错,不知道为什么,忽略静态库就没问题了)...

    背景:1.在做文本挖掘的时候,安装"结巴"算法包,需要gcc版本>4.6,但是不知道是不是有内核或其他东西是gcc低版本支持的,只好安装多版本: 2.linux版本:Red ...

  4. Cloudera Manager安装之利用parcels方式安装单节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(四)...

    前期博客 Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式.rpm方式和yum方式) 说在前面的话(看清楚就好!!!) 我这篇博客,是两种方式都 ...

  5. Cloudera Manager安装之利用parcels方式安装3或4节点集群(包含最新稳定版本或指定版本的安装)(添加服务)(CentOS6.5)(五)...

    参考博客 Cloudera Manager安装之利用parcels方式安装单节点集群  Cloudera Manager安装之Cloudera Manager 5.3.X安装(三)(tar方式.rpm ...

  6. nodejs高版本转低版本

    需要安装 第一步: npm install --save-dev babel-register npm install --save-dev babel-polyfill //由于只安装babel-r ...

  7. .NET 获取客户端的操作系统版本、浏览器版本和IP地址

    我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取. .NET 获取客户端的操作系 ...

  8. linux下查看GPU版本和详情信息 CUDA版本信息 anaconda版本信息

    查看GPU型号 lspci | grep -i nvidia 查看NVIDIA驱动版本 sudo dpkg --list | grep nvidia-* # lspci | grep -i nvidi ...

  9. miui 8 android对应关系,小米回应MIUI版本和安卓版本没有对应关系 你怎么看

    MIUI是基于Android原生系统和针对中国用户使用习惯开发的Android Rom,MIUI深受手机发烧友喜爱.MIUI是基于Android原生系统和针对中国用户使用习惯开发的Android Ro ...

  10. Android SDK版本和ADT版本

    Android早期的版本号有点"混乱",比如Android 2.2对应的ADT版本为ADT-0.9.9 而Android 2.3对应的的ADT版本则突然"跃迁" ...

最新文章

  1. FD.io/VPP — 常用指令集合
  2. asp.net七层架构是指什么
  3. 二值信号量和互斥锁到底有什么区别?
  4. Spring Data JPA 教程(翻译)
  5. Jetty在win10上的配置,IDEA中配置Jetty,Maven中配置Jetty插件,Eclipse中配置Jetty插件及其使用,通过java代码内嵌Jetty Server
  6. python的for语句打印金字塔图形_python实现输入任意一个大写字母生成金字塔的示例...
  7. java字节码_掌握Java字节码
  8. 系统固件升级_固件和操作系统之间的差异
  9. python识别验证码ocr_Python3使用tesserocr识别字母数字验证码
  10. Scala的所有符号运算符都意味着什么?
  11. Centos 03 基础命令
  12. 数据增强操作(旋转、翻转、裁剪、色彩变化、高斯噪声等)
  13. ASEMI低压差线性稳压器AMS1117详解
  14. hash与history 以及区别
  15. android 查看路由器ip,如何查看路由器ip地址进入登录页面
  16. 2018.8 安徽师大附中培训游记
  17. oracle 分区表,分区索引
  18. Vue app.js文件过大,带宽占用过大,优化方案(持续优化)
  19. 多道批处理操作系统和分时操作系统的概念
  20. 阿里云相关-云服务器ECS

热门文章

  1. 利用python构建信用卡评分
  2. html注册页面教程视频,新手建站HTML 学习系列视频教程之HTML 简介
  3. 大师之路解惑基础概念篇:Tomcat与servlet联系与区别
  4. vue3 tinymce富文本插件
  5. Nature、Science、Cell、Plos系列顶级学术杂志解析
  6. JS基础-下拉菜单案例
  7. AspNetPager常用属性及用法 / URLRewrite伪静态与AspNetPager分页控件的结合
  8. 经典问题之约瑟夫问题_C语言实现
  9. 阿拉伯数字转换成人民币大写金额的方法
  10. Leetcode|DFS|130. 被围绕的区域