关闭

【分布式计算】分布式日志导入工具-Flume

标签: 日志分布式计算
1441人阅读 评论(4) 收藏 举报
分类:

背景

Flume是Apache赞助的一个分布式日志管理系统,主要功能就是把集群中每个worker产生的日志log,collect到特定的地点。

为什么要写这篇文章呢,因为现在搜索出来的文献大多是老版本的flume,在flume1.X版本后,也就是flume-ng版本跟之前出现了很大的改动,市面上的很多文档都已经过时了,大家看的时候一定要注意这点,稍后我会提供几个比较新的,有参考价值的文章。

flume的优势有一下几个方面:
* JAVA实现,跨平台性能好
* 有一定的容错机制,和防止数据保障的机制
* 提供了很多的agent
* 方便开发,有developer选项

功能

这里写图片描述
单机版是如上形式的,有三个部件组成,分别是source,channel,sink。在使用的时候,只要安装flume,然后配置好对应的conf文件,就可以了。
source:主要是配置日志文件的来源(提供多种agent,支持多种数据源)
channel:类似于一个队列,暂存收到的日志数据
sink:将日志文件输出(有很多方式,可以投影到屏幕上,也可以读到数据库或者指定的文件中)

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = avro          #avro是flume的一种type,读取本地log文件
a1.sources.r1.bind = localhost    #这个和下面的port对应于avro-client的端口
a1.sources.r1.port = 44444


# Describe the sink 
a1.sinks.k1.type = com.waqu.sink.OdpsSink #对应代码里的包名
a1.sinks.k1.sink.batchSize = 20             #需要大于10
a1.sinks.k1.sink.table = *******            #自己建的hub表以及key-id信息
a1.sinks.k1.sink.project =******* 
a1.sinks.k1.sink.odps.access_id =********** 
a1.sinks.k1.sink.odps.access_key =********** 
a1.sinks.k1.sink.odps.end_point =***********
a1.sinks.k1.sink.sink.tunnel.end_point =*******

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.checkpointDir=1000
a1.channels.c1.dataDirs = 100


# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

下面就针对这三点,详细介绍下

Flume workflow

agent支持多种输入的source,几个比较常用的type。
*HTTP,可以监听http端口,拿log
*netcat,可以监听类似于telnet的端口数据
*Spooling ,监听某个文件目录下新增的文件
*Avro Source,发送指定文件,这个不支持实时监控,也就是说比方说我们监控a.log文件,当a.log改变了,我们无法拿到改变的日志
*Exec Source,这个可以实时监控某个文件

重点说下Exec Source,这个功能非常酷,它允许在agent上执行shell命令,这样我们就能用tail命令来监控某个文件新增的内容。

tail -f log.txt

Develop

*首先是利用官方的sdk包,开发打包jar文件
*把jar放到flume的lib文件目录下
*配置conf文件
*启动agent:flume-ng agent --conf conf --conf-file ./conf/my.conf -name a1 -Dflume.root.logger=INFO,console
*启动数据源:flume-ng avro-client -H localhost -p 44444 -F /home/garvin/log.txt -Dflume.root.logger=INFO,console

推荐几篇有用的东西:
一个代码实现的例子:https://github.com/waqulianjie/odps_sink
开发者document:http://flume.apache.org/FlumeUserGuide.html
一个比较完整的介绍:http://www.aboutyun.com/thread-8917-1-1.html

本文来自博客 “李博Garvin“
转载请标明出处:http://blog.csdn.net/buptgshengod]

1
0
查看评论

分布式日志收集系统Apache Flume的设计介绍

Flume是Cloudera公司的一款高性能、高可能的分布式日志收集系统。现在已经是Apache Top项目。Github地址。同Flume相似的日志收集系统还有Facebook Scribe,Apache Chuwka,Apache Kafka(也是LinkedIn的)。Flume是后起之秀,本文...
  • zbf8441372
  • zbf8441372
  • 2014-01-12 22:30
  • 19790

分布式日志收集系统:Flume

