GridGain 最近在 2014 年的 Spark 峰会上发布了 Hadoop 内存片内加速技术,可以为 Hadoop 应用带来内存片内计算的相关收益。
该技术包括两个单元:和 Hadoop HDFS 兼容的内存片内文件系统,以及为内存片内处理而优化的 MapReduce 实现。这两个单元对基于磁盘的 HDFS 和传统的 MapReduce 进行了扩展,为大数据处理情况提供了更好的性能。
内存片内加速技术消除了在传统 Hadoop 架构模型中与作业追踪者(job tracker)、任务追踪者(task tracker)相关的系统开销,它可以和现有的 MapReduce 应用一起工作而无需改动任何原有的 MapReduce、HDFS 和 YARN 环境的代码。
下面是 InfoQ 对 GridGain 的 CTO Nikita Ivanov 关于 Hadoop 内存片内加速技术和架构细节的访谈。
InfoQ: Hadoop内存片内加速技术的关键特性在于 GridGain 的内存片内文件系统和内存片内MapReduce,你能描述一下这两个组件是如何协同工作的吗?
Nikita:GridGain 的 Hadoop 内存片内加速技术是一种免费、开源和即插即用的解决方案,它提升了传统 MapReduce 工作(MapReduce jobs)的速度,你只需用 10 分钟进行下载和安装,就可以得到十几倍的性能提升,并且不需要对代码做任何改动。该产品是业界第一个基于双模、高性能内存片内文件系统,以及为内存片内处理而优化的 MapReduce 实现方案,这个文件系统和 Hadoop 的 HDFS 百分百的兼容。内存片内 HDFS 和内存片内 MapReduce 以易用的方式对基于磁盘的 HDFS 和传统的 MapReduce 进行了扩展,以带来显著的性能提升。
简要地说,GridGain 的内存片内文件系统 GGFS 提供了一个高性能、分布式并与 HDFS 兼容的内存片内计算平台,并在此进行数据的存储,这样我们基于 YARN 的 MapReduce 实现就可以在数据存储这块利用 GGFS 做针对性的优化。这两个组件都是必需的,这样才能达到十几倍的性能提升(在一些边界情况下可以更高)。
InfoQ: 如何对这两种组合做一下比较,一种是内存片内 HDFS 和内存片内 MapReduce 的组合,另一种是基于磁盘的 HDFS 和传统的 MapReduce 的组合?
Nikita:GridGain 的内存片内方案和传统的 HDFS/MapReduce 方案最大的不同在于:
- 在 GridGain 的内存片内计算平台里,数据是以分布式的方式存储在内存中。
- GridGain 的 MapReduce 实现是从底层向上优化,以充分利用数据存储在内存中这一优势,同时改善了 Hadoop 之前架构中的一些缺陷。在 GridGain 的 MapReduce 实现中,执行路径是从客户端应用的工作提交者(job submitter)直接到数据节点,然后完成进程内(in-process)的数据处理,数据处理是基于数据节点中的内存片内数据分区,这样就绕过了传统实现中的作业跟踪者(job tracker)、任务跟踪者(task tracker)和名字节点(name nodes)这些单元,也避免了相关的延迟。
相比而言,传统的 MapReduce 实现中,数据是存储在低速的磁盘上,而 MapReduce 实现也是基于此而做优化的。
InfoQ:你能描述一下这个在 Hadoop 内存片内加速技术背后的双模、高性能的内存片内文件系统是如何工作的?它与传统的文件系统又有何不同呢?
Nikita:GridGain 的内存片内文件系统 GGFS 支持两种模式,一种模式是作为独立的 Hadoop 簇的主文件系统,另一种模式是和 HDFS 进行串联,此时 GGFS 作为主文件系统 HDFS 的智能缓存层。
作为缓存层,GGFS 可以提供直接读和直接写的逻辑,这些逻辑是高度可调节的,并且用户也可以自由地选择哪些文件和目录要被缓存以及如何缓存。这两种情况下,GGFS 可以作为对传统 HDFS 的嵌入式替代方案,或者是一种扩展,而这都会立刻带来性能的提升。
InfoQ:如何比较 GridGain 的内存片内 MapReduce 方案和其它的一些实时流解决方案,比如 Storm 或者 Apache Spark?
Nikita:最本质的差别在于 GridGain 的内存片内加速技术支持即插即用这一特性。不同于 Storm 或者 Spark(顺便说一下,两者都是伟大的项目),它们需要对你原有的 Hadoop MapReduce 代码进行完全的推倒重来,而 GridGain 不需要修改一行代码,就能得到相同甚至更高的性能优势。
InfoQ:什么情况下需要使用 Hadoop 内存片内加速技术呢?
Nikita:实际上当你听到“实时分析”这个词时,也就听到了 Hadoop 内存片内加速技术的新用例。如你所知,在传统的 Hadoop 中并没有实时的东西。我们在新兴的 HTAP (hybrid transactional and analytical processing) 中正看到一些这样的用例,比如欺诈保护,游戏中分析,算法交易,投资组合分析和优化等等。
InfoQ:你能谈谈 GridGain 的 Visor 和基于图形界面的文件系统分析工具吗,以及他们如何帮助监视和管理 Hadoop 工作(Hadoop jobs)的?
Nikita:GridGain 的 Hadoop 内存片内加速是和 GridGain 的 Visor 合在一起的,Visor 是一种对 GridGain 产品进行管理和监视的方案。Visor 提供了对 Hadoop 内存片内加速技术的直接支持,它为 HDFS 兼容的文件系统提供了精细的文件管理器和 HDFS 分析工具,通过它你可以看到并分析和 HDFS 相关的各种实时性能信息。
InfoQ:后面的产品路标是怎么样的呢?
Nikita:我们会持续投资(同我们的开源社区一起)来为 Hadoop 相关产品技术,包括 Hive、Pig 和 Hbase,提供性能提升方案。
Taneja Group 也有相关报道( Memory is the Hidden Secret to Success with Big Data , 下载全部报告需要先注册),讨论了 GridGain 如何把 Hadoop 内存片内加速技术和已有的 Hadoop 簇、传统基于磁盘的有缺陷的数据库系统以及面向批处理的 MapReduce 技术进行集成。
关于被访问者
Nikita Ivanov是 GridGain 系统公司的发起人和 CTO,GridGain 成立于 2007 年,投资者包括 RTP Ventures 和 Almaz Capital。Nikita 领导 GridGain 开发了领先的分布式内存片内数据处理技术 - 领先的 Java 内存片内计算平台,今天在全世界每 10 秒它就会启动运行一次。Nikita 有超过 20 年的软件应用开发经验,创建了 HPC 和中间件平台,并在一些创业公司和知名企业都做出过贡献,包括 Adaptec, Visa 和 BEA Systems。Nikita 也是使用 Java 技术作为服务器端开发应用的先驱者,1996 年他在为欧洲大型系统做集成工作时他就进行了相关实践。
查看参考原文: Nikita Ivanov on GridGain’s In-Memory Accelerator for Hadoop
感谢侯伯薇对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论