分布式系统(distributed system)是建立在网络之上的软件
系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统
),而不是硬件。内聚性是指每一个数据库
分布节点高度自治
,有本地的数据库管理系统
。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无复本、数据存于哪个站点以及事务在哪个站点上执行等。
Hadoop
Google的伟大很大程度上得益于其强大的数据存储和计算能力,GFS和Bigtable使得其基本摆脱了昂贵的人力运维,并节省了机器资
源;MapReduce使其可以很快看到各种搜索策略试验的效果。鉴于此,国内外出现了很多的模仿者,它们都是所谓的“高科技”企业,且往往还打上“云计
算”的标签。从头到尾实现一套Google的存储/计算/查询系统是极其复杂的,也只有寥寥无几的几个巨头可以做到,Hadoop做为一种开源的简化实
现,帮了很多科技公司的大忙。前些时候,Yahoo将Hadoop的创始人收于麾下,使得Hadoop完成华丽大转身,性能实现了一个飞跃式提升。
Hadoop主要包括HDFS(分布式文件系统,对应GFS),MapReduce(分布式计算系统)和HBase(分布式查询系统,对应
Bigtable),其中以HDFS和MapReduce较为成熟。另外,Hadoop还包括一些辅助系统,如分布式锁服务ZooKeeper,对应
Google Chubby。这一套系统的设计目标如下:
1. 简化运维:在大规模集群中,机器宕机,网络异常,磁盘错都属于正常现象,因此错误检查,自动恢复是核心架构目标。Google的解决方案就已经做到了机器随时加入/离开集群。
2. 高吞吐量:高吞吐量和低延迟是两个矛盾的目标,Hadoop优先追求高吞吐量,设计和实现中采用了小操作合并,基于操作日志的更新等提高吞吐量的技术。
3. 节省机器成本:Hadoop鼓励部署时利用大容量的廉价机器(性价比高但是机器故障概率大),数据的存储和服务也分为HDFS和HBase两个层次,从而最大限制地利用机器资源。
4.
采用单Master的设计:单Master的设计极大地简化了系统的设计和实现,由此带来了机器规模限制和单点失效问题。对于机器规模问题,由于
Hadoop是数据/计算密集型系统,而不是元数据密集型系统,单Master设计的单个集群可以支持成千上万台机器,对于现在的几乎所有应用都不成问
题;而单点失效问题可以通过分布式锁服务或其它机制有效地解决。
Google的其它模仿者包括,Microsoft
dyrad(模范Google MapReduce),Hypertable(Hadoop
HBase开发团队核心成员开始的一个开源项目,C++实现的Bigtable)。Google的解决方案不是万能的,然而相对我们普通人已经是几乎不可
逾越了。Hadoop做为Google的这个模型的简化实现,有很多不足,这里先列出几点,以后将通过阅读Hadoop源代码和论文逐渐展开分析。
Hadoop的几个明显缺点如下:
1. 采用Java实现。Java的IO处理虽然没有性能瓶颈,但是对于CPU密集型的任务是一个噩耗。这点可以通过对比HBase和Hypertable两个开源的Bigtable实现来做初步的验证。
2. 开源项目。开源本身是一柄双刃剑,它方便了大多数人,但是对于一个有一定规模的公司,项目发展方向的把握,技术保密,技术支持等都是采用Hadoop这种开源项目必须考虑的问题。另外,Hadoop作为一个比较新的项目,性能和稳定性的提升还需要一定时间。
3. (待续)
转载:http://blog.csdn.net/architects/article/details/3931027
hypertable介绍-1
一 Hypertable 是什么:
Hypertable
是一个正在进行中的开源项目,以google的bigtable论文为基础指导,使用c++语言实现。目的是为了解决大并发,大数据量的数据库需求。目前
只支持最基本的查询功能,对于事物,关联查询等都不支持。对单条查询的响应时间可能也不如传统数据库(要看数据量,量越大,对hypertable越有
力)。好处是,可以处理大量并发请求,和管理大量数据。可扩缩性好,扩容只需要增加集群中的机器就ok了。任何节点失效,既不会造成系统瘫痪也不会丢失数 据。在集群节点足够的情况下,并发量和数据量对性能基本没有影响。
注意:Hypertable不是关系数据库。而且它对稀疏数据是只存储其有效部分的。举个例子来说,假设一个表有10列。表中的一条记录,只有第三列有
值。那么实际上只有第三列被存储了,无值的列没有保留空位。这些特点使得 Hypertable 在使用的时候与关系数据库不同。
http://rdc.taobao.com/blog/cs/?p=60#more-60
分享到:
相关推荐
Hypertable是一种高度可扩展的分布式数据库管理系统,专为处理大规模结构化数据而设计。它基于Google Bigtable论文中的设计理念构建,旨在提供高效的数据存储和检索功能。Hypertable的核心组件包括Hyperspace、...
接着,HBase是另一个基于Hadoop生态系统的分布式数据库,它是Hadoop的补充,用于存储结构化数据。HBase与Google Bigtable有相似之处,但它是开源的,并针对Hadoop的HDFS(Hadoop Distributed File System)进行了...
Hypertable是一个开源的非关系型、分布式存储系统,旨在提供水平可扩展的高性能服务。百度在该领域的主要工作包括应用方法的探索、系统的完善和改进,以及与开源社区的合作。 整体来看,百度的Hadoop应用是基于...
HDFS是一个分布式文件系统,它设计为在低成本硬件上运行,具有高容错性,能提供高吞吐量的数据访问,特别适合处理和存储超大规模数据集。MapReduce则是处理这些大规模数据的编程模型,它将大任务分解为小任务在...
- **Hypertable:**基于HDFS的键值存储系统。 - **Voldemort:**高性能键值存储系统。 - **Azkaban:**批处理作业流程管理系统。 - **Sqoop:**用于在Hadoop和关系型数据库之间传输数据的工具。 - **Flume:**高效、...
【BitTable实现】这篇文档主要讨论的是分布式存储系统Hypertable,它是Google Bigtable的一个C++实现,专为处理大规模结构化数据而设计。Hypertable通过类似表格的数据组织方式,为分布式应用程序提供了高效的数据...
3. **Hypertable**:Hypertable 是一个开源的、分布式的、可扩展的列式存储系统,它建立在Hadoop之上,特别适合处理大规模的数据。Hypertable 提供了高性能的读写操作,适用于实时查询和大数据分析。 4. **基于...
分布式并行文件系统,为云计算平台解决了海量数据存储问题,并且提供了统一的文件系统命令空间,如GFS、Hadoop HDFS、KFS等,在此基础上,Hypertable实现了分布式结构化的数据组织,Hypertable可以对海量的结构化的...
HBase是一个高可靠、高性能的分布式存储系统,它是Google BigTable的开源实现。HBase基于Hadoop分布式文件系统(HDFS)构建,能够处理非常大的表(数十亿行数百万列)。HBase支持通过主键(row key)和主键范围来检索...
7. **Hypertable架构**:Google的Hypertable是一种分布式数据库,适用于大数据存储。文章可能对其架构进行了概述,探讨了在云存储场景下如何利用此类高性能存储系统。 综合上述内容,我们可以推断,《云计算及云...
Cassandra是为分布式存储而设计的,能够提供高可用性和高容错性。Redis则是一个以key-value存储系统,特别适用于高速读写操作。BigTable、HBase、Hypertable和Voldemort是针对大规模数据集设计的列式存储数据库。...
Hadoop是一个开源软件框架,用于分布式存储和处理大数据集。它由HDFS(Hadoop Distributed File System)和MapReduce两部分组成。 **3.2 Hive** Hive是一个基于Hadoop的数据仓库工具,允许用户通过类似SQL的查询...
- **Hypertable** 和 **Cassandra**:也是分布式NoSQL数据库,用于大数据存储和处理。 **大数据算法**: - **HyperLogLog**:用于估算大数据集中不重复元素的数量,以较低的空间复杂度实现。 - **Bloom Filter**:...