写点什么

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

  • 2015-12-30
  • 本文字数:1433 字

    阅读完需:约 5 分钟

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))。

2015-12-30 18:003372
用户头像

发布了 1008 篇内容, 共 410.9 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

云原生技术栈的关键技术

李英俊

云原生 Go 语言

CECBC区块链专委会副主任吴桐受邀成为伏羲智库兼职研究员

CECBC

区块链技术 吴桐 商务部CECBC 伏羲智库 政务链

LeetCode 题解:1051. 高度检查器,JavaScript,先排序再比较,详细注释

Lee Chen

大前端 LeetCode

使用 Docker 部署 Django + MySQL 8 开发环境

AlwaysBeta

MySQL django Docker Dockerfile Docker-compose

手写一个Vue风格组件

林浩

Java 大前端 webpack

可读代码编写炸鸡八 - 变量兜兜转转像是一场梦

多选参数

代码 代码组织 代码规范 可读代码编写 可读代码

区块链技术助力打造新公益样板

CECBC

区块链想要拥有互联网级的用户体验,如何从应用层与公链去改进?

CECBC

解决火狐新窗口打开网页被拦截问题

Lee Chen

大前端

架构师训练营第六周课后总结

Cloud.

命令行一键启动Hadoop集群

我是个bug

大数据 hadoop hdfs YARN Big Data

生活困境

落曦

kubernetes 集群安装(kubeadm)

小小文

Docker Kubernetes 群集安装 etcd

看动画学算法之:排序-选择排序

程序那些事

数据结构 算法 动画

流量控制算法

架构 流量控制 流控算法

架构师训练营架构第七周总结

Cloud.

那些好用的命令

北漂码农有话说

个人博客网站搭建

北漂码农有话说

【总结】性能优化

小胖子

Swift十年

SwiftMic

Swift十年

追光逐影:曝光相对论(1)

北风

摄影 影调 曝光 黑白

隐私计算:实现数据价值释放的突破口

CECBC

密码学 政策扶持 隐私计算 发展现状

性能压测的时候,系统响应时间和吞吐量如何变化,为什么?

不在调上

week7

不在调上

看动画学算法之:排序-归并排序

程序那些事

Java 算法 排序 归并排序

Windows Sandbox

Dare Devor

Sandbox Virtualization

redis系列之——数据持久化(RDB和AOF)

诸葛小猿

redis 持久化 aof rdb

ARTS Week8

时之虫

ARTS 打卡计划

盘点本周区块链国内大事件

CECBC

学习Rust,我的一些体会

Kurtis Moxley

编程 rust 随笔杂谈

番外篇:新鲜上市的Unicorn - Pinterest的数据系统

顾仲贤

将Hadoop的计算和存储分开能有效的提升性能_语言 & 开发_谢丽_InfoQ精选文章