Hadoop2.2.0

GA release 通用版本,Hadoop2.2.0就是一个通用版本

Hadoop2.2.0是从Hadoop1.1.0升级过来的,增加了以下特性:

  1.增加了YARN;

  2.HDFS增加了HA;

  3.HDFS增加了Federation;

  4.HDFS增加了快照 ;

  5.HDFS的读写使用了NFSv3;

  6.Hadoop可以支持运行在Windows;

  7.和Hadoop1的MR二进制兼容性 ;

  8.增加了一些和生态系统中其他产品的测试类。

YARN是“Yet Another Resource Negotiator”的简称,它是Hadoop2.0引入的一个全新的通用资源管理系统,可在其上运行各种应用程序和框架,比如MapReduce、Tez、Storm等,YARN是在MRv1的基础上衍化而来的,相似的资源管理系统还有mesos;

HA是High Availability,是为了解决HDFS 的NameNode单点故障问题,方案是通过主备切换,主备NameNode共享元数据信息;

HDFS Federation是为了解决HDFS NameNode单点内存受限问题,它允许集群中存在多个NameNode,每个NameNode分管一部分目录;

HDFS 快照是指HDFS文件系统的某一时刻的只读镜像,它的出现使得管理员可定时为重要文件或者目录做快照,以防止数据误删、丢失等;

通过NFSv3访问HDFS,NFS允许用户像访问本地文件系统一样访问远程文件系统,简化了HDFS的使用,这是通过引入了NFS gateway服务实现的,将NFS协议转换为HDFS访问协议


Hadoop2.3.0

新特性:

  1.异构层次化存储架构;

  2.DateNode 缓存;

  3.MR的自动化部署。

在之前的版本,HDFS的存储介质是磁盘,不管是热数据还是冷数据,随着新型介质的日益成熟,HDFS开始支持异构介质,即同一个Hadoop集群可以用同时使用多种存储介质,用户可根据需要将不用的数据存在不同的介质中,比如热点数据存在SSD上,冷数据存在磁盘上;

HDFS DateNode之前没有考虑数据缓存,随着内存计算框架的兴起,Hadoop也不想把自己局限在离线处理和分析上,而是能够同时指出离线分析和在线分析,为了指出在线处理,就要降低延迟,提高性能,其中个人觉得可观的就是Tachyon存储系统;

在Hadoop 2.0中,MapReduce jar包是同YARN和HDFS jar包打包在一起的,部署Hadoop时会一同被分发到各个节点上的,这实际上违背了YARN的设计初衷。YARN是一个资源管理系统,其上面所有应用程序不需要事先部署到各个节点上,只需在客户端存在一份jar包,然后由YARN自动分发到各个节点上即可,为此,Hadoop 2.3.0对此进行了修正。


Hadoop2.4.0

新特性:

  1.HDFS支持ACL;

  2.HDFS支持在线升级;

  3.HDFS支持https协议;

  4.YARN RM容错;

  5.增加了Application Timeline Server;

  6.Capacity scheduler 支持资源抢占。

ACL权限控制机制是对HDFS现有的基于Linux文件访问权限控制的补充;

?Application Timeline Server还不是特别了解;


Hadoop2.4.1

修改了2.4.0中HDFS管理子命令refreshNamenodes, deleteBlockPool 和 shutdownDatanode权限检查的BUG


Hadoop2.5.0

新特性:

  1.改进了HTTP代理服务器的认证;

  2.增加了一个新的Hadoop指标监控sink,允许直接写到Graphite;(不太了解)

  3.改善了Hadoop文件系统兼容相关的规范;

  4.支持 POSIX风格的扩展文件系统;

  5.支持离线image浏览,客户端现在可以通过WebHDFS的API浏览一个fsimage;

  6.NFS网关得到大量可支持性的改进和bug修复。Hadoop portmapper不在需要运行网关,网关现在可以拒绝没有权限的端口的连接;

  7.优化了web UI;

  8.YARN的REST API现在支持写/修改操作。用户可以用REST API提交和杀死应用程序;

  9.时间线存储到YARN,用来存储一个应用通用的和特殊的信息,支持Kerberos认证;(不太了解)

  10.公平调度器支持动态分层用户队列,运行时,用户队列在任一指定的父队列中被动态的创建。


Hadoop2.5.1

修改了一些BUG。


Hadoop2.5.2

修改了一些BUG。


Hadoop2.6.0

在2.6.0中增加了许多beta版的东西,感觉还是有前景,不过可以预见的是后面必然后又2.6.X的不断修复,也可以说是不成熟的Hadoop版本。

其中比较感兴趣的或者说会非常有价值的两个特性是labels based scheduling和Support running of applications natively in Docker containers,从支持docker容器来看,Hadoop社区还是比较紧跟技术更迭的,一时半会儿绝对不像某些人说的那样淘汰的!

