您的位置:首页 > 运维架构 > Linux

在Linux下编译使用kfs-0.3

2009-10-15 14:12 260 查看
原稿url:http://www.pginjp.org/modules/newbb/viewtopic.php?viewmode=flat&
amp;type=&topic_id=775&forum=22

编译安装KFS:

kfs:kosmosfs

環境:

os:centos5.3

metaserver:VM-CentOS-5-SHU

chunkservers:VM-CentOS-5-SHU-2,VM-CentOS-5-SHU-3,VM-CentOS-5-SHU-4

前提条件:sshでパスワード無しで認証になる

kfsのインストール

metaserverで下記の操作を行う

一、必要パッケージの準備

1、boostのインストール(ver1.34以上)

yum -y install boost boost-devel

2.gccのインストール(ver4.1以上)

yum -y install gcc gcc-c++ ←存在でなければ

3.cmakeのインストール(ver2.4.6)

cd /usr/local/src

wget http://www.cmake.org/files/v2.6/cmake-2.6.4.tar.gz

tar -zxvf cmake-2.6.4.tar.gz

cd /usr/local/src/cmake-2.6.4

./bootstrap --prefix=/usr/local

make

make install

4.log4cppのインストール(ver1.0)

cd /usr/local/src

wget http://downloads.sourceforge.net/proj ... pp-1.0/log4cpp-1.0.tar.gz

tar zxvf log4cpp-1.0.tar.gz

cd log4cpp-1.0

./configure

make

make install

5.xfs devel RPMs on Linuxのインストール

yum -y install xfsprogs xfsprogs-devel

二、kfsのビルド

cd /usr/local/

wget http://downloads.sourceforge.net/proj ... fs/kfs-0.3/kfs-0.3.tar.gz

tar zxvf kfs-0.3.tar.gz

cd kfs-0.3

mkdir build

cd build

vi /usr/local/kfs-0.3/CMakeLists.txtを編集110行に下記を追記

SET(JAVA_INCLUDE_PATH "/usr/java/latest/include")

SET(JAVA_INCLUDE_PATH2 "/usr/java/latest/include")

cmake -D CMAKE_BUILD_TYPE=RelWithDebInfo /usr/local/kfs-0.3/

gmake

gmake install

三、設定

mkdir /export/kosmix

vi /usr/local/kfs-0.3/scripts/machines.cfg

[metaserver]

node: VM-CentOS-5-SHU

clusterkey: kfs-test-cluster

rundir: /export/kfsmix/kfs/meta

baseport: 20000

loglevel: INFO

numservers: 3

[chunkserver_defaults]

rundir: /export/kfsmix/kfs/chunk

chunkDir: /export/kfsmix/kfs/chunk/bin/kfschunk

baseport: 30000

space: 3400 G

loglevel: INFO

vi /usr/local/kfs-0.3/conf/machines.txt

VM-CentOS-5-SHU-2

VM-CentOS-5-SHU-3

VM-CentOS-5-SHU-4

vi /usr/local/kfs-0.3/conf/ChunkServer.prp

# Configuration for chunk server:

# meta server location

chunkServer.metaServer.hostname = VM-CentOS-5-SHU

chunkServer.metaServer.port = 30000

# port to open for client connections

chunkServer.clientPort = 22000

# Directory for storing the chunks

chunkServer.chunkDir = ./chunks

chunkServer.logDir = ./logs

# provide 300G of storage space

chunkServer.totalSpace = 300000000000

四、chunkサーバをファイルを移す

# rsync -av /usr/local/kfs-0.3/ 172.16.0.48:/usr/local/kfs-0.3/

# rsync -av /usr/local/kfs-0.3/ 172.16.0.49:/usr/local/kfs-0.3/

# rsync -av /usr/local/kfs-0.3/ 172.16.0.52:/usr/local/kfs-0.3/

ステップ一の操作を各chunkサーバに全部行う必要

五、セットアップ

cd scripts

# python kfssetup.py -f machines.cfg -m machines.txt -b ../build -w ../webui

六、起動と停止

起動コマンド

# python kfslaunch.py -f machines.cfg -m machines.txt -s

停止コマンド:

# python kfslaunch.py -f machines.cfg -m machines.txt -S

七、使い方

1、ファイルをkfsにputする方法

cptokfsコマンドで

例:

./cptokfs -s localhost -p 20000 -d /home/hadoop/test -k /pub/

2、ファイルをkfsにgetする方法

./cpfromkfs -s localhost -p 20000 -k /pub/test -d /home/hadoop/newtest ←コピー先フォルダ既に存在するのを条件として

3、kfsシェールで

./kfsshell -s localhost -p 20000 ←シェール環境へ入る

サポートされているシェールコマンドは、下記のとおり

cd ←ディレクトリを変わる

changeReplication  ← レプリケーションを修正

cp ←ファイルをコピー

ls ←ファイル一覧を表示

mkdir ←ディレクトリを作成

mv ←フォルダかファイルを移動

rm ←ファイルを削除

rmdir ←ディレクトリを削除

stat ←ファイルかフォルダの属性を取得

pwd ←今のパースを表示

上記のコマンドの使い方は、linuxと略同じ

kfs fuse文件系统:

1.ビルド

# cd /usr/local/kfs-0.3

# vi CMakeLists.txt

修正前

SET(Fuse_LIBRARY_DIR "")

SET(Fuse_INCLUDE_DIR "")

修正後

SET(Fuse_LIBRARY_DIR "/usr/local/lib")

SET(Fuse_INCLUDE_DIR "/usr/local/include")

# cd build

# make install

2.マウント

# vi /usr/local/kfs-0.3/build/bin/kfs.prp

# Where is the metaserver

metaServer.host = VM-CentOS-5-SHU

metaServer.port = 20000

# mkdir /mnt/kfs

# kfs_fuse /mnt/kfs -f

3.テスト



結論:基本機能もまだまだ、fuse-dfsよりもっと不安定と機能が少ない
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: