快速业务通道

构建可扩展的Java EE应用(二) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
的任务水平的扩展到多个节点上 并行运行。

MapReduce

MapReduce由Google的Jeffrey Dean和Sanjay Ghemawat提出,是一种用于在大 型集群环境下处理巨量数据的分布式编程模型。MapReduce由两个步骤来实现 - Map:对集合中所有的对象进行操作并基于处理返回一系列的结果,Reduce:通过 多线程、进程或独立系统并行的从两个或多个Map中整理和获取结果。Map()和 Reduce()都是可以并行运行的,不过通常来说没必要在同样的系统同样的时间这 么来做。

Hadoop是一个开源的、点对点的、纯Java实现的MapReduce。它是一个用于将 分布式应用部署到大型廉价集群上运行的Lucene-derived框架,得到了全世界范 围开源人士的支持以及广泛的应用,Yahoo的Search Webmap、Amazon EC2/S3服务 以及Sun的网格引擎都可运行在Hadoop上。

简单来说,通过使用“Hadoop Map-Reduce”,"URL访问规则分析"程序可以首 先将日志文件分解为多个128M的小文件,然后由Hadoop将这些小文件分配到不同 的Map()上去执行。Map()会分析分配给它的小文件并产生临时的结果,Map()产生 的所有的临时结果会被排序并分配给不同的Reduce(),Reduce()合并所有的临时 结果产生最终的结果,这些Map和Reduce操作都可以由Hadoop框架控制来并行的运 行在集群中所有的节点上。

MapReduce对于很多应用而言都是非常有用的,包括分布式检索、分布式排序 、web link-graph reversal、term-vector per host、web访问日志分析、索引 重建、文档集群、机器智能学习、statistical machine translation和其他领域 。

构建可扩展的Java EE应用(二)(5)

时间:2011-07-08 blogjava BlueDavy

MPI

MPI是一种语言无关、用于实现并行运行计算机间交互的通讯协议,目前已经 有很多Java版本的MPI标准的实现,mpiJava和MPJ是其中的典型。mpiJava 基于 JNI绑定native的MPI库来实现,MPJ是100%纯java的MPI标准的实现。mpiJava和 MPJ和MPI Fortran和C版本提供的API都基本一致,例如它们都对外提供了具备同 样方法名和参数的Comm class来实现MPI的信息传递。

CCJ是一个类似MPI通讯操作的java库。CCJ提供了barrier、broadcast、 scatter、 gather、all-gather、reduce和all-reduce操作的支持(但不提供点 对点的操作,例如send、receive和send- receive)。在底层的通讯协议方面, CCJ并没有自己实现,而是采用了Java RMI,这也就使得CCJ可以用来传递复杂的 序列化对象,而不仅仅是MPI中的原始数据类型。进一步看,CCJ还可以从一组并 行的processes中获取到复杂的集合对象,例如实现了CCJ的DividableDataObject 接口的集合。

采用不同的方法来获取高扩展能力

有很多的书会教我们如何以OO的方式来设计灵活架构的系统,如何来使服务透 明的被客户端使用以便维护,如何采用正常的模式来设计数据库schema以便集成 。但有些时候为了获取高扩展性,需要采用一些不同的方法。

Google设计了自己的高可扩展的分布式文件系统(GFS),它并不是基于POSIX API来实现的,不过GFS对于用户来说并不完全透明。为了使用GFS,你必须采用 GFS的API包。Google也设计了自己的高可扩展的分布式数据库系统(Bigtable) ,但它并不遵循ANSI SQL标准,而且其中的概念和结构和传统的关系数据库几乎 完全不同,但最重要的是GFS和Bigtable能够满足Google的存储要求、良好的扩展 性要求,并且已经被Google的广泛的作为其存储平台而使用。

传统方式下,我们通过使用更大型的、更快和更贵的机器或企业级的集群数据 库(例如RAC)来将数据库扩展到多节点运行,但我有一个我们实验室中测试的 social networking的网站采用了不同的方式,这个应用允许用户在网站上创建 profiles、blogs,和朋友共享照片和音乐,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号