直接引用董的博客,写的很好:

什么是Label based scheduling?

故名思议,Label based scheduling是一种调度策略,就像priority-based scheduling一样,是调度器调度众多调度策略中的一种,可以跟其他调度策略混合使用,实际上,hadoop也是这样做的。但是,相比于其他调度策略,基于标签的调度策略则复杂的多,这个feature的代码量非常大,基本上需要修改YARN的各个模块,包括API, ResourceManager,Scheduler等。该策略的基本思想是:用户可以为每个nodemanager标注几个标签,比如highmem,highdisk等,以表明该nodemanager的特性;同时,用户可以为调度器中每个队列标注几个标签,这样,提交到某个队列中的作业,只会使用标注有对应标签的节点上的资源。举个例子:

比如最初你们的hadoop集群共有20个节点,硬件资源是32GB内存,4TB磁盘;后来,随着spark地流行,公司希望引入spark计算框架,而为了更好地运行spark程序,公司特地买了10个大内存节点,比如内存是64GB,为了让spark程序与mapreduce等其他程序更加和谐地运行在一个集群中,你们希望spark程序只运行在后来的10个大内存节点上,而之前的mapreduce程序既可以运行在之前的20个节点上,也可以运行在后来的10个大内存节点上,怎么办?有了label-based scheduling后,这是一件非常easy的事情,你需要按一以下步骤操作:

步骤1:为旧的20个节点打上normal标签,为新的10个节点打上highmem标签;

步骤2:在capacity scheduler中,创建两个队列,分别是hadoop和spark,其中hadoop队列可使用的标签是nornal和highmem,而spark则是highmem,并配置两个队列的capacity和maxcapacity。

如何配置使用Label based scheduling?

首先,要选择apache hadoop 2.6或hdp2.2(可使用ambari部署)发行版。

之后按照以下步骤操作:

步骤1:添加系统级别的label(相当于所有label的全集),注意,各个节点上的label必须都在系统级别的label中。

yarn rmadmin -addToClusterNodeLabels normal,highmem

步骤2:为各个节点分别添加label(可动态修改)

yarn rmadmin -replaceLabelsOnNode “nodeId,label1,label2,…,labeln”

注意,nodeId是nodemanager的唯一标示,注意,一个节点上可以有多个nodemanager,每个nodemanager的nodeid可以在ResourceManager界面上看到,通常有host和PRC port拼接而成,默认情况下,各个nodemanager的RPC port是随机选取的,你可以将所有的nodemanager配置成一样的,便于管理:

<property>

<name>yarn.nodemanager.address</name>

<value>0.0.0.0:45454</value>

</property>

步骤3:配置label重启恢复功能。这样,label信息会保存到hdfs上(默认是保存在内存中的),之后yarn重新启动,可以自动恢复所有label信息:

<property>

<name>yarn.node-labels.manager-class</name>

<value>org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager</value>

</property>

步骤4:修改capacity scheduler相关配置,设置每个队列对应的label,以及每中label的资源上下限。具体配置,可参考相关资源。

总结

基于标签的调度策略是hadoop yarn新引入的feature,它能让YARN更好地运行在异构集群中,进而更好地管理和调度混合类型的应用程序。


Hadoop2.7

Common
当使用HTTP proxy server时,认证有所加强.这是对于使用proxy server访问WebHDFS是非常有用的;
一种hadoop新的允许直接写Graphite的标准库;
规范了HCFS(Hadoop Compatible Filesystem )的相关帮助;

HDFS
支持POSIX风格的FileSystem扩展属性;
使用 OfflineImageViewer, 客户端可以通过 WebHDFS API查看fsimage;
NFS网关做了些改进和bug修复。 Hadoop portmapper 不在需要运行网关, 网关可以拒绝非特权端口连接;
SecondaryNameNode, JournalNode, and DataNode 已经可以可视化;

YARN
YARN’s REST APIs 现在支持 写/修改 操作. 用户可以通过REST APIs提交和 kill应用程序;
时间存储在yarn中,为applications的存储和应用的通用具体信息,支持通过Kerberos认证
公平调度器支持动态的按等级划分队列,用户队列可以动态的创建在其它父队列里;

在2.7中Hadoop开始不再支持JDK1.6


