歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 分布式日志系統Scribe編譯安裝

分布式日志系統Scribe編譯安裝

日期:2017/3/1 16:15:05   编辑:關於Linux
分布式日志系統Scribe編譯安裝 最近准備整合多個系統的日志,因而想到構建一套分布式日志存儲系統,首先考慮的是Scribe,不過編譯安裝耗費了很多時間(Scribe相關文檔確實少了點,相比Flume) 環境:Ubuntu13.04 32bit 組件: scribe 2.x(最新版) thrift 0.9.0 boost 1.54 fb303 thrift自帶 至於其他所依賴的相關包(如libevent、automake、flex、bison等)可根據configure的結果進行安裝或更新。 1、安裝boost 官網下載boost,版本要求高於1.36(作者用的是1.54.0),按照文檔中給出的方法編譯: $tar --bzip2 -xf /home/vincent/Download/boost_1_54_0.tar.bz2 $cd /home/vincent/Download/boost_1_54_0 $./bootstrap.sh --help $./bootstrap.sh --prefix=opt/boost_1.54 $./b2 install 至此,boost庫編譯完成,編譯時無需指定其他選項,在--prefix參數指定的目錄下生成include和lib文件夾存放頭文件和庫文件。 2、安裝thrift 下載thrift包,安裝是經典的三大步: $tar zxvf thrift-0.9.0.tar.gz $cd thrift-0.9.0/ $sudo ./configure CPPFLAGS="-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H" $sudo make $sudo make install configure時CPPFLAGS參數不可少,否則make時會產生諸如“uint_32未定義”之類錯誤。另外,configure時如找不到boost庫,則需使用--with-boost參數指定boost庫位置。thrift安裝後可以進行簡單的測試以確認是否安裝成功。 3、安裝fb303 fb303包含在thrift安裝包裡,直接make安裝: $cd contrib/fb303 $sudo ./bootstrap.sh --with-boost=/opt/boost_1.54/lib/ $sudo make $sudo make install 此處--with-boost即是指定boost庫位置 4、安裝scribe 依賴組件安裝完畢,即可開始編譯scribe: $./bootstrap.sh $sudo ./configure --with-boost=/opt/boost_1.54/lib/ --prefix=/opt/scribe $sudo make $sudo make install 編譯時可能會產生相關錯誤: 1)configure若遇到如下錯誤 checking whether the Boost::System library is available… yes checking whether the Boost::Filesystem library is available… yes configure: error: Could not link against ! 則需在configure時加上參數 --with-boost-system=lboost_system --with-boost-filesystem=lboost_filesystem 筆者的configure如下: sudo ./configure --prefix=/opt/scribe --with-boost=/usr/local/lib --with-boost-system=boost_system --with-boost-filesystem=boost_filesystem CPPFLAGS="-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H -DBOOST_FILESYSTEM_VERSION=3" 2)make時若遇到: undefined reference to 'boost::system::generic_category()' undefined reference to 'boost::system::system_category()' 在確認boost::system庫存在且路徑正確後,檢查GCC鏈接代碼(根據make輸出),筆者的如下: g++ -Wall -O3 -L/usr/local/lib/ -lboost_system -lboost_filesystem -o scribed store.o store_queue.o conf.o file.o conn_pool.o scribe_server.o network_dynamic_config.o dynamic_bucket_updater.o env_default.o -L/usr/local/lib -L/usr/local/lib -L/usr/local/lib -lfb303 -lthrift -lthriftnb -levent -lpthread libscribe.a libdynamicbucketupdater.a 此時需將-lboost_system -lboost_filesystem兩個選項放在最後,並在src目錄下手動執行鏈接即可完成編譯。
Copyright © Linux教程網 All Rights Reserved