Ubuntu12.04 LTS下Facebook scribe安装过程

xiaoxiao2021-02-28  4

Ubuntu12.04 LTSFacebook scribe安装过程

  说明:scribeFacebook2008年开源的分布式日志收集系统。现在Facebook已经不再对scribe进行维护。Scribe网上资料较少,安装过程也比较复杂,网上很少详细的安装报告,而且资料大都历史较为久远。如果真的想要安装scribe,请务必要耐心,结合查找到的资料,并进行分析。

  起初,我打算使用Ubuntu 16.04 LTS来安装scribe,但是怎么都安装不好在make或者make install的地方总是出错,并且难以追踪错误原因,可能是没有向后兼容的缘故。除此之外还要考虑Ubuntuthrift之间的版本关系。最终,在经过一段时间的试错之后,确定了安装scribe的环境:Ubuntu 12.04 LTS + thrift-0.9.0 + scribe(版本:2.2)。以下是较为详细的安装过程:

1、在开始之前,首先要安装相关的依赖包,这点非常重要。

  安装依赖包,命令:

sudo apt-get install libevent-dev libglib2.0-dev automake libboost-dev libssl-dev

 ruby-dev python-dev collectd-dev bison flex autoconf ant git-core

  注意:可能还会需要其他的安装包,请根据后续的编译提示进行安装,或者网上查找资料,进行补充。安装包的需要数量根据系统的执行环境有所差异,因为可能有些安装包你之前安装过,那么现在就不必再重新安装了。

2、thrift官网下载thrift-0.9.0.tar.gz,官网地址:http://thrift.apache.org/

  接下来在终端输入以下命令(将thrift-0.9.0.tar.gz解压至home目录):

$tar -zxf thrift-0.9.0.tar.gz

$cd thrift-0.9.0

$./configure CPPFLAGS="-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H"

$ make

$ sudo make install

$ cd contrib/fb303

$ ./bootstrap.sh

$ make

$ sudo make install

3、安装scribe

(1)安装依赖包:

   命令:

  sudo apt-get install gawk libboost-system-dev libboost-filesystem-dev libtool

  (2)执行以下命令(仍然选择home目录存放scribe):

$ git clone git://github.com/facebook/scribe.git

$ cd scribe

$ ./bootstrap.sh

$./configure CPPFLAGS="-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H -DBOOST_FILESYSTEM_VERSION=2"

$ make

  (3尝试连接到scribedmake可能出错,报错如下:

file.cpp:(.text.startup+0x23): undefined reference to `boost::system::generic_category()'

file.cpp:(.text.startup+0x2f): undefined reference to `boost::system::generic_category()'

file.cpp:(.text.startup+0x3b): undefined reference to `boost::system::system_category()'

解决方法是将错误信息前面的g++行进行修改,g++行的原始信息如下:

g++  -Wall -O3 -L/usr/lib  -lboost_system-mt -lboost_filesystem-mt -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-mt -lboost_filesystem-mt” 移动到行的末尾), 进入src目录,手动执行g++命令:

$ cd src

$ g++  -Wall -O3 -L/usr/lib  -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-mt -lboost_filesystem-mt

“-DBOOST_FILESYSTEM_VERSION=2”只有在你的libboost版本为1.46或者更高的时候才需要。

  (4)执行命令:

$sudo make intall

/home目录/scribe/src目录下生成可执行文件:scribed.

4、scribe包在examples目录下有一些例子可以直接根据README文件运行,但是在运行之前还需要进行一项工作,执行以下命令:

cp -a /usr/lib/python2.7/site-packages/* /usr/lib/python2.7/dist-packages/

具体的路径,根据自己的环境进行相应的替换。另一种方法就是在跑例子之前,配置环境变量PYTHONPATH,但是我设置之后发现执行./scribe_ctrl stop会出错,提示:ImportError: No module named fb303_scripts

5、关于参考文献。

文末所列参考文献基本可以比较完美的解决scribe安装的问题。这也是我花了很多时间进行筛选最后选定的觉得较好的参考文献,希望能对大家有所帮助。

 

 

 

参考文献

http://nosql.se/blog/2012/10/18/tutorial-installing-scribe-on-debianubuntu/

https://my.oschina.net/guol/blog/110236

http://gdweixianhua.blog.163.com/blog/static/966041520119201030297/

https://github.com/facebookarchive/scribe

http://thrift.apache.org/

 

 

转载请注明原文地址: https://www.6miu.com/read-200274.html

最新回复(0)