
2011年6月,在Hadoop 2011峰会上,MapR的创始人M.C. Srivas做了名为《Design, Scale and P来自erformance of MapR's Distribution for Hadoop》的演讲,比较详细的介绍了MapR设计原则,部分实现细节以及MapR的性能,外界也第一次从内部了解MapR 弦Hadoop。
- 中文名 mapr集群
- 依据会议 Hadoop 2011峰会
- 发布日期 2011年6月
- 创始人 M.C. Srivas
设计思想
MapR认为,解决Hadoop的种种问题里兵失和原赵叶般教呢上,要采用以下设计思想:
来自1)使用分布式的meta server
集中式的meta server可扩展性不好,对应的解决方案就360百科是使用分布式的meta server,让每个节点都变落探成meta server。 但是这里要解决的问题是meta server不能占用太多内存,要留出足够的内存供M/项R 应用来使用。
县她 2) 要让每个Datanode上支持的block数量增加,同时减议响也立带少block-report的大小。
3) 因为内存容量总是有限维价乎路述蛋针冷体示的,所以要减小查找服务的内存开销。
4) 服务能够快速重启(这样可以更好的实现HA)。
通过上述方式,MapR期望这种设计能极大的提高Hadoop的扩展能命府哪冲数家压纪胜村接力,比如支持的节点数目从当前2000个左右扩展到10000个以上,系统文件容量从10-50PB扩展到1-10EB,文件数量从1.5命喜宽巴展讲普减只失黄亿扩展到1万亿(1 t拉场过抗rillion)左右。同时,系统还需要支持完全的随机读写以及一系列企业应用特性,比如快照,mirror等等。MapR还期望在性能上有所突破,尽可能的榨取硬件的能力,并能对新的硬件技术(固态硬盘,万兆网卡等)提供支持。
MapR原理
纵观其实现,整个MapR的核心是其分布式NameNode, 在MapR的设计中,分布式的NameNode又被称作Container,和Hadoop原始设计中的效些话呀益座帝似排道Namenode不一样的是,Container不仅维护了用户文件的meta data,也维护数据块。每个Container的大小在16GB-32GB之间(这也就意味着一个node上会有很多个contai极ner),同一个Container在不同node间有replica。对于用户来对气矿价说,Contai触就ner的概念过于底层,Ma离伯吸场步步紧棉城pR引入了Volume的概念来降低使用用户门槛和提高系统的灵活性。 MapR Volume的概念和传统存储概念意义上的Volume相当类似,用户不需要直接管理Container,相应的,用户通过管理volumes来管理Container:用户可以为每个Volume指定不同的大小限制,replication level等参数。此外,用户还可策情满室态科志顾以对volume建立snaps月久包给做hot,mirror等。
Container,volume相关的meta data被维护在被称为CLDB中(container location database)。 CLDB是一个集中式的服务,为此,MapR为CLDB设计了 一系列的容错
采用水粉客分布式Namenode的一个必然结果就是要处理大量的分布式事务: 用户有可走首章回记治试虽已至能同时操作两个Container。 针对这种情况, MapR认为传统的两阶段提交和基于Quarum 的协议(例如Paxos)都有局限性,他们提出了新的解决方案: MapR lockless transaction。Srivas的讲座并没有过多讨论MapR lockless transaction的细节,从有限的几张PPT里面,我们还是可以得知一二的:
1) 每个节点都会保存一份WAL。WAL分为两种,OP log和Value log。OP log主要保存对meta data的修改和回滚信息,相应的,Value log主要保存对data block的修改和回滚信息。
2) Log有全局的ID(利用Zookeeper可以很容易的实现这一点),这就使得其可以用来实现分布式事务成为可能。
3) 利用WAL,事务可以快速的回滚(2秒以内)
4) MapR lockless transaction不需要显式的提交(即默认事务会成功执行)
5) Replica会进行监测是否存在冲突,如果有冲突,则回滚事务。如果没有,则confirm事务。
MapR声称这种实现方式有很高的吞吐率,而且事务进行过程中不需要锁, 而且因为WAL的存在,如果事务进行过程中出现程序崩溃也无所谓。实际上,MapR lockless transaction的实现是仔细分析了MapR 分布式事务的特点以后的一种设计折中: 作为大数据分析平台,Hadoop要处理的数据集并往往是只读或者读多写少(当前版本的Hadoop HDFS实际上是只读的),分布式事务存在冲突的几率比较小,就是说,代价很大的回滚操作执行的几率很小,在这种情况下,放弃开销很大的锁机制是划算的。
MapR优势
除了分布式Namenode这个大亮点之外,MapR还实现了一系列高级特性,对原来Hadoop的功能进行了大幅度的增强。这其中最吸引眼球的有两点:
顾名思义,用户可以直接在远程通过NFS 客户端映在把MapR HDFS装载到其本地,像操作本地文件一样来进行操作。这个特性在Hadoop峰会上引起了广泛关注,讲座结束后相当一部分问题都集中于此。比如殖提己航露加汽,支持符号链接么来自(答案:支持)? 支持O_DIRECT访问么(答排预武主孩色汽元按案:O_DIRECT是相对本地文件系统而言的,对于NFS,O_DIRECT不是太有意义)? 同时Direct Access NFS支持文件的随机读写(原始Hadoop的文件系统360百科可以被认为是只读的),大大的扩展了MapR Hadoop的应用范围。
Snapshot(快照),Mirror(镜像)等企业应用特性是是企业IT管理人员必不可少的工具,是处理复杂需求的得力助手。通过支持Volume,MapR Hadoop方便的支持了这些功能,使得Hadoop不再只是开发人员的专宠,数据科学家,IT管理人员也能够方便的访问Hado音居最但限制约op这个功能强大的大数据分析平台。