CenOS7下Flume1.7.0数据采集框架搭建

一、Flume简介

1.Flume是什么?

  • 是一个分布式框架。
  • 是Cloudera提供的一个高可用的,高可靠的海量日志采集、聚合和传输的系统。
  • 支持在日志系统中定制各类数据发送方,用于收集数据。
  • 提供对数据进行简单处理,并写到各种数据接受方(可定制)。

2.Flume的优点?

  • 采用ad-hoc方案,明显优点如下:

    1.可靠的、可伸缩、可管理、可定制、高性能

    2.声明式配置,可以动态更新配置

    3.提供上下文路由功能

    4.支持负载均衡和故障转移

  • 可靠性:当节点出现故障时,日志能够被传送到其他节点上而不会丢失。
  • 可扩展性:采用了三层架构,分别为agent,collector和storage,每一层均可以水平扩展。
  • 功能可扩展性:用户可以根据需要添加自己的agent,collector或者storage。
  • 可管理性:所有agent和Collector由master统一管理,这使得系统便于维护。

3.Flume的核心概念

  • Flume以agent为最小的独立运行单位。一个agent就是一个JVM。单agent由Source、Sink和Channel三大组件构成。
  • Source从Client收集数据,传递给Channel。
  • Sink从Channel收集数据,运行在一个独立线程。
  • Channel连接 sources 和 sinks ,这个有点像一个队列。

4.Flume的应用场景?

主要应用在日志数据采集、聚合和传输

5.Flume版本下载

  • http://flume.apache.org/download.html
  • 下载最新版本二进制安装包,如下图所示。

CenOS7下Flume1.7.0数据采集框架搭建

二、Flume安装

1.软件环境

CentOS7

  • JDK1.8
  • flume1.7.0

2.Flume安装配置(结合hadoop的使用)

  • 上传tar包到 /usr/local/flume 并解压
  • 配置环境变量
  • 进入flume的conf目录,可以自定义一个配置文件,如myconf,加入以下内容

agent1表示代理名称

agent1.sources=source1

agent1.sinks=sink1

agent1.channels=channel1

 

#配置source1

agent1.sources.source1.type=spooldir

agent1.sources.source1.spoolDir=/usr/local/flume/flumesrc

agent1.sources.source1.channels=channel1

agent1.sources.source1.fileHeader = false

 

#配置sink1

agent1.sinks.sink1.type=hdfs

agent1.sinks.sink1.hdfs.path=hdfs://hadoop:9000/flumelog

agent1.sinks.sink1.hdfs.fileType=DataStream

agent1.sinks.sink1.hdfs.writeFormat=TEXT

agent1.sinks.sink1.hdfs.rollInterval=4

agent1.sinks.sink1.channel=channel1

 

#配置channel1

agent1.channels.channel1.type=file

agent1.channels.channel1.checkpointDir=/usr/local/flume_check

agent1.channels.channel1.dataDirs=/usr/local/flume_data

  • 启动hadoop的hdfs
  • 任意目录输入以下内容,启动flume

flume-ng agent -n agent1 -c conf -f  /usr/local/flume/apache-flume-1.7.0-bin/conf/myconf

-Dflume.root.logger=DEBUG,console

  • 克隆另一个会话,进入配置的source1的目录,我这里为flumesrc,输入 vi test 编辑一个测试文件,随意输入一些内容,保存并退出
  • 此时看到第一个会话的日志信息改变了,hdfs中创建了相应的文件
  • 可以输入 hadoop fs -ls -R /flumelog 查看hdfs中新增加的文件
  • 输入 hadoop fs -cat 文件名     可以查看文件内容