日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

分布式文件系統(tǒng)KFS源碼編譯與安裝過(guò)程

系統(tǒng) 2420 0

Kosmos distributed file system (KFS)是一個(gè)專(zhuān)門(mén)為數(shù)據(jù)密集型應(yīng)用(搜索引擎,數(shù)據(jù)挖掘等)而設(shè)計(jì)的存儲(chǔ)系統(tǒng),類(lèi)似于Google的GFS和Hadoop的HDFS分布式文件系統(tǒng)。 KFS使用C++實(shí)現(xiàn),支持的客戶(hù)端包括C++,Java和Python。

以前曾在開(kāi)源KFS基礎(chǔ)上做過(guò)開(kāi)發(fā),這里介紹一下如何進(jìn)行KFS的源碼編譯與安裝過(guò)程(以kfs-0.5為例)。

1.安裝依賴(lài)軟件

為了編譯和運(yùn)行KFS文件系統(tǒng),需要安裝以下軟件包:

  • Boost (1.34或以上)
  • cmake (2.4.6或以上)
  • log4cpp (1.0或以上)
  • gcc version ( 4.1或以上)
  • xfs devel RPMs on Linux

下面介紹的是手動(dòng)安裝以上軟件包的過(guò)程,這里假設(shè)你已經(jīng)下載完成軟件包壓縮文件。

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

備注:以上過(guò)程將gcc安裝在/usr/local/gcc-4.1.2目錄下,支持C/C++和JAVA語(yǔ)言,其它選項(xiàng)參見(jiàn)gcc提供的幫助說(shuō)明。

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( 點(diǎn)擊下載 ),這里假設(shè)下載后目錄為用戶(hù)根目錄。

然后,解壓KFS軟件包,這里假設(shè)解壓后KFS所在目錄:~/kfs-0.5,編譯源碼所在目錄:~/kfs-0.5/build。

為了完整編譯KFS,需要有以下三部分:

  • 編譯C++部分,生成MetaServer/ChunkServer,各種API操作的tools,C++客戶(hù)端;
  • 編譯Java部分,生成kfs.jar,即Java客戶(hù)端,以通過(guò)Java JNI調(diào)用本地的C++方法;
  • 編譯Python擴(kuò)展模塊,生成Python客戶(hù)端。

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

編譯之后,二進(jìn)制文件將被安裝在以下目錄:

  • 可執(zhí)行文件:~/kfs-0.5/build/bin
  • 庫(kù)文件:~/kfs-0.5/build/lib

備注:編譯KFS過(guò)程中,帶上了debug調(diào)試信息。

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環(huán)境變量中:

      1 export CLASSPATH=${CLASSPATH}:~/kfs-0.5/build/kfs-0.5.jar
    

2.3 編譯Python擴(kuò)展模塊

為了編譯Python擴(kuò)展模塊,首先需要進(jìn)行步驟2.1,生成KFS客戶(hù)端庫(kù)文件,這里庫(kù)文件所在目錄是:~/kfs-0.5/。

編譯Python擴(kuò)展模塊的步驟:

      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

編譯之后,生成共享鏈接庫(kù)kfs.so,進(jìn)行安裝:

      1 python kfs_setup.py ~/kfs-0.5/build/lib/ install
    

如果要安裝到一個(gè)指定的目錄下(如~/kfs-0.5/build/lib),需要設(shè)置home選項(xiàng):

      1 python kfs_setup.py ~/kfs-0.5/build/lib install --home=~/kfs-0.5/build/lib
    

同時(shí),需要更新PYTHONPATH和LD_LIBRARY_PATH環(huán)境變量:

      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.啟動(dòng)KFS服務(wù)進(jìn)程

1、 MetaServer

      1 cd ~/kfs-0.5/build/src/cc/meta
      
2 cp ~/kfs-0.5/conf/MetaServer.prp ./
3 ./metaserver MetaServer.prp

備注:這里需要提前創(chuàng)建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等,這里沒(méi)有一一列舉。

4.查看和關(guān)閉KFS服務(wù)進(jìn)程

1、查看進(jìn)程

      1 ps –aux | grep metaserver
      
2 ps –aux | grep chunkserver
3 ps –aux | grep kfsshell

2、關(guān)閉進(jìn)程

      1 kill -9<pid>
    

5.參考資料

  •         http://code.google.com/p/kosmosfs/
          
  •         http://sourceforge.net/projects/kosmosfs/
          

分布式文件系統(tǒng)KFS源碼編譯與安裝過(guò)程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。?!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 马关县| 安远县| 承德县| 都安| 乾安县| 普陀区| 绩溪县| 日喀则市| 彭州市| 济阳县| 汉沽区| 揭西县| 大兴区| 吉林省| 华宁县| 霍州市| 正安县| 东乌珠穆沁旗| 绍兴市| 攀枝花市| 平陆县| 黄山市| 临清市| 册亨县| 信宜市| 邛崃市| 新乡市| 南安市| 光泽县| 伊春市| 南开区| 泸定县| 崇阳县| 阳朔县| 安阳县| 聂拉木县| 寿光市| 明星| 都江堰市| 新民市| 澄城县|