将 Hadoop 的计算和存储分开能有效的提升性能

阅读数:1984 2015 年 12 月 30 日

2015 年,将 Hadoop 的计算和存储分开成为一个重要的 Hadoop 主题。大数据解决方案提供商BlueData今年发表过多篇关于这个主题的文章。来自 Gartner 的Merv Adrian年初也在 Twitter 上表示,该主题已经成为业内的一个主要议题。近日,BlueData 副总裁Anant Chintamaneni回顾了他与 EMC 大数据解决方案首席技术官Chris Harrold就此议题举办的网络研讨会的内容。

从众心理导致人们将雅虎、Facebook 或 LinkedIn 等早期大数据采用者的大数据实现方式视为实现大数据的唯一方式。大数据生态系统使得 Hadoop 成为下述内容的代名词:

  • 一大堆装有 Hadoop 的专用物理服务器;
  • Hadoop 的计算和存储位于相同的硬件机器上;
  • Hadoop 需要使用直连式存储(DAS)

Anant 认为,现在该废弃这些原则了。他给出了一种更好的实现大数据的方式,如下图所示:

新方法的指导思想主要有以下几项内容:

  • Hadoop 可以运行在容器或虚拟机上,即可以使用虚拟机或容器作为 Hadoop 节点。这种软件定义的基础设施可以提供干净的环境,保证部署的可预见性,而且交付速度更快,成本更低。在研讨会上,Chris 曾着重说明了Adobe 的虚拟化 Hadoop 部署。借助虚拟化,他们可以快速增加 Hadoop 的工作节点。另外,所有 Hadoop 供应商提供的“快速入门”选项都是在虚拟机或容器上运行 Hadoop。Netflix 已经基于虚拟化 Hadoop 集群构建出了出色的服务。
  • “数据本地化(data locality)”的概念已过时。数据本地化妨碍了企业采用 Hadoop,因为将 TB 级的数据复制到物理服务器,然后在每次有服务器宕机的时候进行数据平衡 / 再平衡,操作非常复杂,成本非常高昂。集群规模越大,情况越糟。像雅虎这样的互联网巨头之所以会那样做,是受以前的网络带宽所限。而现在,10Gbps 的网络也已很常见。将 Hadoop 的计算和存储分开还可以简化操作,用户可以分别扩展和管理计算和存储系统。另外,还有一个事实,就是在许多常见的 Hadoop 场景中,即使计算和存储在一起,Hadoop 任务也无法受益于数据本地化。
  • HDFS 并不需要本地磁盘,即 Hadoop 不需要本地直连式存储(DAS)。HDFS 更多的是一种分布式文件系统协议,在本地磁盘上运行 HDFS 只是其中的一种实现方式。现如今,许多公司都拥有 TB 级的数据,且数据来源多样(音频、视频、文本等)。这些数据存储在共享的存储系统中,如EMC Isilon。BlueData 和 EMC Isilon 提供了 HDFS 接口,允许将共享存储中的数据提供给 Hadoop 计算过程,而不需要复制数据。

Anant 用 BlueData 一个客户的测试数据说明了新方法所带来的性能上的提升。图一是本地虚拟化 Hadoop 集群与物理 Hadoop 集群的对比:

(图一)

可以看出,虚拟化 Hadoop 集群的性能比得上或超过了物理 Hadoop 集群的性能。图二比较了使用共享存储和 DAS 的虚拟化 Hadoop 集群:

(图二)

可以看出,企业级 NFS 的性能要高于基于 DAS 的 HDFS 系统。

最后,Anant 将网络研讨会的共识总结为以下几点:

  • 大数据是一个旅程:基础设施要经得起未来的挑战
  • 计算和存储分开可以为所有的大数据涉众提供更大的灵活性
  • 不要根据“数据本地化”做大数据基础设施的决策

Anant 期待更多的大数据部署使用共享存储,更多的部署使用容器和虚拟机,更多的企业将 Hadoop 的计算和存储分开。


感谢杜小芳对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。