1、概述

Scribe是facebook开源的日志收集系统,可用于搜索引擎中进行大规模日志分析处理。其通常与Hadoop结合使用,scribe用于向HDFS中push日志,而Hadoop通过MapReduce作业进行定期处理,具体可参见日文日志:

http://d.hatena.ne.jp/tagomoris/touch/20110202/1296621133

其安装非常复杂,主要是因为其依赖的包,需要设置的环境变量非常多,另外,它与Hadoop兼容不好,安装急需要技巧。目前对于Scirbe的安装方法,网上尽管有人介绍,但往往过于粗略,用处不大。本文比较全面的介绍了Scribe的安装方法,方法已经得到验证。

2、安装前的准备

(1)Thrift依赖软件

具体参见文章:http://wiki.apache.org/thrift/ThriftRequirements, 关于Thrift的介绍,参见我的另一篇日志:http://dongxicheng.org/search-engine/thrift-framework-intro/

(2)Thrift

最新版本即可。

(3)Scribe

版本2.1和2.2存在问题,直接下载github的当前版本才可用(见参考资料4)。

(4)Hadoop

Apache的所有版本(0.20.2(包括)之前)不可用,因为它们的libhdfs与Scribe均不兼容。

Cloudera的几乎所有版本不可用,只有CDH3 beta2(0.20.2+320)可用。需要强调的是:Cloudera的0.20.2+737和 0.20.2+320之间不可以相互通信(在此指HDFS不可相互通信),Apache 0.20.2版本和Cloudera 0.20.2之间也不可相互通信。具体错误参见参考资料1。

需要注意的是,我所用的机器是64位的,操作系统是Ubuntu。

3、安装流程

(1)安装Thrift依赖软件

必须得安装的是:g++, boost,autoconf,libevent,Apache ant, JDK, PHP,python

其它脚本语言根据需要安装

(2)安装Thirft

大体流程是:

tar -zxvf thrift-0.2.0.tar.gz

cd thrift-0.2.0

./bootstrap.sh

./configure

sudo make

sudo make install

遇到具体问题,可到google上查找,这方面资料很多。

安装完Thirft后,记得运行一下它提供的example,看是否安装成功。方法:在thrift源代码目录有一个叫tutorial的目录,进行其中后运行thrift命令生成相应的服务代码:

$ thrift -r –gen cpp tutorial.thrift // -r对其中include的文件也生成服务代码 -gen是生成服务代码的语言

运行完之后会在当前目录看到一个gen-cpp目录,其中就是thrfit命令生成的代码。这时你cd到tutorial/cpp目录,运行make,生成相应的CppServer与CppClient程式。

此时你可以分别运行CppServer和CppClient,让它们通信。

(3)安装Hadoop

如果你发现Hadoop中自带的已经编译好的libhdfs不可用(libhdfs在$HADOOOP_HOME/c++中),可自己编译生成libhdfs,方法是,在$HADOOP_HOME下,输入: ant compile-c++-libhdfs -Dislibhdfs=true ,同时设置Hadoop的CLASSPATH。

(4)安装Scribe

./boottrap.sh (主要目的是生成configure, 如果出现类似于configure: error: Could not link against  !的错误,不要管,进行下一步好了!)

———————————

./configure –with-boost=/usr/local/boost –prefix=/usr/local/scribe –with-hadooppath=/home/dong/hadoop-0.20.2/ –enable-hdfs CPPFLAGS=”-I/opt/jdk1.6.0_21/include/ -I/opt/jdk1.6.0_21/include/linux -I/home/dong/hadoop-0.20.2/src/c++/libhdfs” LDFLAGS=”-L/opt/jdk1.6.0_21/jre/lib/amd64 -L/opt/jdk1.6.0_21/jre/lib/amd64/server -L/home/dong/hadoop-0.20.2/build/c++/Linux-amd64-64/lib -ljvm -lhdfs”

————————————————

make

———————————————–

sudo make install

安装成功验证方法参见参考文献(5)。

4、可能出现的错误及解决方法

(1)运行boottrap.sh时,产生以下错误:

checking whether the Boost::System library is available… yes

checking whether the Boost::Filesystem library is available… yes

configure: error: Could not link against  !

当安装的boost目录不在默认的/usr目录下时,用户需要配置boost安装目录,如:

./configure –with-boost=/usr/local/boost –prefix=/usr/local/scribe

(2)运行examples时,产生以下错误:

Traceback (most recent call last):

File “examples/scribe_cat”, line 24, in <module>

from scribe import scribe

ImportError: No module named scribe

解决方法:python找不到scribe模块,需要把scribe package包含进来,如:

export PYTHONPATH=”/usr/lib/python2.6/site-packages/”

(3)Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/ hadoop/conf/Configuration

解决方法,将Hadoop的classpath加到环境变量中,如:

export CLASSPATH=$HADOOP_HOME/hadoop-core-0.20.2+320.jar

