目前从Hadoop官网的Wiki来看,稳定版本已经发行到Hadoop2.9.0,最新版本为Hadoop3.1.0,查阅JIRA,社区已经着手迭代Hadoop3.2.0。那么,今天笔者就带着你们来剖析一下Hadoop3,看看它给咱们带来了哪些新特性。后端
从功能上来讲,Hadoop3比Hadoop2有些功能获得了加强,具体增长了哪些,后面再讲。首先,咱们来看看Hadoop3主要带来了哪些变化:网络
下面,笔者就为你们来一一剖析这些新特性的具体内容,其内容包含JDK版本、EC技术、YARN的时间轴服务这三类特性,其余特性笔者在后面的博客再为你们慢慢剖析。架构
在Hadoop 3中,全部的Hadoop JAR包编译的环境都是基于Java8来完成的,全部若是仍然使用的是Java 7或者更低的版本,你可能须要升级到Java 8才能正常的运行Hadoop3。以下图所示:负载均衡
首先,咱们先来了解一下什么是Erasure Encoding。以下图所示:分布式
通常来讲,在存储系统中,EC技术主要用于廉价磁盘冗余阵列,即RAID。如上图,RAID经过Stripping实现EC技术,其中逻辑顺序数据(好比:文件)被划分红更小的单元(好比:位、字节或者是块),并将连续单元存储在不一样的磁盘上。oop
而后,对原始数据单元的每一个Stripe,计算并存储必定数量的奇偶校验单位。这个过程称之为编码,经过基于有效数据单元和奇偶校验单元的解码计算,能够恢复任意Stripe单元的错误。当咱们想到了擦除编码的时候,咱们能够先来了解一下在Hadoop2中复制的早期场景。以下图所示:学习
HDFS默认状况下,它的备份系数是3,一个原始数据块和其余2个副本。其中2个副本所须要的存储开销各站100%,这样使得200%的存储开销,会消耗其余资源,好比网络带宽。然而,在正常操做中不多访问具备低IO活动的冷数据集的副本,可是仍然消耗与原始数据集相同的资源量。测试
对于EC技术,即擦除编码存储数据和提供容错空间较小的开销相比,HDFS复制,EC技术能够代替复制,这将提供相同的容错机制,同时还减小了存储开销。以下图所示:优化
EC和HDFS的整合能够保持与提供存储效率相同的容错。例如,一个副本系数为3,要复制文件的6个块,须要消耗6*3=18个块的磁盘空间。可是,使用EC技术(6个数据块,3个奇偶校验块)来部署,它只须要消耗磁盘空间的9个块(6个数据块+3个奇偶校验块)。这些与原先的存储空间相比较,节省了50%的存储开销。编码
因为擦除编码须要在执行远程读取时,对数据重建带来额外的开销,所以他一般用于存储不太频繁访问的数据。在部署EC以前,用户应该考虑EC的全部开销,好比存储、网络、CPU等。
Hadoop引入YARN Timeline Service v.2是为了解决两个主要问题:
下面首先,咱们来剖析一下它伸缩性。
YARN V1仅限于读写单个实例,不能很好的扩展到小集群以外。YARN V2使用了更具备伸缩性的分布式体系架构和可扩展的后端存储,它将数据的写入与数据的读取进行了分离。并使用分布式收集器,本质上是每一个YARN应用的收集器。读则是独立的实例,专门经过REST API服务来查询
对于可用性的改进,在不少状况下,用户对流或者YARN应用的逻辑组的信息比较感兴趣。启动一组或者一系列的YARN应用程序来完成逻辑应用是很常见的。以下图所示:
YARN时间线服务V2采用了一组收集器写数据到后端进行存储。收集器被分配并与它们专用的应用程序主机进行协做,以下图所示,属于该应用程序的全部数据都被发送到应用程序时间轴的收集器中,可是资源管理器时间轴收集器除外。
对于给定的应用程序,应用程序能够将数据写入同一时间轴收集器中。此外,为应用程序运行容器的其余节点的节点管理器,还会向运行应用程序主节点的时间轴收集器写入数据。资源管理器还维护本身的时间手机线收集器,它只发布YARN的通用生命周期事件,以保持其写入量合理。时间的读取器是单独的守护进程从收集器中分离出来的,它旨在服务于REST API查询操做。
本篇博客先给你们剖析前面几个特性,其内容由JDK的版本升级、EC技术的做用及优点、YARN的时间轴V2版本的主要做用。Hadoop3后面的几个特性,在下一篇博客为你们再剖析。
这篇博客就和你们分享到这里,若是你们在研究学习的过程中有什么问题,能够加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!