开发mapreduce各有哪些优缺点

开发mapreduce各有哪些优缺点,第1张

1 不适合事务/单一请求处理

MapReduce绝对是一个离线批处理系统,对于批处理数据应用得很好:MapReduce(不论是Google的还是Hadoop的)是用于处理不适合传统数据库的海量数据的理想技术。但它又不适合事务/单一请求处理。(HBase使用了来自Hadoop核心的HDFS,在其常用 *** 作中并没有使用MapReduce。)

2 不能随即读取

3 以蛮力代替索引

在索引是更好的存取机制时,MapReduce将劣势尽显。

4 low-level语言和 *** 作

“直接开始你想要的 -- 而不是展示一个算法,解释如何工作的。” (关系型数据库的观点) -- High level(DBMS)

“展示数据存取的算法。” (Codasyl 的观点) -- Low level(MapReduce)

5 性能问题

想想N个map实例产生M个输出文件-每个最后由不同的reduce 实例处理, 这些文件写到运行map实例机器的本地硬盘 如果N是1,000, M是500, map阶段产生500,000个本地文件 当reduce阶段开始, 500个reduce实例每个需要读入1,000文件,并用类似FTP协议把它要的输入文件从map实例运行的节点上pull取过来 假如同时有数量级为100的reduce实例运行,

SQL Server 2005的十大最新特性

在商界,每样东西都在竞争中争取“更好、更快、更便宜”——SQL Server 2005也提供了很多个新特性来节省精力、时间和金钱。从编程到管理能力,这个版本的SQL Server都优于其他版本的产品,并且它还对SQL Server 2000中已经存在的特性进行了加强。这里我按照它的重要程度列出前十个最重要的新特性。

1、加强的T-SQL (事务处理SQL )

T-SQL 天生就是基于集合的关系型数据库管理系统编程语言,可以提供高性能的数据访问。现在,它与许多新的特性相结合,包括通过同时使用TRY和CTACH来进行错误处理,可以在语句中返回一个结果集的通用表表达式(CTEs),以及通过PIVOT 和UNPIVOT命令将列转化为行和将列转化为行的能力。

2、CLR(Common Language Runtime,通用语言运行时)

SQL Server 2005中的第二个主要的增强特性就是整合了符合NET规范的语言 ,例如C#, ASPNET 或者是可以构建对象(存储过程,触发器,函数等)的 VBNET。这一点让你可以在数据库管理系统中执行NET代码以充分利用NET功能。它有望在SQL Server 2000环境中取代扩展的存储过程,同时还扩展了传统关系型引擎功能。

3、服务代理(Service Broker)

服务代理处理的是以松散方式进行联系的发送者和接收者之间的消息。一个消息被发送、处理和回答,完成整个事务。这大大扩展了数据驱动应用程序的性能,以符合工作流或者客户业务需求。

4、数据加密

SQL Server 2000没有用来在表自身加密数据的有文档记载的或者公共支持的函数。企业需要依赖第三方产品来满足这个需求。SQL Server 2005自身带有支持对用户自定义数据库中存储的数据进行加密的功能。

5、SMTP邮件

在SQL Server 2000中直接发送邮件是可能的,但是很复杂。在SQL Server 2005中,微软通过合并SMTP邮件提高了自身的邮件性能。SQL Server从此跟Outlook说“bye-bye”!

6、>

目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES。这些产品都支持多平台,如 UNIX、VMS、Windows,但支持的程度不一样。IBM的DB2也是成熟的关系型数据库。但是,DB2是内嵌于IBM的AS/400系列机中,只支持OS/400 *** 作系统。

1MySQL

MySQL是最受欢迎的开源SQL数据库管理系统,它由 MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。

MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。

与其他数据库管理系统相比,MySQL具有以下优势:

(1)MySQL是一个关系数据库管理系统。

(2)MySQL是开源的。

