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
- 下载最新版本二进制安装包,如下图所示。
二、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 文件名 可以查看文件内容