Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。)Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了GoogleBigTable基于列族(ColumnFamily)的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo2.0。
分布式Key-Value存储系统:Cassandra入门。简介: ApacheCassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。Cassandra不是一个数据库,它是一个混合型的非关系的数据库,类似于Google的BigTable。本文主要从以下五个方面来介绍Cassandra:Cassandra的数据模型、安装和配制Cassandra、常用编程语言使用Cassandra来存储数据、Cassandra集群搭建。
ESB全称为Enterprise Service Bus,即企业服务总线。 ESB是传统中间件技术与XML、Web服务等技术相互结合的产物,用于实现企业应用不同消息和信息的准确、高效和安全传递。 一个ESB是一个预先组装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件。
Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google 的很多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常大,无论是在数据量上(从URL到网页到卫星图像)还是在响应速度上(从后端的批量处理到实时数据服务)。尽管应用需求差异很大,但是,针对Google的这些产品,Bigtable还是成功的提供了一个灵活的、高性能的解决方案。本论文描述了Bigtable提供的简单的数据模型,利用这个模型,用户可以动态的控制数据的分布和格式;我们还将描述Bigtable的设计和实现。
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。云计算模式提高了可用性。云计算模式由五个主要特点三个服务模式、四个部署模式构成。
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
BEA TUXEDO是在企业、Internet 这样的分布式运算环境中开发和管理三层结构的客 户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。BEA TUXEDO是企业、 Internet 分布式应用中的基础主干平台。它提供了一个开放的环境,支持各种各样的客 户、数据库、网络、遗留系统和通讯方式。
MapReduce是一个在海量数据上进行数据处理的并行编程模型,它特别适合于海量非结构化和结构化数据的搜索、分析和挖掘任务,已经开始被人们广泛使用。对于兴起的众多类似MapReduce系统来说,如何有效地评估和分析对比这些系统,成为当前一个需要解决的问题。本文详细讨论了针对MapReduce运行系统的性能评估指标和方法,设计和选择一系列具有代表性的程序和数据作为基准,用来评估和分析MapReduce系统。在这一评估方法指导下,本文在我们自己实现的MapReduce运行系统——Tplatform平台上扩展了Profiling功能,然后进行了一系列评估实验,来分析和寻找系统性能瓶颈,为未来系统优化提供依据。通过实验我们发现了我们系统的一些可改进的问题如任务调度、落后者问题等等。我们选择了针对导致提交任务延迟增加的落后者问题,通过实现后备任务策略来尝试改进。经模拟实验结果显示,我们提出的改进策略能够有效地改进落后者问题的性能问题。关键词:MapReduce,性能评估,落后者问题,后备任务策略。
淘宝分布式数据处理实践淘宝数据平台及产品部周敏zhouchen.zm@taobao.com2010-09-04主要内容淘宝的数据云梯介绍对Hadoop的主要功能扩展与改造Hive实践对Hive的改造分布式数据仓库构思
所谓分布式,在这里,很狭义的指代以Google的三驾马车,GFS、Map/Reduce、BigTable为框架核心的分布式存储和计算系统。通常如我一样初学的人,会以Google这几份经典的论文作为开端的。它们勾勒出了分布式存储和计算的一个基本蓝图,已可窥见其几分风韵,但终究还是由于缺少一些实现的代码和示例,色彩有些斑驳,缺少了点感性。幸好我们还有OpenSource,还有Hadoop。Hadoop是一个基于Java实现的,开源的,分布式存储和计算的项目。作为这个领域最富盛名的开源项目之一,它的使用者也是大牌如云,包括了Yahoo,Amazon,Facebook等等(好吧,还可能有校内,不过这真的没啥分量...)。Hadoop本身,实现的是分布式的文件系统HDFS,和分布式的计算(Map/Reduce)框架,此外,它还不是一个人在战斗,Hadoop包含一系列扩展项目,包括了分布式文件数据库HBase(对应Google的BigTable),分布式协同服务ZooKeeper(对应Google的Chubby),等等。
Hbase是一个分布式开源数据库,基于Hadoop分布式文件系统,模仿并提供了基于Google文件系统的Bigtable数据库的所有功能。Hbaes的目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表。Hbase可以直接使用本地文件系统或者Hadoop作为数据存储方式,不过为了提高数据可靠性和系统的健壮性,发挥Hbase处理大数据量等功能,需要使用Hadoop作为文件系统,那么我们就先要了解Hadoop文件系统的基本特性和原理,才能更好地理解Hbase的工作方式。
MapReduce是一个编程模式,它是与处理/产生海量数据集的实现相关。用户指定一个map函数,通过这个map函数处理key/value(键/值)对,并且产生一系列的中间key/value对,并且使用reduce函数来合并所有的具有相同key值的中间键值对中的值部分。现实生活中的很多任务的实现都是基于这个模式的,正如本文稍后会讲述的那样。<br><br> 使用这样的函数形式实现的程序可以自动分布到一个由普通机器组成的超大几群上并发执行。run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统得资源。<br><br> 我们的MapReduce系统的实现运行在一个由普通机器组成的大型集群上,并且有着很高的扩展性:一个典型的MapReduce计算处理通常分布到上千台机器上来处理上TB的数据。程序员会发现这样的系统很容易使用:已经开发出来了上百个MapReduce程序,并且每天在Google的集群上有上千个MapReducejob正在执行。
目前,基于类似思想的Open Source项目还很多,如Facebook用于用户分析的Hive。 HDFS作为一个分布式文件系统,是所有这些项目的基础。分析好HDFS,有利于了解其他系统。由于Hadoop的HDFS和MapReduce是同一个项目,我们就把他们放在一块,进行分析。
Hadoop是Google MapReduce 的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同java程序员可以不考虑内存泄露一样, MapReduce的run-time系统会解决输入数据的分布细节,跨越机器集群的程序执行调度,处理机器的失效,并且管理机器之间的通讯请求。这样的模式允许程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大的分布式系统得资源。
Hadoop的系列化是通过Writable接口来实现的,只满足了前两条设计,在org.apache.hadoop.io包下包含了大量的可序列化的组件,它们都实现了Writable接口,Writable接口提供了两个方法,write和readFields,分别用来序列化和反序列化。
HDFS作为一个分布式文件系统,是所有这些项目的基础。分析好HDFS,有利于了解其他系统。由于Hadoop的HDFS和MapReduce是同一个项目,我们就把他们放在一块,进行分析。
大家都熟悉文件系统,在对HDFS进行分析前,我们并没有花很多的时间去介绍HDFS的背景,毕竟大家对文件系统的还是有一定的理解的,而且也有很好的文档。在分析Hadoop的MapReduce部分前,我们还是先了解系统是如何工作的,然后再进入我们的分析部分。
Apache Cassandra是一套开源分布式Key-Value存储系统。它最初由Facebook开发,用于储存特别大的数据。拥有:分布式;基于column的结构化;高伸展性等特点。它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对Cassandra 的一个写操作,会被复制到其他节点上去,对Cassandra的读操作,也会被路由到某个节点上面去读取。对于一个Cassandra群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。Cassandra是一个混合型的非关系的数据库,类似于Google的BigTable。其主要功能比Dynomite(分布式的Key-Value存 储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库 的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。)Cassandra最初由Facebook开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础,结合了Google BigTable基于列族(Column Family)的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo 2.0。