(3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。

(4)MySQL服务器工作在客户/服务器或嵌入系统中。

(5)有大量的MySQL软件可以使用。

2SQL Server

SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。

目前最新版本是SQL Server 2005,它只能在Windows上运行, *** 作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。

SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且,由于其易 *** 作性及其友好的 *** 作界面,深受广大用户的喜爱。

3Oracle

提起数据库,第一个想到的公司,一般都会是Oracle(甲骨文)。该公司成立于1977年,最初是一家专门开发数据库的公司。Oracle在数据库领域一直处于领先地位。 1984年,首先将关系数据库转到了桌面计算机上。然后,Oracle5率先推出了分布式数据库、客户/服务器结构等崭新的概念。Oracle 6首创行锁定模式以及对称多处理计算机的支持……最新的Oracle 8主要增加了对象技术,成为关系—对象数据库系统。目前,Oracle产品覆盖了大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。

Oracle数据库产品具有以下优良特性。

(1)兼容性

Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与IBM SQL/DS、DB2、INGRES、IDMS/R等兼容。

(2)可移植性

Oracle的产品可运行于很宽范围的硬件与 *** 作系统平台上。可以安装在70种以上不同的大、中、小型机上;可在VMS、DOS、UNIX、Windows等多种 *** 作系统下工作。

(3)可联结性

Oracle能与多种通讯网络相连,支持各种协议(TCP/IP、DECnet、LU62等)。

(4)高生产率

Oracle产品提供了多种开发工具,能极大地方便用户进行进一步的开发。

(5)开放性

Oracle良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。

4Sybase

1984年,Mark B Hiffman和Robert Epstern创建了Sybase公司,并在1987年推出了Sybase数据库产品。Sybase主要有三种版本:一是UNIX *** 作系统下运行的版本; 二是Novell Netware环境下运行的版本;三是Windows NT环境下运行的版本。对UNIX *** 作系统,目前应用最广泛的是SYBASE 10及SYABSE 11 for SCO UNIX。

Sybase数据库的特点:

(1)它是基于客户/服务器体系结构的数据库。

(2)它是真正开放的数据库。

(3)它是一种高性能的数据库。

5DB2

DB2是内嵌于IBM的AS/400系统上的数据库管理系统,直接由硬件支持。它支持标准的SQL语言,具有与异种数据库相连的GATEWAY。因此它具有速度快、可靠性好的优点。但是,只有硬件平台选择了IBM的AS/400,才能选择使用DB2数据库管理系统。

DB2能在所有主流平台上运行(包括Windows),最适于海量数据。

DB2在企业级的应用最为广泛,在全球的500家最大的企业中,几乎85%以上都用DB2数据库服务器,而国内到1997年约占5%。

除此之外,还有微软的 Access数据库、FoxPro数据库等。既然现在有这么多的数据库系统,那么在游戏编程时应该选择什么样的数据库呢?首要的原则就是根据实际需要,另一方面还要考虑游戏开发预算。现在常用的数据库有:SQL Server、My SQL、Oracle、FoxPro。其中MySQL是一个完全免费的数据库系统,其功能也具备了标准数据库的功能,因此,在独立制作时,建议使用。 Oracle虽然功能强劲,但它毕竟是为商业用途而存在的,目前很少在游戏中使用到。

一、什么是Java事务 \x0d\ 通常的观念认为,事务仅与数据库相关。 \x0d\ 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性 \x0d\(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示\x0d\ \x0d\当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。隔离性表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。持\x0d\ 久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。 \x0d\ 通俗的理解,事务是一组原子 *** 作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。更简答的说就是:要么全部执行成功,要么撤销不执行。 \x0d\ 既然事务的概念从数据库而来,那Java事务是什么?之间有什么联系? \x0d\ 实际上,一个Java应用系统,如果要 *** 作数据库,则通过JDBC来实现的。增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。因此,数据库 *** 作的事务习惯上就称为Java事务。 \x0d\ 二、为什么需要事务 \x0d\ 事务是为解决数据安全 *** 作提出的,事务控制实际上就是控制数据的安全访问。具一个简单例子:比如银行转帐业务,账户A要将自己账户上的1000元 \x0d\转到B账户下面,A账户余额首先要减去1000元,然后B账户要增加1000元。假如在中间网络出现了问题,A账户减去1000元已经结束,B因为网络中\x0d\ \x0d\断而 *** 作失败,那么整个业务失败,必须做出控制,要求A账户转帐业务撤销。这才能保证业务的正确性,完成这个 *** 走就需要事务,将A账户资金减少和B账户资\x0d\ 金增加方到一个事务里面,要么全部执行成功,要么 *** 作全部撤销,这样就保持了数据的安全性。 \x0d\ 三、Java事务的类型 \x0d\ Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。 \x0d\ 1、JDBC事务 \x0d\ JDBC 事务是用 Connection 对象控制的。JDBC Connection 接口( javasqlConnection )提供了两种事务模式:自动提交和手工提交。 javasqlConnection 提供了以下控制事务的方法: \x0d\ public void setAutoCommit(boolean) \x0d\ public boolean getAutoCommit() \x0d\ public void commit() \x0d\ public void rollback() \x0d\ 使用 JDBC 事务界定时,您可以将多个 SQL 语句结合到一个事务中。JDBC 事务的一个缺点是事务的范围局限于一个数据库连接。一个 JDBC 事务不能跨越多个数据库。 \x0d\ 2、JTA(Java Transaction API)事务 \x0d\ JTA是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。 \x0d\ JTA允许应用程序执行分布式事务处理_在两个或多个网络计算机资源上访问并且更新数据,这些数据可以分布在多个数据库上。JDBC驱动程序的JTA支持极大地增强了数据访问能力。 \x0d\ 如果计划用 JTA 界定事务,那么就需要有一个实现 javaxsqlXADataSource 、 \x0d\javaxsqlXAConnection 和 javaxsqlXAResource 接口的 JDBC \x0d\驱动程序。一个实现了这些接口的驱动程序将可以参与 JTA 事务。一个 XADataSource 对象就是一个 XAConnection \x0d\对象的工厂。 XAConnection s 是参与 JTA 事务的 JDBC 连接。 \x0d\ 您将需要用应用服务器的管理工具设置 XADataSource 。从应用服务器和 JDBC 驱动程序的文档中可以了解到相关的指导。 \x0d\ J2EE 应用程序用 JNDI 查询数据源。一旦应用程序找到了数据源对象,它就调用 javaxsqlDataSourcegetConnection() 以获得到数据库的连接。 \x0d\ XA 连接与非 XA 连接不同。一定要记住 XA 连接参与了 JTA 事务。这意味着 XA 连接不支持 JDBC \x0d\的自动提交功能。同时,应用程序一定不要对 XA 连接调用 javasqlConnectioncommit() 或者 \x0d\javasqlConnectionrollback() 。相反,应用程序应该使用 UserTransactionbegin()、 \x0d\UserTransactioncommit() 和 serTransactionrollback() 。 \x0d\ 3、容器事务 \x0d\ 容器事务主要是J2EE应用服务器提供的,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当复杂的API实现。相对编码实现JTA事 \x0d\务管理,我们可以通过EJB容器提供的容器事务管理机制(CMT)完成同一个功能,这项功能由J2EE应用服务器提供。这使得我们可以简单的指定将哪个方\x0d\ 法加入事务,一旦指定,容器将负责事务管理任务。这是我们土建的解决方式,因为通过这种方式我们可以将事务代码排除在逻辑编码之外,同时将所有困难交给\x0d\ J2EE容器去解决。使用EJB CMT的另外一个好处就是程序员无需关心JTA API的编码,不过,理论上我们必须使用EJB。 \x0d\ 四、三种事务差异 \x0d\ 1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。 \x0d\ 2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂。 \x0d\ 3、容器事务,主要指的是J2EE应用服务器提供的事务管理,局限于EJB应用使用。 \x0d\ 五、总结 \x0d\ 事务控制是构建J2EE应用不可缺少的一部分,合理选择应用何种事务对整个应用系统来说至关重要。一般说来,在单个JDBC \x0d\连接连接的情况下可以选择JDBC事务,在跨多个连接或者数据库情况下,需要选择使用JTA事务,如果用到了EJB,则可以考虑使用EJB容器事务。\x0d\\x0d\如果满意请及时采纳,谢谢~

集中式数据处理优点:

1、部署结构简单。

2、数据容易备份,只需要把中央计算机上的数据备份即可。

3、不易感染病毒,只要对中央计算机做好保护,终端一般不需要外接设备,感染病毒的几率很低。

4、总费用较低,中央计算机的功能非常强大,终端只需要简单、便宜的设备。

缺点:

1、中央计算机需要执行所有的运算,当终端很多时,会导致响应速度变慢。

2、如果终端用户有不同的需要,要对每个用户的程序和资源做单独的配置,在集中式系统上做起来比较困难,而且效率不高。

分布式数据处理优点:

1、分布式网络中的每台机器都能存储和处理数据,降低了对机器性能的要求,所以不必购买昂贵的高性能机器,这大大降低了硬件投资成本。

2、扩展性极佳。在当前系统存储或计算能力不足时,可以简单地通过增加廉价PC机的方式来增加系统的处理和存储能力。

3、处理能力极强。庞大的计算任务可以在合理分割后由分布式网络中的机器并行地处理

缺点

1、计算程序全负荷运行时仍会对计算机的各个部件造成一定压力。

2、对项目方来说,参加分布式计算的志愿者不是项目方自己的人员,不是全体可信任,因此必须引入一定的冗余计算机制,才能防止计算错误、恶意作弊等。

扩展资料

分布式计算为信息不只分布在一个软件或计算机上,而是分布于多个软件上,可以用多台或一台计算机同时运行若干个软件,通过网络实现信息的共享。与其他算法相比,分布式算法有明显的优势:

1、共享资源更加方便。

2、能够实现计算负载的平衡,用多台计算机同时处理任务。

3、可以根据实际需要合理选择适当的计算机运行该程序。计算机分布式计算的灵魂是平衡负载和共享资源。分布式计算具有高效、快捷、准确的优势

参考资料来源:百度百科-集中式系统

参考资料来源:百度百科-分布式数据处理

参考资料来源:百度百科-分布式计算

1、优点:1,方便解耦,简化开发:通过spring提供的IOC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免原编码所造成过度程序耦合。有了spring,用户不再为了单列模式类,属性文件解析等这些很底层的需求编写代码,可以专注于上层的应用的2,AOP编程的支持:通过spring提供的AOP功能方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付spring的AOP支持允许将一些通用任务如安全,事务,日志等进行集中式管理,从而提供了更好的复用3,声明事务的支持:在spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明方式灵活地进行事务的管理,提高开发效率和质量4,方便程序的测试:可以用非容器依赖编程方式进行几乎所有的测试工作,在spring里,测试不在是昂贵的 *** 作,而是随手课做的事情没列入spring对junit4支持,可以通过注解方便的测试spring程序5,方便集成各种框架:spring不排斥各种优秀的开源框架,相反,spring可以降低各种框架的使用难度,spring提供了对各种哟毓秀框架

2、缺点:-从应用层面来说暂时没有缺点-因为简化开发,如果需要深入给底层去了解就非常困难(上层使用的越简单,底层的封装就越复杂)-源码的缺点:由于spring大并且全(要集成很多框架,提供非常多的扩展点)代码非常庞大,对于学习源码具有一定困难

以上就是关于开发mapreduce各有哪些优缺点全部的内容,包括:开发mapreduce各有哪些优缺点、SQL server 2005数据库有什么优点和缺点、常用的数据库软件有哪些它们的优缺点是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10201019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存