分布式计算开源框架 Hadoop 近日发布了今年的第一个版本 Hadoop-2.3.0,新版本不仅增强了核心平台的大量功能,同时还修复了大量 bug。
新版本对 HDFS 做了两个非常重要的增强:
借助于 HDFS 对异构存储层次的支持,我们将能够在同一个 Hadoop 集群上使用不同的存储类型。此外我们还可以使用不同的存储媒介——例如商业磁盘、企业级磁盘、SSD 或者内存等——更好地权衡成本和收益。如果你想更详细地了解与该增强相关的信息,那么可以访问这里。
类似地,在新版本中我们还能使用Hadoop 集群中的可用内存集中地缓存并管理数据节点内存中的数据集。MapReduce、Hive、Pig 等类似的应用程序将能够申请内存进行缓存,然后直接从数据节点的地址空间中读取内容,通过完全避免磁盘操作极大地提高扫描效率。Hive 现在正在为ORC 文件实现一个非常有效的零复制读取路径,该功能就使用了这项新技术。
在 YARN 方面,令我们非常兴奋的事情是资源管理器自动故障转移功能已经进入尾声,虽然在 2.3.0 这个版本中该功能还没有被发布,但是极有可能会包含在 Hadoop-2.4 中。此外,2.3.0 版本还对 YARN 做了一些关键的运维方面的增强,例如更好的日志、错误处理和诊断等。
MapReduce 的一个关键增强是 MAPREDUCE-4421 。借助于该功能我们已经不再需要在每一台机器上安装 MapReduce 二进制程序,仅仅需要通过 YARN 分布式缓存将一个 MapReduce 包复制到 HDFS 中就可以了。
当然,新版本还包含大量的 bug 修复以及其他方面的增强。例如:
- YarnClientImpl 类中的异步轮询操作引入了超时
- 修复了 RMFatalEventDispatcher 没有记录事件原因的问题
- HA 配置不会影响节点管理器的 RPC 地址
- RM Web UI 和 REST API 统一使用 YarnApplicationState
- 在 RpcResponseHeader 中包含 RPC 错误信息,而不是将其分开发送
- 向 jetty/httpserver 中添加了请求日志
- 修复了将 dfs.checksum.type 定义为 NULL 之后写文件和 hflush 会抛出 java.lang.ArrayIndexOutOfBoundsException 的问题
如果想要了解更多的信息,请点击这里。不得不说的是,整个社区在 Hadoop-2.3.0 版本的发布过程中再次发挥了非常重要的作用,他们提交了很多非常重要的内容。
最后,让我们展望一下 2.4 版本中将会包含的一些非常令人兴奋的功能:
- HDFS 将会支持 ACL
- 关键的运营能力,例如 HDFS 支持滚动更新,使用 ProtoBufs 序列化 / 反序列化 FSImage
- YARN 资源管理器自动故障转移功能
- YARN 通用应用程序时间轴和历史服务,使得在 YARN 中开发和管理新框架及服务变得非常容易
感谢吴甘沙对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论