分布式文件系统KFS源码编译与安装过程
2011-08-22 23:52
387 查看
Kosmos distributed file system (KFS)是一个专门为数据密集型应用(搜索引擎,数据挖掘等)而设计的存储系统,类似于Google的GFS和Hadoop的HDFS分布式文件系统。 KFS使用C++实现,支持的客户端包括C++,Java和Python。
以前曾在开源KFS基础上做过开发,这里介绍一下如何进行KFS的源码编译与安装过程(以kfs-0.5为例)。
Boost (1.34或以上)
cmake (2.4.6或以上)
log4cpp (1.0或以上)
gcc version (4.1或以上)
xfs devel RPMs on Linux
下面介绍的是手动安装以上软件包的过程,这里假设你已经下载完成软件包压缩文件。
1、安装gcc
备注:以上过程将gcc安装在/usr/local/gcc-4.1.2目录下,支持C/C++和JAVA语言,其它选项参见gcc提供的帮助说明。
2、安装log4cpp
3、安装xfs
4、安装cmake
5、安装boost
然后,解压KFS软件包,这里假设解压后KFS所在目录:~/kfs-0.5,编译源码所在目录:~/kfs-0.5/build。
为了完整编译KFS,需要有以下三部分:
编译C++部分,生成MetaServer/ChunkServer,各种API操作的tools,C++客户端;
编译Java部分,生成kfs.jar,即Java客户端,以通过Java JNI调用本地的C++方法;
编译Python扩展模块,生成Python客户端。
编译之后,二进制文件将被安装在以下目录:
可执行文件:~/kfs-0.5/build/bin
库文件:~/kfs-0.5/build/lib
备注:编译KFS过程中,带上了debug调试信息。
编译之后,生成的文件为:
Java class文件:~/kfs-0.5/build/classes
Java Jar包:~/kfs-0.5/build/kfs-0.5.jar
最后,将生成的Jar包添加到CLASSPATH环境变量中:
编译Python扩展模块的步骤:
编译之后,生成共享链接库kfs.so,进行安装:
如果要安装到一个指定的目录下(如~/kfs-0.5/build/lib),需要设置home选项:
同时,需要更新PYTHONPATH和LD_LIBRARY_PATH环境变量:
备注:这里需要提前创建MetaServer.prp中指定的和logDir和cpDir目录:./kfslog和./kfscp。
2、ChunkServer
3、KfsClient
备注:~/kfs-0.5/build/src/cc/tools目录下有各种API操作工具,如kfsshell、cptokfs、cpfromkfs等,这里没有一一列举。
2、关闭进程
以前曾在开源KFS基础上做过开发,这里介绍一下如何进行KFS的源码编译与安装过程(以kfs-0.5为例)。
1.安装依赖软件
为了编译和运行KFS文件系统,需要安装以下软件包:Boost (1.34或以上)
cmake (2.4.6或以上)
log4cpp (1.0或以上)
gcc version (4.1或以上)
xfs devel RPMs on Linux
下面介绍的是手动安装以上软件包的过程,这里假设你已经下载完成软件包压缩文件。
1、安装gcc
1 tar zxvf gcc-4.1.2.tar.gz 2 mkdir/usr/local/gcc-4.1.2 3 cd gcc-4.1.2 4 ./configure --prefix=/usr/local/gcc-4.1.2 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux--with-system-zlib --enable-languages=c,c++,java 5 make 6 make install
备注:以上过程将gcc安装在/usr/local/gcc-4.1.2目录下,支持C/C++和JAVA语言,其它选项参见gcc提供的帮助说明。
2、安装log4cpp
1 tar xvzf log4cpp-1.0.tar.gz 2 cd log4cpp-1.0 3 ./configure 4 make 5 make install
3、安装xfs
1 tar xvzf xfsprogs-3.0.1.tar.gz 2 cd xfsprogs-3.0.1 3 ./configure 4 make 5 make install 6 make install-dev
4、安装cmake
1 tar xvzf cmake-2.6.4.tar.gz 2 cd cmake-2.6.4 3 ./bootstrap 4 make 5 make install
5、安装boost
1 tar xvzf boost_1_39_0.tar.gz 2 cd boost_1_39_0 3 ./bootstrap.sh 4 ./bjam -sTOOLS=gcc --without-python install
2.编译和安装KFS
首先,到sourceforge下载kfs-0.5.tar.gz(点击下载),这里假设下载后目录为用户根目录。然后,解压KFS软件包,这里假设解压后KFS所在目录:~/kfs-0.5,编译源码所在目录:~/kfs-0.5/build。
为了完整编译KFS,需要有以下三部分:
编译C++部分,生成MetaServer/ChunkServer,各种API操作的tools,C++客户端;
编译Java部分,生成kfs.jar,即Java客户端,以通过Java JNI调用本地的C++方法;
编译Python扩展模块,生成Python客户端。
2.1 编译C++部分
1 tar xvzf kfs-0.5.tar.gz 2 cd kfs-0.5 3 mkdir build 4 cd build 5 cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo ~/kfs-0.5 6 gmake 7 gmake install
编译之后,二进制文件将被安装在以下目录:
可执行文件:~/kfs-0.5/build/bin
库文件:~/kfs-0.5/build/lib
备注:编译KFS过程中,带上了debug调试信息。
2.2 编译Java部分
1 cd ~/kfs-0.5 2 ant jar
编译之后,生成的文件为:
Java class文件:~/kfs-0.5/build/classes
Java Jar包:~/kfs-0.5/build/kfs-0.5.jar
最后,将生成的Jar包添加到CLASSPATH环境变量中:
1 export CLASSPATH=${CLASSPATH}:~/kfs-0.5/build/kfs-0.5.jar
2.3 编译Python扩展模块
为了编译Python扩展模块,首先需要进行步骤2.1,生成KFS客户端库文件,这里库文件所在目录是:~/kfs-0.5/。编译Python扩展模块的步骤:
1 cd to ~/kfs-0.5/src/cc/access 2 Edit kfs_setup.py and setup the include path. Specifically, kfsext = Extension('kfs', include_dirs ['kfs/src/cc/', '<path to boost>']) 3 python kfs_setup.py ~/kfs-0.5/build/lib/ build
编译之后,生成共享链接库kfs.so,进行安装:
1 python kfs_setup.py ~/kfs-0.5/build/lib/ install
如果要安装到一个指定的目录下(如~/kfs-0.5/build/lib),需要设置home选项:
1 python kfs_setup.py ~/kfs-0.5/build/lib install --home=~/kfs-0.5/build/lib
同时,需要更新PYTHONPATH和LD_LIBRARY_PATH环境变量:
1 export PYTHONPATH=${PYTHONPATH}:~/kfs-0.5/build/lib/lib64/python 2 export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:~/kfs-0.5/build/lib
3.启动KFS服务进程
1、 MetaServer1 cd ~/kfs-0.5/build/src/cc/meta 2 cp ~/kfs-0.5/conf/MetaServer.prp ./ 3 ./metaserver MetaServer.prp
备注:这里需要提前创建MetaServer.prp中指定的和logDir和cpDir目录:./kfslog和./kfscp。
2、ChunkServer
1 cd~/kfs-0.5/build/src/cc/chunk 2 cp ~/kfs-0.5/conf/ChunkServer.prp ./ 3 ./chunkserver ChunkServer.prp
3、KfsClient
1 cd ~/kfs-0.5/build/src/cc/tools 2 ./kfsshell –s <meta server name> -p <port> 3 ./cptokfs –s <meta server name> -p <port> -d <source path> -k <kfs path> 4 ./cpfromkfs –s <meta server name> -p <port> -d <source path> -k <kfs path>
备注:~/kfs-0.5/build/src/cc/tools目录下有各种API操作工具,如kfsshell、cptokfs、cpfromkfs等,这里没有一一列举。
4.查看和关闭KFS服务进程
1、查看进程1 ps –aux | grep metaserver 2 ps –aux | grep chunkserver 3 ps –aux | grep kfsshell
2、关闭进程
1 kill -9<pid>
5.参考资料
http://code.google.com/p/kosmosfs/
http://sourceforge.net/projects/kosmosfs/
相关文章推荐
- 分布式文件系统KFS源码编译与安装过程
- Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误
- Vmware安装ubuntu编译android内核源码详细过程
- LAMP详解及源码编译安装过程
- Linux下源码编译MySQL 5.5 与安装过程全记录
- fedora 11安装 samba 全过程(yum 和源码级编译)
- 源码编译安装MySQL5.6.12详细过程
- SUSE Linux下源码编译方式安装MySQL 5.6过程分享
- ubuntu中手动编译源码安装Xorg-server过程中依赖关系的解决
- LAMP详解及源码编译安装过程 2012-07-09 18:34:41
- lamp源码编译安装过程
- Ubuntu12.04安装ISE14.6过程(FPGA源码编译必备)
- lnmp源码编译安装过程
- Red Hat Linux 9下的Mysql5.0.19+Apache 2.2.0 + PHP 5.1.2+GD库源码编译安装过程
- kvm安装与启动过程说明-Kernel源码编译方式
- Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决
- 记一次痛苦的过程-------源码编译安装apache+php5+mysql
- SUSE Linux下源码编译方式安装MySQL 5.6过程分享
- 源码编译mysql 5.5+ 安装过程全记录
- 基于Centos6.5源码编译安装mysql-5.7.17过程详解