Skip to main content

Install Scribe on Ubuntu

Scribe is a very useful tools for collecting logs in the cloud. Here is an simple instruction for installing scribe on Ubuntu(based on those articles: link1 link2 link3).

First, install libevent, boost and thrift:

sudo apt-get install libevent-dev
sudo apt-get install libboost-dev=1.38.1 flex bison libtool automake autoconf pkg-config
wget http://archive.apache.org/dist/incubator/thrift/0.4.0-incubating/thrift-0.4.0.tar.gz
cd thrift && ./bootstrap.sh && ./configure && make && sudo make install
cd contrib/fb303/
./bootstrap.sh && sudo make && sudo make install

If libboost-dev 1.38.1 is not found, version 1.40 is OK.

Second, get scribe(from http://github.com/facebook/scribe/downloads) installed:
./bootstrap.sh
./configure
sudo make && sudo make install

During the make of scribe, you may get following errors:
1) "configure: error: Could not link against !"try sudo apt-get install libboost-all-dev

2)"error: conflicting return type specified for ‘virtual scribe::thrift::ResultCode ..."
According to this post, thirft 0.5.0 has no backward compatibilities with scribe. Use thirft 0.4.0 instead(and fb303).

After installation, when I start scribed, I get following error:
/usr/local/bin/scribed: error while loading shared libraries: libthrift.so.0: cannot open shared object file: No such file or directory

The problem could be solved by:

echo "/usr/local/lib" >> /etc/ld.so.conf
/sbin/ldconfig

As for scribe python client, you may directly install it with pip:

pip install thrift
pip install facebook-scribe
pip install scribe-logger

Note that, lib facebook-scribe is the script python binding in https://github.com/facebook/scribe/ uploaded to pypi. And scribe-logger is an wrapper for directly use with Python logging module.

Comments

Popular posts from this blog

A simple implementation of DTW(Dynamic Time Warping) in C#/python

DTW(Dynamic Time Warping) is a very useful tools for time series analysis. This is a very simple (but not very efficient) c# implementation of DTW, the source code is available at  https://gist.github.com/1966342  . Use the program as below: double[] x = {9,3,1,5,1,2,0,1,0,2,2,8,1,7,0,6,4,4,5}; double[] y = {1,0,5,5,0,1,0,1,0,3,3,2,8,1,0,6,4,4,5}; SimpleDTW dtw = new SimpleDTW(x,y); dtw.calculateDTW(); The python implementation is available at  https://gist.github.com/3265694  . from python-dtw import Dtw import math dtw = Dtw([1, 2, 3, 4, 6], [1, 2, 3, 5],           distance_func=lambda x, y: math.fabs(x - y)) print dtw.calculate() #calculate the distance print dtw.get_path() #calculate the mapping path

Install mysql-python with mariadb

mysql-python requires libmysqlclient-dev in ubuntu, but the installation of mariadb will have the lib with unmet dependenccies, so the error of "mysql_config not found" may occurred if you install mysql-python via pip. The case is that mariadb has a compatible package, if you have the ppa setup as in  http://downloads.mariadb.org/ . Just "sudo apt-get install libmariadbclient-dev".

The default CREATE TABLE options for Aria Engine in mariadb

The official document of mariadb does not mention the default CREATE TABLE options for tables using Aria Engine.  The default options are list as below: TRANSACTIONAL,  the default value is TRANSACTIONAL=0, i.e., non-transactional. ROW_FORMAT, the default value is ROW_FORMAT=PAGE, which may suits both transactional and non-transactional tables. PAGE_CHECKSUM,  the default value will follow aria_page_checksum system variable, which has default value ON. For the TRANSACTIONAL option, you may consider create a table as below(and ALTER the TRANSACTIONAL=1): CREATE TABLE `test_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=Aria; If you change the ROW_FORMAT to DYNAMIC or FIXED, everything just goes fine. But if you have ALTER the table with TRANSACTION=1 and change the ROW_FORMAT to DYNAMIC or FIXED, you may got a warning: SHOW WARNINGS; +-------+------+----------------------------------------------------------+ | Level | Code | Message | +-------+--