
分布式开发
文章平均质量分 62
adcxf
c/c , linux ,后端开发
展开
-
hadoop配置注意事项
1访问要通过 hosts或nameServer来访问,不能再配置文件中直接设置IP2.每次重新格式化后一定要删除hadoop_tmp目录下的所有文件3.多使用JPS查看状态,还有http的接口4.在每台机器上设置hostName原创 2011-03-16 22:50:00 · 517 阅读 · 0 评论 -
随机访问KV存储引擎
<br /><br />Key-Value系统只需要支持简单的随机读(Get),写(Put)和删除(Del)操作。由于磁盘是顺序存储介质,因此可以往数据文件追加Key-Value记录并在内存中存放记录所在的磁盘位置,即索引信息。由于对同一个Key的更新(Put)操作以最后一个为准,内存中的索引只需要记录最新的Key-Value对位置即可,而对于删除操作,也是往数据文件追加一个删除记录。由于内存的大小有限,需要尽可能减小索引记录的大小,比如只支持64位的整数Key(其它类型的Key可以通过md5运算得到64位转载 2011-03-24 17:55:00 · 1048 阅读 · 0 评论 -
Cassandra 和 HBase 中使用的 BigTable 模型
<br />英文原文链接:http://horicky.blogspot.com/2010/10/bigtable-model-with-cassandra-and-hbase.html<br />中文原文链接:http://lgone.com/html/y2010/812.html<br />本文主要对Cassandra和HBase特性和实现中对BigTable理论的应用。<br />1.Fundamentally Distributed(分布式存储)<br />项目从最初规划上,就是为海量数据服务的,当转载 2011-03-24 18:34:00 · 778 阅读 · 0 评论 -
zookeeper安装和应用场合(名字,配置,锁,队列,集群管理)
<br />安装和配置详解<br />本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。<br />单机模式<br />单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:/home/zookeeper-3.2.2 下,Zookeeper 的启动转载 2011-03-27 15:52:00 · 6155 阅读 · 0 评论 -
GFS, HDFS, Blob File System架构对比
GFS, HDFS, Blob File System架构对比<br />作者: Chuanhui | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明<br />本文链接地址: http://www.nosqlnotes.net/archives/119<br />分布式文件系统很多,包括GFS,HDFS,淘宝开源的TFS,Tencent用于相册存储的TFS (Tencent FS,为了便于区别,后续称为QFS),以及Facebook Haystack。其中,TFS,QFS以及Hayst转载 2011-03-28 23:14:00 · 1701 阅读 · 1 评论 -
CAP理论及系统一致性
<br />CAP理论及系统一致性<br />印象中CAP理论开始流行是从Amazon Dynamo的论文开始的,Amazon的CTO还在他的博客中介绍了最终一致性的概念,从此以后,各种会议和交流中都少不了CAP的影子。然而,对于分布式系统工程设计和开发来说,CAP意味着什么呢?<br />CAP 理论由 Berkerly 的 Brewer 教授提出,三者的含义如下:一致性 ( Consistency) :任何一个读操作总是能读取到之前完成的写操作结果;可用性 ( Availability) :每一个操作总转载 2011-03-30 20:53:00 · 1095 阅读 · 2 评论 -
有用的性能数据,请记住它吧~~
<br /><br />转载自:http://surana.wordpress.com/2009/01/01/numbers-everyone-should-know/L1 cache reference 0.5 nsBranch mispredict 5 nsL2 cache reference 7 nsMutex lock/unlock 100 nsMain memory reference 100 nsCompress 1K bytes with Zippy 10,000 nsSend 2K byte转载 2011-04-10 15:07:00 · 1581 阅读 · 0 评论 -
hadoop运行痕迹~~
<br />Hadoop 学习总结之一:HDFS简介<br />Hadoop学习总结之二:HDFS读写过程解析<br />Hadoop学习总结之三:Map-Reduce入门<br />Hadoop学习总结之四:Map-Reduce的过程解析<br /> <br />在使用hadoop的时候,可能遇到各种各样的问题,然而由于hadoop的运行机制比较复杂,因而出现了问题的时候比较难于发现问题。<br />本文欲通过某种方式跟踪Hadoop的运行痕迹,方便出现问题的时候可以通过这些痕迹来解决问题。一、环境的搭建转载 2011-04-12 16:30:00 · 1651 阅读 · 1 评论 -
HBase中的Client如何路由到正确的RegionServer
HBase中的Client如何路由到正确的RegionServerPosted onJuly 27, 2010byHarry_Ding<br />在HBase中,大部分的操作都是在RegionServer完成的,Client端想要插入,删除,查询数据都需要先找到相应的RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Client本身并不知道哪个RegionServer管理哪个Region,那么它是如何找到相应的RegionServe转载 2011-04-13 17:15:00 · 2421 阅读 · 0 评论 -
常见nosql数据库介绍
<br />随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域, 非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不 从心,暴露了很多难以克服的问题,例如:<br /><br />1、High performance – 对数据库高并发读写的需求 <br />web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常转载 2011-04-14 12:40:00 · 2548 阅读 · 0 评论 -
socket与RPC
<br /> RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用).<br />越底层,代码越复杂、灵活性越高、效率越高;越上层,抽象封装的越好、代码越简单、效率越差。Socket和RPC的区别再次说明了这点。<br />——————下面转自:http://johnyan.hostzi.com/phpbb3/viewtopic.php?t=1305——————转载 2011-04-16 22:16:00 · 4249 阅读 · 0 评论 -
JobTracker在集群规模扩大后可扩展性瓶颈~
<br /><br />当hadoop集群规模很小的时候,比如100台,200台,300台的时候,可能 一切看上去都很好,jobtracker分配task到计算槽位非常高效,集群的槽位资源在计算多的时候基本能够打满,所以集群的利用率非常高,一切看上 去都运转良好。在这种情况下,当计算越来越多,提交作业的人越来越多,集群的计算槽位逐渐无法满足需求的时候,大多数人第一个想到的解决办法就是:加机 器。的确,hadoop设计上的优秀和可扩展性可以方便的让集群管理员对集群增删机器,所以当集群计算资源紧缺,又有空闲的机转载 2011-04-24 14:42:00 · 3997 阅读 · 2 评论 -
淘宝分布式存储tair
<br />Tair是由淘宝网自主开发的Key/Value结构数据存储系统,在淘宝网有着大规模的应用。您在登录淘宝、查看商品详情页面或者在淘江湖和好友“捣浆糊”的时候,都在直接或间接地和Tair交互。Tair的功能<br />Tair是一个Key/Value结构数据的解决方案,它默认支持基于内存和文件的两种存储方式,分别和我们通常所说的缓存和持久化存储对应。<br />Tair除了普通Key/Value系统提供的功能,比如get、put、delete以及批量接口外,还有一些附加的实用功能,使得其有更广的适用转载 2011-03-24 00:07:00 · 1063 阅读 · 0 评论 -
zookeeper使用和应用场合
<br />zookeeper介绍<br />zookeeper是一个为分布式应用提供一致性服务的软件,它是开源的Hadoop项目中的一个子项目,并且根据google发表的论文来实现的,接下来我们首先来安装使用下这个软件,然后再来探索下其中比较重要一致性算法。 <br />zookeeper安装和使用<br />zookeeper的安装基本上可以按照 http://hadoop.apache.org/zookeeper/docs/current/ zookeeperStarted.html 这个页面上的步骤转载 2011-03-27 11:22:00 · 1728 阅读 · 0 评论 -
hdfs部分要点
namenode存储的数据: 主控服务器主要有三类数据:文件系统的目录结构数据,各个文件的分块信息,数据块的位置信息(就数据块放置在哪些数据服务器上...)。在GFS和HDFS的架构中,只有文件的目录结构和分块信息才会被持久化到本地磁盘上,而数据块的位置信息则是通过动态汇总过来的,仅仅存活在内存数据结构中,机器挂了,就灰飞烟灭了。每一个数据服务器启动后,都会向主控服务器发送注册消息,将其上数据块的状况都告知于主控服务器。俗话说,简单就是美,根据DRY原则,保存的冗余信息越少,出现不一致的可能性越低,付出一点原创 2011-03-19 17:48:00 · 1478 阅读 · 1 评论 -
存储模式RP和OPP
<br /><br />在分布式存储数据库的世界中,无论是基于Key/Value的数据库还是Column Base的数据库,都有一个重要的因子——Key,或者叫RowKey。我们总是根据Key来快速的获取存储的数据。毫不夸张的说,Key是读数据的基础。<br />对于Key的存储,有两种截然不同的分布方式,我们称之为:随机分布(RP)和顺序分布(OPP)<br />RP和OPP之间并没有绝对的优劣,但遗憾的是任何数据库只能选择其中的一种。在这篇文章中我们希望能够讨论一下两种方式的优劣,经典数据库的选择和我们转载 2011-05-08 18:36:00 · 2700 阅读 · 0 评论 -
mongodb和redis(未完)
<br />mongodb:<br />1)文档数据库<br />MongoDB的面向文档采用的是BSON。如 blog的文章和评论,可以做如下设计:<br />{ 'id':1, 'author':'NinGoo', 'title':'白话MongoDB(一)', 'content':'按照官方的说法,此处省略一万字', comment:[ { 'comment-author':'宋兵甲', 'comment-content':'有木有' } , { 'commen原创 2011-05-08 23:33:00 · 3503 阅读 · 0 评论 -
hdfs和mapreduce中各个组件之间的RPC
<br /><br /><br /> <br /> <br /><br /> <br />转载 2011-03-19 20:54:00 · 1235 阅读 · 0 评论 -
优雅的bitcask
<br /><br />Bitcask是一个日志型的基于hash表结构和key-value存储模型,我了解到他也就几天时间,但是其简洁有效的设计思路,让我的某种技术癖好得到了极大满足,于是酝酿出这篇东西。<br />Bitcask模型指导下的存储系统有Riak和豆瓣的beansdb新版本(beansdb新版本信息,参见这里),下面就简单的介绍一下Bitcask模型:1.日志型的数据文件<br />何谓日志型?就是append only,所有写操作只追加而不修改老的数据,就像我们的各种服务器日志一样。在B转载 2011-03-24 00:52:00 · 773 阅读 · 0 评论 -
Bigtable Merge-Dump存储引擎
<br /><br />作者: Chuanhui | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明<br />本文链接地址: http://www.nosqlnotes.net/archives/122<br />单机存储引擎解决单机读写问题,Merge-Dump存储引擎设计成一种通用的存储引擎,同时支持数据写入,随机读取和顺序扫描功能。顺序扫描功能应用很广,比如MapReduce批处理,同一个广告主的所有关键词广告统计,用户浏览所有的收藏信息,淘宝卖家管理大量的商品等。简单的KV系统转载 2011-03-24 17:56:00 · 793 阅读 · 0 评论 -
存储系统总结(未完)
<br />1)全内存存储<br />内存存储索引和数据<br /> <br />2)内存+磁盘<br />内存存储索引等,磁盘存储数据文件<br />索引主要有hash和B+树等;<br />磁盘数据文件大多采用日志性数据文件;只在文件末尾追加而不修改文件,写入和更新是追加新记录,删除也是追加记录(记录的value为特殊的值);此外,还有定期merge数据文件的过程,以免数据文件过多过大(随机io转换为顺序io,加快读写效率)。<br /> <br />hbase中使用b+树索引数据(根据row key原创 2011-03-26 18:06:00 · 785 阅读 · 0 评论 -
Chubby总结
参考文献:[1] The Chubby lock service for loosely-coupled distributed systems [2] Paxos Made Simple声明文中大部分的观点来自于文献[1]中的描述,但也夹杂了部分本人自己的理解,所以不能保证本文的正确性。真想深入了解Chubby还是好好读原版论文吧:)前言MapReduce 很多人已经知道了,但关于Chubyy似乎熟悉它的就非常有限,这倒是不奇怪,因为MapReduce是一个针对开发人员的 ProgrammingModel转载 2011-03-26 18:07:00 · 934 阅读 · 0 评论 -
Paxos在大型系统中常见的应用场景
<br /><br />在分布式算法领域,有个非常重要的算法叫Paxos, 它的重要性有多高呢,Google的Chubby [1]中提到<br />all working protocols for asynchronous consensus we have so far encountered have Paxos at their core.<br />关于Paxos算法的详述在维基百科中有更多介绍,中文版介绍的是choose value的规则[2],英文版介绍的是Paxos 3 phase转载 2011-03-26 18:23:00 · 763 阅读 · 0 评论 -
Zookeeper全解析——Client端
Zookeeper全解析——Client端Posted onAugust 10, 2010byHarry_Ding<br />Zookeeper的Client直接与用户打交道,是我们使用Zookeeper的interface。了解ZK Client的结构和工作原理有利于我们合理的使用ZK,并能在使用中更早的发现问题。本文将在研究源码的技术上讲述ZK Client的工作原理及内部工作机制。<br />在看完ZK Client的大致架构以后我希望能有一种简单的方式描述ZK Client的基本结构,想来想去我觉得转载 2011-03-26 18:39:00 · 1758 阅读 · 0 评论 -
Zookeeper全解析——Paxos作为灵魂
<br />原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。<br />那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。<br />先说Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apac转载 2011-03-26 18:40:00 · 1017 阅读 · 0 评论 -
Actor模型
最近在看Yahoo的S4: distributed stream computing platform,主要是结合了MapReduce和Actor模型,于是找了些资料学习Actor模型,在这里简单介绍一下,S4等后续文章再介绍。 Actor这个模型由Carl Hewitt在1973年提出,Gul Agha在1986年发表技术报告“Actors: A Model of Concurrent转载 2012-02-24 14:59:32 · 3551 阅读 · 0 评论