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方式的调用。并且,现在已经可以被Hadoop和Hypertable这两个项目支持,作为底层存储。
那么KFS到底有什么特性呢?
自动存储扩充(添加新的chunckserver,系统自动感知)
有效性(复制机制保证文件有效性,一般文件会被以三种方式存储,当其中一个chunkserver出现错误的时候,不会影响数据的读取;)
文件复制粒度:可以配置文件复制的粒度,最大可以被复制64份
还原复制:当其中一个Chunckserver出现故障的时候,Metaserver会强制使用其他的chunckserver
负载平衡(系统周期地检查chunkservers的磁盘利用,并重新平衡chunkservers的磁盘利用,HDFS现在还没有支持)
数据完整性(当要读取数据时检查数据的完整性,如果检验出错使用另外的备份覆盖当前的数据)
文件写入:当一个应用程序创建了一个文件,这个文件名会被立刻写入文件系统,但为了性能,写入的数据会被缓存在kfs客户端.并且周期性的从缓存中把数据更新到chunkserver中。当然,应用程序也可以强制把数据更新到服务器上。一旦数据被更新到服务器,就可以被有效的读取了。(我怎么能知道这个文件什么时候可以读取了呢?)
契约(使用契约来保证Client缓存的数据和文件系统中的文件保持一致性)
支持FUSE(在linux系统下,可以通过Fuse 映射一个文件夹,从而可以很方便的读取kfs的文件)
支持C++,Java,Python方式的调用
提供了丰富的工具程序,如kfsshell,cp2kfs等
提供了启动和停止服务的脚本
KFS高级特性:
支持同一文件多次写入和Append,不过不能在文件中间插入数据。 (HDFS支持一次写入多次读取,不支持Append)
文件及时生效,当应用程序创建一个文件时,文件名在系统马上有效。(HDFS文件只当输入流关闭时才在系统中有效,因此,如果应用程序在关闭前出现异常导致没有关闭输入流,数据将会丢失。)
这一点好像也不是很好,如果输入流中断,在kfs里会留下一个错误的文件,当读取时会出现错误,好像也没有太大的意义。
分享到:
相关推荐
KFS可能采用了类似于Google的GFS(Google File System)的设计原则,这是一种专为大规模分布式存储所设计的文件系统。 文档提到了多种技术,包括C++、Java和Python编程语言,这些语言的使用表明KFS可能是为开发者...
在这个场景下,"分布式文件系统 c++编写" 指的是一个用C++实现的分布式文件系统项目,可能是模仿或受到了Google的分布式文件系统GFS(Google File System)的启发。 GFS是Google为了处理大规模数据存储和处理而设计...
从提供的文件内容看,目前市场上存在多种应用级分布式文件系统,例如HDFS(Hadoop Distributed File System)、MogileFS、FastDFS、GFS(Google File System)、pNFS(并行网络文件系统)、KFS等。HDFS是Hadoop项目...
KFS(Kosmos File System)是一种开源的分布式文件系统,设计目标是为大规模数据处理提供高吞吐量、可扩展性和容错性。KFS的设计灵感来自于Google的GFS(Google File System),它们都是为了解决大数据量存储和处理...
- KFS和GFS都是基于分布式架构的文件系统,这意味着它们将数据分散存储在多台服务器上,从而实现了高可用性和可扩展性。这样的设计能够处理PB级别的数据,并且可以轻松地通过添加更多的节点来扩展存储容量。 2. **...
开源网络文件系统KFS(Kosmos File System)是一种分布式文件系统,旨在提供高吞吐量的数据访问,特别适合大规模数据处理应用。它的设计灵感来源于Google的GFS(Google File System),但KFS是一个独立的实现,具有...
在体系架构方面,HDFS和KFS都采用分布式文件系统的设计,它们的元数据管理采用集中式方式,而数据则被分割成块(chunks)后分布式存储在集群中。体系架构的核心组成部分包括MetaServer、ChunkServer、Namespace管理...
分布式文件系统如GFS、HDFS和KFS等均是建立在谷歌公司开发的GFS系统基础之上。并行计算方面,谷歌的MapReduce编程模式应用最为广泛。它对数据分布、任务执行、数据容错、带宽延时等问题进行封装处理后,用户可直接...
它们提供了跨多个物理存储节点的高效存储解决方案,常见的分布式文件系统有RedHat GFS、IBM的GPFS、SUN的Luster等。这些系统通常在操作系统的内核层面提供开放接口供文件访问。对于一些依赖廉价商用硬件的分布式文件...
6. `KFS`:Kosmos文件系统,一种类似HDFS和Google GFS的系统。 7. `FtpFileSystem`:FTP服务器支持的文件系统。 8. `S3`:Amazon S3的两种访问方式,`s3n`(本地)和`s3`(基于块)。 HDFS文件的读取过程涉及以下...
它建立在分布式并行文件系统之上,如GFS、Hadoop HDFS、KFS等,提供了结构化的数据组织,支持类似SQL的接口,方便用户进行数据操作。 2. **数据模型** - **行键(Row Key)**:Hypertable的数据组织成多维稀疏矩阵...
分布式并行技术是云计算数据挖掘平台的核心技术之一,它最初由Google的GFS系统提出,随后的HDFS和KFS等理论基础发展出的开源分布式文件系统,在商业和学术研究领域得到广泛应用。 在数据挖掘平台架构中,数据获取、...
分布式文件系统如GFS、HDFS、KFS用于海量数据存储,解决性能和容错问题。MapReduce、Pregel、Dryad等分布式计算框架简化并行计算,提高处理效率。搜索引擎技术提供高效检索,结合智能检索方式提升舆情分析质量。 5....
分布式并行文件系统,为云计算平台解决了海量数据存储问题,并且提供了统一的文件系统命令空间,如GFS、Hadoop HDFS、KFS等,在此基础上,Hypertable实现了分布式结构化的数据组织,Hypertable可以对海量的结构化的...