`
niedhui
  • 浏览: 12210 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

KFS编译和安装

阅读更多

 

最近看了一下 Kosmos File System (KFS), 目前的版是 0.2.1 。现在总结一下。 KFS 是一个克隆 GFS 的文件系统,用 C++ 编写,客户端支持 C++,pyton JAVA 。主要也是用来存储大文件的,其中的 chunk 相当于 Hadoop 中的 block ,每个 chunk 都为 64M.

一、编译

SourceForge 上下载的源代码之后,按照网站上的说明进行编译。编译用到的包包括 Boost,Cmake,log4cpp,gcc,zlib ssl 。这后就可以创建 build ,进行编译了。其中需要注意的是网站所说的 gmake 其实 就是 make 命令(以前不懂 ) ,还会用到 gtar ,其实就是 tar 命令,可以做一个链接 sudo ln -s /bin/tar /bin/gtar

我 们需要用 java 客户端,很简单,只要在 kfs 的目录下执行 ant jar 命令就可了。之后把生成的 jar 包导入到自己的 project 中就可了。同时需要把 kfs/build/lib 添加到系统变量 LD_LIBRARY_PATH 中去 , 当通到 JAVA 客户端访问 KFS 时,会用到这里的链接库。

二、发布 ( 安装 )

KFS 的结构包含一个 Meta-Server( 相当时 Hadoop 中的 NameNode) ,和多个 ChunkServer( 相当于 Hadoop 中的 DataNode)

MetaServer 维护一个全局文件命名空间( global NameSpace) ChunkServer 用来存储实际的数据。

在发布时,先编辑 kfs/scripts 下的 machines.cfg ,这个配置文件用来配置整个 DFS metaserver chunkserver 的属性。对于 MetaServer, 包括:

[metaserver]

node : 用来指定 metaserver 应该运行在哪台机器上

rundir : 指定 metaserver 应该安装在该 node 中的哪个位置。

baseport : 指定 metaserver 所监听的端口

backup_path : 指定用来备份 metaserver checkpoint 的位置,通常与 metaserver 在不同的机器上, kfs 会定期的用 rsync 命令来将 metaserver checkpoint 文件备份到该变量指定的目录。

clusterkey : KFS 运行在集群中时,需要指定这个值,用来确定 metaserver chunkserver 是属于哪一个集群。为了简单,这里可以指定为一个普通的字符串,如 clusterkey:kfs-cluster1


对于 chunkserver

[chunkserver1]

node :

rundir :

baseport :

这三个和 metaserver 的概念是一样的。同时, chunkserver 还有另外的两项

chunkDir : 用来指定 kfs chunk 存放的目录,即数据文件的存储目前。可以指定多个,以空格分开。

space : 指定该 chunkserver 所提供的存储容量。

我的用测试的配置如下:

[metaserver]

node: 192.168.1.200

rundir: /home/kfs/meta

baseport: 20000

backup_path: 192.168.1.201:/home/kfs/meta_back

clusterkey: kfs-cluster1

[chunkserver1]

node: 192.168.1.202

rundir: /home/kfs/chunk

baseport: 30000

chunkDir: /home/kfs/chunk/bin/kfschunk1 /home/kfs/chunk/bin/kfschunk2

space: 20 G

[chunkserver2]

node: 192.168.1.203

rundir: /home/kfs/chunk

baseport: 30000

chunkDir: /home/kfs/chunk/bin/kfschunk1 /home/kfs/chunk/bin/kfschunk2

space: 20 G

KFS 是通过 ssh scp 来将 metaserver chunkserver 所需要的文件拷贝过去的,所以用于发布的机器,要能不需要输入密码就可以通过 ssh 连接到 metaserver chunkserver 中去。

进入 fks/scripts 目录 ,通过

python kfssetup.py -f machines.cfg -b ../build

就可以安装 metaserver chunkserver 了。 -f 用于指定配置文件 , -b 用于指定 build 目录。

要想御载 kfs, 则执行

python kfssetup.py -f machines.cfg -b ../build/bin -U

之后通过

python kfslaunch.py -f machines.cfg -s

就可以启动所有的 metaserver chunkserver 了。

python kfslaunch.py -f machines.cfg -S

用于关闭所有的 server.

在启动后,如想查看是滞启动成功,可用 kfs/build/bin/tools 下的 fksping 这个命令。

如要检查 metaserver 是否启动成功,则

kfsping -m -s 192.168.1.200 -p 20000

其中的 -m 指定要 ping 的是 metaserver -s 指定 server IP -p 指定 server 的监听端口。
要检查 chunkserver1 是否启动成功,则:
kfsping -c -s 192.168.1.201 -p 30000
如果想单独关闭某个 chunkserver ,则可以在 chunkserver 中执行以下命令:
sudo scripts/kfsrun.sh -S -c -f bin/ChunkServer.prp
这样只会关闭这个 chunkserver ,而不影响其他 server.

关闭后重新启动: scripts/kfsrun.sh -s -c -f bin/ChunkServer.prp

三、通过 JAVA 访问 KFS

下载的包中, examples 目录下有一个通 JAVA 使用的例子。


所有的对文件的操作都是通过KfsAccess这个类来完成的。最简单的创建 一个文件,并向其中写文件:

KfsAccess kfsAccess = new KfsAccess("192.168.1.200",20000);
KfsOutputChannel outputChannel = kfsAccess.kfs_create("testfile");;
int length = outputChannel.write(ByteBuffer.wrap("testdata".getBytes()));
outputChannel.sync();
outputChannel.close();

 更多的API可参考examples下面的示例。有一点注意,各个metaserver、client都要有相互的DNS解析。





分享到:
评论
2 楼 cx20065615 2010-01-18  
你好,我在编译kfs的过程中也遇到了很多问题。能不能留个联系方式
我的qq:196616919
1 楼 xianglei 2008-10-27  
你好我用python kfssetup.py -f machines.cfg -b ../build这个命令启动的时候提示我文件夹不存在是什么原因啊?谢谢

相关推荐

    HDFS和KFS的比较

    综上所述,HDFS和KFS都是为解决大数据存储和处理而设计的分布式文件系统,它们在架构、功能、性能等方面各有特点。HDFS由于其广泛的社区支持和生态系统,成为了大数据领域的主流选择;而KFS则在某些特定场景下可能...

    kfs文件系统和GOOGLE的GFS差不多

    - KFS和GFS都是基于分布式架构的文件系统,这意味着它们将数据分散存储在多台服务器上,从而实现了高可用性和可扩展性。这样的设计能够处理PB级别的数据,并且可以轻松地通过添加更多的节点来扩展存储容量。 2. **...

    kfs_1_0_1_release.rar

    - **Makefile**:构建脚本,指导编译和链接过程,使开发者能够轻松构建和测试KFS。 - **kfsdebug.c**:调试相关代码,帮助开发者在开发过程中追踪和定位问题。 - **readme.txt**:通常包含项目简介、使用指南和...

    kfs 分布式系统的文件管理分析

    KFS(Kosmos File System)是一种开源的分布式文件系统,设计目标是为大规模数据处理提供高吞吐量、可扩展性和容错性。KFS的设计灵感来自于Google的GFS(Google File System),它们都是为了解决大数据量存储和处理...

    KFS文件系统所有版本(0.2-0.3)5个版本

    0.3版则是KFS的一个重大升级,它可能引入了更多的新特性,例如更高级的故障检测和恢复机制、支持更复杂的文件权限模型,或者加入了对数据加密和安全性的加强。此外,0.3版可能对原有的API进行了调整,以适应更广泛的...

    渠道营销KFS分析.doc

    "KFS"(成功关键因素)在渠道营销中的含义是指那些能够决定渠道合作效果和营销成功的关键因素。对于中国企业来说,面对市场容量大、竞争对手众多的现状,掌握有效的渠道营销技术显得尤为关键。 首先,战术层面的...

    opensource网络文件系统kfs

    KFS-0.5版本可能包含相关的配置示例、源代码、编译脚本以及用户文档,帮助用户快速理解和部署系统。 **应用场景** KFS常用于大规模数据处理、数据分析、流媒体服务、日志存储等场景,其中大数据处理工具如Hadoop...

    HDFS和KFS的比较.pdf

    HDFS(Hadoop Distributed File System)和KFS(Kosmos File System)都是GFS(Google File System)的开源实现,它们被设计用来处理大规模分布式存储。HDFS是Hadoop生态系统的一部分,使用Java语言开发,擅长处理高...

    金仓数据同步工具kfs部署手册

    "金仓数据同步工具kfs部署手册" ...金仓数据同步工具kfs部署手册涵盖了Kingbase FlySync的安装、配置、部署和维护等多个方面的知识点,为用户提供了详细的指导和支持,以帮助用户快速部署和使用Kingbase FlySync。

    基于KFS分布式文件系统元数据模型的改进.pdf

    本篇文章针对分布式文件系统KFS(Kosmix File System)的元数据模型进行了改进研究,提出了利用内存缓冲策略和批量插入方法优化元数据管理效率的改进模型,并通过实现在开源KFS系统中的应用与算法复杂度分析,验证了...

    mkfs.jffs2安装源码包

    《mkfs.jffs2安装源码包详解》 mkfs.jffs2是一款用于创建JFFS2(Journal Flash File System version 2)文件系统的工具。JFFS2是针对闪存设备的一种日志文件系统,广泛应用于嵌入式系统和Linux环境,尤其在物联网...

    大华DH-KFS0104HE-AS

    5. **尺寸与重量**:尺寸为325×242×55mm,重量为2.5kg(不含硬盘),便于安装和移动。 ### 结论 综上所述,大华DH-KFS0104HE-AS硬盘录像机凭借其强大的功能和稳定的性能,在视频监控领域具有广泛的应用前景。...

    kfs嵌入式文件系统 v1.0.3

    kfs文件系统来源于EmbSeek团队一个基于ARM7的嵌入式控制器项目,是一个免费的开源的小型嵌入式文件系统。kfs嵌入式文件系统给出了一种管理小容量()存储器的便捷方法,可以应用于使用EEPROM、FLASH作为存储介质的...

    分布式文件系统白皮书 KFS

    3. **高并发和高吞吐量**:通过集群扩展,KFS能提供大规模的并发访问和高数据传输速率。 4. **文件多副本机制**:内建的文件复制策略用于防止单点故障,保证数据的安全性和可用性。 5. **名称同步机制**:确保...

    分布式文件系统KFS的架构与性能分析.pdf

    通过比较KFS与这些系统,我们可以获得KFS的定位和它在技术实现上的优势和不足。 关于性能分析的部分,文档中提到了“性能指标”,如I/O操作和吞吐量(如4KB、1MB、64MB等不同数据块大小的吞吐量数据)。性能指标是...

    KFS内容营销组合策略解读报告.pdf

    1.KFS内容营销组合策略:该策略是指整合多种营销方式,包括内容营销、搜索引擎优化、社交媒体营销、电子邮件营销、事件营销等,以达到品牌认知、网站流量和转换率提升的目的。 2.内容营销:内容营销是指通过创建和...

    kfs:瓜里金融系统

    确保您已安装Java 7+和Maven 3+ 设置本地MySQL 5.5.x数据库(有关详细信息,请参见上面的技术文档链接) 切换到发行版的kfs目录 运行maven的tomcat7:run-war来构建项目并启动服务器。 这是什么 kfs-core / 核心...

    kfs:凯尔的文件系统

    Go语言是Google开发的一种静态类型、编译型的编程语言,以其简洁的语法、并发支持和跨平台能力而受到广泛的欢迎,这使得kfs具备了良好的性能和易用性。 在kfs的设计中,它采用了分片存储的方式,将大文件分割成多个...

    流程重组的KFS(制度范本、DOC格式).doc

    通过对“流程重组的KFS(制度范本、DOC格式).doc”文档的分析,我们可以提炼出九个关键要点,这些要点为企业制定和执行有效的流程重组策略提供了指导。 首先,核心管理层的优先关注至关重要。流程重组通常涉及企业...

Global site tag (gtag.js) - Google Analytics