flyonok

统计

留言簿(8)

ACE

book

boost

bsd

c study

c++

code download

codeblock

computer clound

Eclipse

embed system

erlang

ET++

gtk

ic card

java

KDE

libevent

linux

linux--MM

mysql

network education

one card

oracle

pcap relation

php

powerbuilder

python

QT

software config

software test

SQL server

UML

wireless

wxwidgets

陈宾

阅读排行榜

评论排行榜

kfs简介


基于GFS思想的分布式文件系统Kosmosfs[转]
2008-10-16 09:43
KFS(KOSMOS DISTRIBUTED FILE SYSTEM),不是KFC(肯德基)哦,是一个类似GFS的开源分布式文件系统。

自从去年Google 发布了他的几款主要产品gfs,bigtable,map-reduce 的相关文档后,一些牛人就马上行动起来,折腾出来实现类似功能的开源产品了,kfs就是其中之一,主要模仿的是gfs的功能。

gfs,bigtable,map-reduce是google产品的三大基石,而这三个产品现在都有了对应的开源实现:

gfs:
kfs(据传google创始人的同窗所创),hdfs(hadoop的子项目)

bigtable:
hbase(hadoop的子项目),Hypertable(从hbase项目组分离出去的,用c++实现)

map-reduce:
hadoop(apache的项目,使用java实现,目前在yahoo全力打造,已可以支持2000个以上的节点并行计算的规模)

还是先说说KFS吧,这个项目说起来和Google还有点渊源,江湖传闻Google的两个共同创始人佩奇和布林有两个大学同窗,名叫Anand Rajaraman和Venky Harinarayan,是两个印度人,看到Google获得巨大成功之后,心里有点不服气,于是就动手做了个一个新的搜索引擎Kosmix,希望能证明他们的能力也是很强的,在做这个搜索引擎的过程中,他们实现了一个类似GFS的文件系统KFS,并把它开源了。

KFS是用C++写的,但是其客户端支持C++,Java,Python方式的调用。并且,现在已经可以被HadoopHypertable这两个项目支持,作为底层存储。

那么KFS到底有什么特性呢?

  1. 自动存储扩充(添加新的chunckserver,系统自动感知)
  2. 有效性(复制机制保证文件有效性,一般文件会被以三种方式存储,当其中一个chunkserver出现错误的时候,不会影响数据的读取;)
  3. 文件复制粒度:可以配置文件复制的粒度,最大可以被复制64份
  4. 还原复制:当其中一个Chunckserver出现故障的时候,Metaserver会强制使用其他的chunckserver
  5. 负载平衡(系统周期地检查chunkservers的磁盘利用,并重新平衡chunkservers的磁盘利用,HDFS现在还没有支持)
  6. 数据完整性(当要读取数据时检查数据的完整性,如果检验出错使用另外的备份覆盖当前的数据)
  7. 文 件写入:当一个应用程序创建了一个文件,这个文件名会被立刻写入文件系统,但为了性能,写入的数据会被缓存在kfs客户端.并且周期性的从缓存中把数据更 新到chunkserver中。当然,应用程序也可以强制把数据更新到服务器上。一旦数据被更新到服务器,就可以被有效的读取了。(我怎么能知道这个文件什么时候可以读取了呢?
  8. 契约(使用契约来保证Client缓存的数据和文件系统中的文件保持一致性)
  9. 支持FUSE(在linux系统下,可以通过Fuse 映射一个文件夹,从而可以很方便的读取kfs的文件)
  10. 支持C++,Java,Python方式的调用
  11. 提供了丰富的工具程序,如kfsshell,cp2kfs等
  12. 提供了启动和停止服务的脚本

KFS高级特性:

  1. 支持同一文件多次写入和Append,不过不能在文件中间插入数据。 (HDFS支持一次写入多次读取,不支持Append)
  2. 文件及时生效,当应用程序创建一个文件时,文件名在系统马上有效。(HDFS文件只当输入流关闭时才在系统中有效,因此,如果应用程序在关闭前出现异常导致没有关闭输入流,数据将会丢失。)
    这一点好像也不是很好,如果输入流中断,在kfs里会留下一个错误的文件,当读取时会出现错误,好像也没有太大的意义。

posted on 2010-08-17 23:15 flyonok 阅读(751) 评论(0)  编辑 收藏 引用 所属分类: hadoop


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理