5、参考资料

(1)介绍scribe与libhdfs的兼容性问题(日文):

http://d.hatena.ne.jp/tagomoris/touch/20110107/1294368321

(2)介绍scribe的安装方法(日文):

http://d.hatena.ne.jp/tagomoris/touch/20110106/1294311969

(3)介绍scribe的安装方法(英文):http://www.myhpcblog.blogspot.com/

(4)scribe下载官方主页:https://github.com/facebook/scribe

(5)Scribe应用介绍:

http://blog.octo.com/en/scribe-a-way-to-aggregate-data-and-why-not-to-directly-fill-the-hdfs/

(6)Scribe安装方法:http://blog.octo.com/en/scribe-installation/

(7)Hadoop的各个CDH版本下载地址:http://archive.cloudera.com/cdh/3/

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/search-engine/scribe-installation/

Scribe+HDFS日志收集系统安装方法的更多相关文章

  1. Oracle EBS各个模块日志收集的方法

    MSCA(Mobile Supply Chain Application)日志的收集 Reference Note:338291.1 - Howto Enable WMS / MSCA Logging ...

  2. Scribe日志收集工具

    Scribe日志收集工具 概述 Scribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文 ...

  3. Flume-NG + HDFS + HIVE 日志收集分析

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. Docker处理日志的方法&日志收集工具比较

    测试logstash:docker run -it mylogstash:0.1.0 logstash -e 'input{stdin{}}output{stdout{codec=>rubyde ...

  5. [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...

  6. 基于Flume的美团日志收集系统(二)改进和优化

    在<基于Flume的美团日志收集系统(一)架构和设计>中,我们详述了基于Flume的美团日志收集系统的架构设计,以及为什么做这样的设计.在本节中,我们将会讲述在实际部署和使用过程中遇到的问 ...

  7. 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    作者:大数据女神-诺蓝(微信公号:dashujunvshen).本文是36大数据专稿,转载必须标明来源36大数据. 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要 ...

  8. Flume日志收集系统架构详解--转

     2017-09-06 朱洁 大数据和云计算技术 任何一个生产系统在运行过程中都会产生大量的日志,日志往往隐藏了很多有价值的信息.在没有分析方法之前,这些日志存储一段时间后就会被清理.随着技术的发展和 ...

  9. 基于Flume的美团日志收集系统 架构和设计 改进和优化

    3种解决办法 https://tech.meituan.com/mt-log-system-arch.html 基于Flume的美团日志收集系统(一)架构和设计 - https://tech.meit ...

随机推荐

  1. textarea高度跟随文字高度而变化

    html部分: <textarea id="textarea">哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽哈喽</textarea> js部分: < ...

  2. mysql常用语句备忘

    1.连接本地数据库 mysql -h localhost -u root -p123 2.连接远程数据库 mysql -h 192.168.0.201 -P 3306 -u root -p123 3. ...

  3. PHP获取当前页面的URL地址

    本文出至:新太潮流网络博客 //获取域名或主机地址 blog.iinu.com.cn echo $_SERVER['HTTP_HOST']."<br>"; //获取网页 ...

  4. asp.net MVC 使用PagedList.MVC实现分页

    在上一篇的EF之DB First中,存在以下的两个问题: 1. 添加/编辑页面显示的是属性名称,而非自定义的名称(如:姓名.专业...) 2. 添加/编辑时没有加入验证 另外数据展示使用分页 @Htm ...

  5. Redis学习---CentOs/RedHat下Redis的安装

    redis是C语言开发,建议在linux上运行,本教程使用Centos6.4作为安装环境.      安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gc ...

  6. struts2.5动态方法绑定问题

    <global-allowed-methods>regex:.*</global-allowed-methods> <?xml version="1.0&quo ...

  7. Xpath注入学习

    xpath简介: 提到xpath就要先说下xml,xml意为可扩展标记语言,简单来说就是一种存储数据的标准格式,可以把他视为一个小型的数据库,他可以解决数据在网上传输的标准问题.是一种比数据库更具通用 ...

  8. Logstash和Flume-NG Syslog接收小测试

    目前在大规模日志处理平台中常见的日志采集器可以采用Logstash或Flume.这两种日志采集器架构设计理念基本相似,都采用采集-过滤处理-输出的方式.下面对这两种采集器Syslog接收性能做个简单测 ...

  9. 什么是 .live()

    很多开发者都知道jQuery的.live()方法,他们大部分知道这个函数做什么,但是并不知道是怎么实现的,所以用的并不那么舒适.而且他们却从未听过还有解除绑定的.live()事件的.die()方法.即 ...

  10. [2018HN省队集训D6T2] girls

    [2018HN省队集训D6T2] girls 题意 给定一张 \(n\) 个点 \(m\) 条边的无向图, 求选三个不同结点并使它们两两不邻接的所有方案的权值和 \(\bmod 2^{64}\) 的值 ...