Flume知识点:Event 是一行一行的数据 1.flume是分布式的日志收集系统,把收集来的数据传送到目的地去。 2.flume里面有个核心概念,叫做agent。agent是一个java进程,运行在日志收集节点。 3.agent里面包含3个核心组件:source、channel、sink...
  • u013067629
  • u013067629
  • 2015-05-30 18:37
  • 2370

flume (日志收集系统) 基础概念

Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
  • ronmy
  • ronmy
  • 2017-03-05 14:45
  • 1279

分布式日志收集收集系统:Flume(转)

http://www.geekbus.cn/flume-a-distributed-log-collecting-system/ 大数据 Killua 7个月前 (08-15) 1248浏览 0评论 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在系统...
  • javastart
  • javastart
  • 2015-03-01 07:04
  • 3688

使用flume进行日志收集的总结(1)

由于最近几个月在搞一个实时监控平台的项目,用的是flume+kafka+spark,之前领导说弄个文档总结一下项目开发中的用到技术以及容易出错的地方,以供之后的新手们参考(其实我也才接触了几个月而已),现在才有时间弄文档,顺便也发个博客记录一下(处女篇),毕竟当初我也是不断在网上查资料的,希望这份资...
  • sniperken
  • sniperken
  • 2016-09-09 11:34
  • 352

分布式计算,核心知识点

最近在学习和总结,分布式相关的一些技术知识。    读了几本书,感觉内容比较多,需要梳理下。    在知乎等地方,也找到了一些写得比较好的文章。以下为转载内容分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作。我试着列一下相关知识...
  • FansUnion
  • FansUnion
  • 2015-12-18 19:44
  • 1233

从MapReduce框架浅谈分布式计算

从MapReduce框架浅谈分布式计算 现在的数据挖掘应用,也就是常说的大数据分析,需要我们对大规模的数据进行快速高效的分析。我们先来看下面的例子: 20billions的20KB的网页有400TB,按照目前磁盘的读取速度约为30M/S,我们需要大约4个月的时间才能读完这所有的数据,而存储这些数...
  • u012442940
  • u012442940
  • 2016-02-26 20:19
  • 1295

最简单的理解tensorflow分布式计算的例子

目的是在每个worker使count+1import tensorflow as tfFLAGS = tf.app.flags.FLAGS tf.app.flags.DEFINE_string('job_name', '', 'One of "ps&...
  • guotong1988
  • guotong1988
  • 2017-03-01 09:45
  • 1321

简明易懂的分布式计算模型

开场读了 陈绍业.大规模分布式系统架构与设计实战[M]机械工业出版社,2014.2。根据里面的模型延伸。开发中用到了分布式计算的系统。但是没有仔细去琢磨其中的设计理念。本文延伸书中的内容,尝试用更简单的语言去阐述一种分布式计算的模型。 0x001 现实生活中的分布式计算每天都会有各种各样的新的公司成...
  • q471133417
  • q471133417
  • 2016-07-16 01:06
  • 337

分布式计算框架综述

本来是发表到科技论在线的,谁知道被退稿了,那就发到这里来吧。 0      引言 随着互联网的发展,web2.0时期[1]的到来,人类正式进入了信息爆炸时期的。海量的信息在很多应用都会出现,比如一些社交网络应用中记录用户行为日志通常...
  • s120922718
  • s120922718
  • 2014-01-02 10:25
  • 9952
    我的微信公众号

    作者公众号:凡人机器学习

    凡人机器学习

    机器学习微信交流群
    为了方便大家学习与交流,凡人云近日已开通机器学习社群! 分享“凡人机器学习”公众号名片到40人以上的大群并截图给小助手,小助手就会拉你入群 在这里你可以得到: 1.各种学术讨论 2.最新的资料分享 3.不定期的征文以及联谊活动! 小助手微信号:meiwznn
    作者新书《机器学习实践应用》

    主要讲述算法和业务的结合,适合初学者

    机器学习实践应用

    京东地址

    个人资料
    • 访问:838809次
    • 积分:11210
    • 等级:
    • 排名:第1690名
    • 原创:235篇
    • 转载:40篇
    • 译文:0篇
    • 评论:460条
    博客专栏
    统计