写点什么

一个 Hadoop 老兵的自白

  • 2015-11-26
  • 本文字数:1078 字

    阅读完需:约 4 分钟

Apache Hadoop 是一个免费软件,但实际上,除非是拥有庞大工程师团队的大公司,否则最好不要去创建仅供内部使用的 Hadoop 版本,因为如果要购买技术支持,那 Hadoop 就不是免费的了。 Jim Scott MapR 企业战略 & 架构部门的负责人。2009 年,他接触了自己的第一个 Hadoop 版本 Cloudera 。他发现,Apache Hadoop 平台存在一些固有的设计缺陷。近日,他从以下几个方面分析了这些缺陷,并介绍了 MapR 的解决方案

Append-only 文件访问方式

HDFS 的 Append-only 文件访问方式是一个巨大的障碍,导致下游项目不得不解决这个问题。例如, HBase 就实现了“墓碑化(Tombstoning)”和“合并(Compactions)”功能。但是,如果这些动作发生在负载高峰期,会严重影响生产系统的性能。MapR 通过创建 MapR-DB 解决了该问题。MapR-DB 模仿了谷歌的 BigTable ,支持 HBase API,是一个零管理实时数据库。

系统集成

HDFS 不兼容 POSIX NFS 。要查看 HDFS 中的文件,只能通过 HDFS 命令行接口来查询。 MapR-FS 是一个操作系统级的文件系统,兼容 POSIX。查看该分布式文件系统中的文件,只需要使用 LS 命令。编辑其中的文件,也不需要专门的工具。Linux 中任何可以读写 NFS 系统的应用程序都可以读写 MapR-FS。

备份 & 恢复

Apache Hadoop 在灾难恢复和备份方面存在严重不足。Hadoop 的数据复制可以有效应对磁盘故障,但对数据损坏和人为错误无能为力。谨慎起见,在向生产环境部署新软件之前,需要生成一个数据快照。但是,Apache Hadoop 的快照只是一个元数据副本。而 MapR 快照则近乎是数据的瞬时拷贝,即使文件正在被写入也可以生成。并且,用户还可以生成 MapR-DB 表的快照。

维护 & 升级

任何优秀的企业应用程序都离不开维护、管理和升级,Hadoop 也不例外。但 Hadoop 的升级维护可能会非常麻烦。MapR 每次发布都会针对许多开源软件项目的多个版本进行测试。它是唯一一个支持在同一个集群上运行软件的不同版本的 Hadoop 版本。

开源软件选择

在使用 Hadoop 的时候,相关开源软件的选择是个难题。MapR 支持开放式 API,提供了一个无偏见的 Hadoop 开源软件集合,使用户能够选择自己需要的开源项目

此外,Jim 还提到,NameNode 是个单点故障点。感兴趣的读者可以进一步阅读

对 MapR 感兴趣的读者,可以下载 MapR M3 社区版本,免费体验 MapR 的


感谢魏星对本文的审校。

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

2015-11-26 18:007478
用户头像

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

关注

评论

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

Qt知识点梳理 —— 获取设备CPU、内存、磁盘等硬件信息

Java 程序员 后端

ReactJS实战之生命周期

Java 程序员 后端

Redis(十一):键的生存时间与过期时间

Java 程序员 后端

redis之单机多节点集群

Java 程序员 后端

Redis哨兵原理,我忍你很久了!

Java 程序员 后端

Redis的各种用途以及使用场景(1)

Java 程序员 后端

RocketMQ msgId与offsetMsgId释疑(实战篇)

Java 程序员 后端

RocketMQ源码分析之NameServer

Java 程序员 后端

Redis实现feed流(1)

Java 程序员 后端

Redis(二十六):Sentinel—

Java 程序员 后端

Redis常用命令总结

Java 程序员 后端

Redis的各种用途以及使用场景

Java 程序员 后端

RocketMQ 千锤百炼--哈啰在分布式消息治理和微服务治理中的实践

Java 程序员 后端

Redis(四):整数集合

Java 程序员 后端

Redis小白入门教程

Java 程序员 后端

Redis持久化方式AOF技术原理?一文带你从底层彻底吃透

Java 程序员 后端

redis数据迁移之redis-shake

Java 程序员 后端

Redis 的持久化机制和AOF文件重写原理

Java 程序员 后端

RocketMQ消息丢失场景及解决办法(1)

Java 程序员 后端

RocketMQ消息轨迹-设计篇

Java 程序员 后端

Redis(二十一):复制

Java 程序员 后端

macOS 环境安装Flutter

坚果

flutter 11月日更 安装部署

Redis(十八):服务器

Java 程序员 后端

Redis(十六):事件

Java 程序员 后端

RocketMQ消息丢失场景及解决办法

Java 程序员 后端

Redis哨兵模式原理剖析,监控、选主、通知客户端你真的懂了吗?

Java 程序员 后端

Redis安装与部署新手入门教程

Java 程序员 后端

Redis实现feed流

Java 程序员 后端

RocketMQ 主从同步读写分离机制

Java 程序员 后端

RocketMQ一行代码造成大量消息发送失败

Java 程序员 后端

【Flutter 专题】12 图解圆形与权重/比例小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

一个Hadoop老兵的自白_语言 & 开发_谢丽_InfoQ精选文章