大部分内容分摘自官网(http://hadoop.apache.org/releases.html#News)和董的博客(http://dongxicheng.org/)

Hadoop从2.2.0到2.7的更多相关文章

  1. Hadoop上路-01_Hadoop2.3.0的分布式集群搭建

    一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...

  2. 【hadoop】hadoop3.2.0的安装并测试

    前言:前段时间将hadoop01的虚拟机弄的崩溃掉了,也没有备份,重新从hadoop02虚拟上克隆过来的,结果hadoop-eclipse插件一样的编译,居然用不起了,找了3天的原因,最后还是没有解决 ...

  3. hadoop: hive 1.2.0 在mac机上的安装与配置

    环境:mac OS X Yosemite + hadoop 2.6.0 + hive 1.2.0 + jdk 1.7.0_79 前提:hadoop必须先安装,且处于运行状态(伪分式模式或全分布模式均可 ...

  4. Hadoop上路-04_HBase0.98.0入门

    以下操作在Hadoop分布式集群基础上进行. 一.分布式环境搭建 下载:)验证 3)修改%HBASE%/conf/hbase-env.sh 4)修改$HBASE_HOME/conf/hbase-sit ...

  5. Pig安装及简单使用(pig版本0.13.0,Hadoop版本2.5.0)

    原文地址:http://www.linuxidc.com/Linux/2014-03/99055.htm 我们用MapReduce进行数据分析.当业务比较复杂的时候,使用MapReduce将会是一个很 ...

  6. 理解Hadoop脚本hadoop-2.5.0/bin/hadoop

    1 #!/usr/bin/env bash    此处为什么不是  #!/bin/bash  ? 考虑到程序的可移植性,env的作用就是为了找到正确的脚本解释器(这里就是bash),在不同的Linux ...

  7. Hadoop 2.2 & HBase 0.96 Maven 依赖总结

    由于Hbase 0.94对Hadoop 2.x的支持不是非常好,故直接添加Hbase 0.94的jar依赖可能会导致问题. 但是直接添加Hbase0.96的依赖,由于官方并没有发布Hbase 0.96 ...

  8. 【hadoop】hadoop3.2.0应用环境搭建与使用指南

    下面列出我搭建hadoop应用环境的文章整理在一起,不定期更新,供大家参考,互相学习!!! 杂谈篇: [英语学习]Re-pick up English for learning big data (n ...

  9. Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=lenovo, access=WRITE, inode="/user/hadoop/spark/people_savemode_test/_temporary/0":hadoop:supergro

    保存文件时权限被拒绝 曾经踩过的坑: 保存结果到hdfs上没有写的权限 通过修改权限将文件写入到指定的目录下 * * * $HADOOP_HOME/bin/hdfs dfs -chmod 777 /u ...

随机推荐

  1. 【转】从零开始编写自己的C#框架(7)——需求分析

    转自:http://www.cnblogs.com/EmptyFS/p/3653934.html 本章内容虽然叫“需求分析”,实际上关于具体的需求分析操作步骤并没有深入去写,因为细化的话那将是一本厚厚 ...

  2. quora 中有关angular与emberjs的精彩辩论

    原贴地址,要注册才能看,这里只有国人翻译的一部分内容 本文源自于Quora网站的一个问题,作者称最近一直在为一个新的Rails项目寻找一个JavaScript框架,通过筛选,最终纠结于Angular. ...

  3. MYSQL数据库性能调优之五:解决慢查询--存储引擎与数据类型

    3.数据类型的影响 4.存储引擎的影响 看你的mysql现在已提供什么存储引擎:mysql> show engines; 看你的mysql当前默认的存储引擎:mysql> show var ...

  4. Dagger学习笔记

    @Inject 提供依赖的构造函数,或者需要依赖的成员变量 @Module 提供依赖,实例化的地方( 使用module实例化,方便测试的时候替换成其他对象,而这也是和构造方法注入的区别,如果用构造方法 ...

  5. fastscript调用delphi方法和DELPHI调用FASTSCRIPT方法

    fastscript调用Delphi过程:  1. 先创建事件处理方法:TfsCallMethodEvent 2. 然后再用调用TfsScript.AddMethod方法,第一个参数为Delphi方法 ...

  6. 2013年度Python Git工具

    Pycoders周刊根据读者对周刊文章的点击数据,评选出了2013年最受关注的和Git相关的Python工具. git-workflow (github.com) 可视化你的 git 工作流程的工具, ...

  7. inputs

    inputs.bind({ keyup:function(){$(this).val($(this).val().replace(/\D/g,''));}, focus:function(){if($ ...

  8. 配置Synergy(Server : XP, client: Win7)

    此文只是为了Mark一下配置方法,以防以后重装系统的时候,忘记.   首先,因为我的Server机器是XP,所以要求两台机器,都是安装的x86的版本,而不能是x64的版本. 我用的版本是1.4.11, ...

  9. php二叉树算法

    二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒.二叉树的第i层至多有2^{i-1}个结点:深度为k的二叉树至多有2^k-1个结点:对任何一棵二叉树T,如 ...

  10. keycode按键对照表

    功能场景,鼠标在某区域内,比如多个条件的搜索框内,按下enter键让其具有,点击 [确定/搜索]按钮的功能.在编辑的区域内,点击enter键,让其有 [保存]按钮的功能.则可这样:$("#s ...