目录

一、Flume简介

二、Flume的安装配置

1.下载并上传

2.解压

3.配置

4.配置环境变量

5.使环境变量起作用

三、Flume入门

1.配置采集方案

2.指定采集方案启动Flume

3.采集数据测试

四、案例测试1:监控某个文件夹的变化,将添加的新文件采集存入到hdfs

1.采集方案需要确定三大部分

2.采集配置文件

3.测试

4.出现错误

5.重新启动flume

6.重新启动该flume上传一个文件

7.查看结果

8.修改采集方案

9.重新启动flume

10.查看结果

五、案例测试2:监控某个文件的变化,把变化的内容存储到hdfs上

1.采集方案

2.配置采集方案

3.测试采集功能

4.启动flume

5.在hdfs上查看

六、案例测试3:Flume的可靠性保证-负载均衡

1.搭建并配置flume集群

1)分发hadoop001上的flume文件到

2)分发环境变量配置文件

3)起作用

2.配置采集方案

1)在hadoop01上配置第一级采集方案

2)在hadoop002和hadoop003上配置第二级采集方案

3.启动flume

1)在hadoop002和hadoop003上启动flume

2)启动hadoop001的flume

3)启动成功的连接信息

4)同时在hadoop002和hadoop003上也提示连接成功

4.负载均衡的测试

1)克隆hadoop001的会话,编写脚本并运行

5.查看结果

1)hadoop002

2) hadoop003

七、Flume的可靠性保证-故障恢复

1.配置采集方案

2.启动flume

3.把hadoop003的flume关闭,等待十秒钟(超时时间,在采集方案中进行的定义)

八.flume拦截器

1.场景

2.hadoop002与hadoop003的配置文件

3.hadoop001的配置文件

4.启动flume

1)先启动hadoop001上的flume

2)再启动hadoop002和hadoop003上的flume


一、Flume简介

Logo表示通过河道(频道channel)把木材(数据)从一个地方(数据源source)传送到另一个地方(数据目的地-下沉sink)

二、Flume的安装配置

1.下载并上传

2.解压

3.配置

4.配置环境变量

5.使环境变量起作用

三、Flume入门

1.配置采集方案

启动命令

2.指定采集方案启动Flume

查看官网

表示已经成功

3.采集数据测试

先安装telnet

四、案例测试1:监控某个文件夹的变化,将添加的新文件采集存入到hdfs

1.采集方案需要确定三大部分

数据源:查看官网

数据下沉:

2.采集配置文件

3.测试

flume会检测根目录/var/log/apache/flumeSpool/是否有新文件产生。往该文件夹上传一个文件,flume会把该文件上传到hdfs集群中

4.出现错误

由于guava版本不一致造成

低版本guava做备份

复制hadoop下的高版本

5.重新启动flume

启动成功

测试采集效果

6.重新启动该flume上传一个文件

处理成功

7.查看结果

乱码

8.修改采集方案

9.重新启动flume

10.查看结果

乱码解决

五、案例测试2:监控某个文件的变化,把变化的内容存储到hdfs上

1.采集方案

数据源

数据下沉不用修改

2.配置采集方案

3.测试采集功能

写shell脚本持续输出当前日期到监控文件/var/log/test.log中

再克隆一个会话,查看新增的内容

4.启动flume

5.在hdfs上查看

六、案例测试3:Flume的可靠性保证-负载均衡

1.搭建并配置flume集群

三台服务器集群flume集群:hadoop001,hadoop002,hadoop003,

1)分发hadoop001上的flume文件到

[root@hadoop001 servers]# scp -r apache-flume-1.9.0-bin/ hadoop002:$PWD

[root@hadoop001 servers]# scp -r apache-flume-1.9.0-bin/ hadoop003:$PWD

2)分发环境变量配置文件

3)起作用

2.配置采集方案

两级配置方案

1)在hadoop01上配置第一级采集方案

2)在hadoop002和hadoop003上配置第二级采集方案

Hadoop002

Hadoop003

3.启动flume

1)在hadoop002和hadoop003上启动flume

从最后一级开始启动flume

Hadoop002

Hadoop003

2)启动hadoop001的flume

3)启动成功的连接信息

4)同时在hadoop002和hadoop003上也提示连接成功

4.负载均衡的测试

1)克隆hadoop001的会话,编写脚本并运行

while true;do date >> /var/log/test1.log;sleep 5;done

5.查看结果

1)hadoop002

2) hadoop003

七、Flume的可靠性保证-故障恢复

1.配置采集方案

2.启动flume

3.把hadoop003的flume关闭,等待十秒钟(超时时间,在采集方案中进行的定义)

Hadoop002开始工作实现故障恢复

八.flume拦截器

1.场景

在实际开发的应用场景中,两台服务器A、B在实时产生日志数据,日志类型主要为access.log、nginx.log和web.log。现需要将A、B两台服务器产生的日志数据access.log、nginx.log和web.log采集汇总到服务器C上,并统一收集并上传到HDFS文件系统进行保存。在HDFS中保存日志数据的文件必须按照以下要求进行归类统计(20180723表示收集日志数据的当前日期):

/source/logs/access/20180723/**

/source/logs/nginx/20180723/**

/source/logs/web/20180723/**

2.hadoop002与hadoop003的配置文件

# example.conf: A single-node Flume configuration

# Name the components on this agent

# 定义代理的名字a1及各个组件sources、sinks和channels

a1.sources = r1 r2 r3

a1.sinks = k1

a1.channels = c1

# Describe/configure the source

# 定义r1数据源

a1.sources.r1.type = exec

a1.sources.r1.command = tail -F /var/log/access.log

# 定义第一个r1

a1.sources.r1.interceptors = i1

a1.sources.r1.interceptors.i1.type = static

a1.sources.r1.interceptors.i1.key = type

a1.sources.r1.interceptors.i1.value = access

# 定义r2数据源

a1.sources.r2.type = exec

a1.sources.r2.command = tail -F /var/log/nginx.log

# 定义第二个r2

a1.sources.r2.interceptors = i2

a1.sources.r2.interceptors.i2.type = static

a1.sources.r2.interceptors.i2.key = type

a1.sources.r2.interceptors.i2.value = nginx

# 定义r3数据源

a1.sources.r3.type = exec

a1.sources.r3.command = tail -F /var/log/web.log

# 定义第二个r3

a1.sources.r3.interceptors = i3

a1.sources.r3.interceptors.i3.type = static

a1.sources.r3.interceptors.i3.key = type

a1.sources.r3.interceptors.i3.value = web

# Describe the sink

# 定义数据的目的地(下沉)

a1.sinks.k1.type = avro

a1.sinks.k1.hostname = hadoop001

a1.sinks.k1.port = 41414

# Use a channel which buffers events in memory

# 定义管道

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel

# 组装组件

a1.sources.r1.channels = c1

a1.sources.r2.channels = c1

a1.sources.r3.channels = c1

a1.sinks.k1.channel = c1

# 启动命令

# flume-ng agent --conf conf --conf-file conf/exec-avro.conf --name a1

3.hadoop001的配置文件

# Name the components on this agent

# 定义代理的名字a1及各个组件sources、sinks和channels

a1.sources = r1

a1.sinks = k1

a1.channels = c1

# Describe/configure the source

# 定义数据源

a1.sources.r1.type = avro

a1.sources.r1.bind = hadoop001

a1.sources.r1.port = 41414

#定义拦截器

a1.sources.r1.interceptors = i1

a1.sources.r1.interceptors.i1.type = timestamp

# Describe the sink

# 定义数据的目的地(下沉)

a1.sinks.k1.type = hdfs

a1.sinks.k1.hdfs.path = /flume/logs/%{type}/%y%m%d

a1.sinks.k1.hdfs.filePrefix = events-

# 是否循环创建文件夹

a1.sinks.k1.hdfs.round = true

# 循环创建文件夹的时间间隔是十分钟

a1.sinks.k1.hdfs.roundValue = 10

a1.sinks.k1.hdfs.roundUnit = minute

# 使用本地时间个数

a1.sinks.k1.hdfs.useLocalTimeStamp = true

// 列编辑模式,按住alt选择多列

# 时间间隔

a1.sinks.k1.hdfs.rollInterval = 0

# 大小间隔

a1.sinks.k1.hdfs.rollSize = 10485760

# event的个数,这三个参数谁先满足就出发循环滚动

a1.sinks.k1.hdfs.rollCount = 0

# 批处理数量

a1.sinks.k1.hdfs.batchSize = 10

# 文件格式 表示普通文本文件

a1.sinks.k1.hdfs.fileType = DataStream

a1.sinks.k1.hdfs.writeFormat = Text

a1.sinks.k1.hdfs.threadsPoolSize=10

a1.sinks.k1.hdfs/callTimeout=30000

# Use a channel which buffers events in memory

# 定义管道

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel

# 组装组件

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

# 启动命令

# flume-ng agent --conf conf --conf-file conf/avro-hdfs.conf --name a1 -Dflume.root.logger=INFO,console

4.启动flume

1)先启动hadoop001上的flume

2)再启动hadoop002和hadoop003上的flume

测试效果

在hadoop02和hadoop03上分别克隆三个会话,分别执行以下三个脚本,用来产生生产日志数据

结果

Hadoop学习之Flume日志采集相关推荐

  1. Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制

    1 Flume日志收集 1.1 总体介绍 官方地址:http://flume.apache.org/ 1.1.1 背景 flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广 ...

  2. Hadoop学习之-Flume

    Apache Flume 关于Flume 1.安装Flume 2.Flume样例 3.事务和可靠性 4.HDFS sink 4-1.分区和拦截器 4-2.文件格式 关于Flume Hadoop的宗旨是 ...

  3. Hadoop辅助工具——Flume、Sqoop

    前言 在一个完整的离线大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集.结果数据导出.任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体 ...

  4. 日志采集框架Flume以及Flume的安装部署(一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统)...

    Flume支持众多的source和sink类型,详细手册可参考官方文档,更多source和sink组件 http://flume.apache.org/FlumeUserGuide.html Flum ...

  5. 大数据学习--kafka+flume++sqoop+hadoop+zookeeper+spark+flink

    大数据工程师 学习指南 一必备技能 Zookeeper.Hadoop.Hive.HBase.Flume.Sqoop.Flink 等等 1定义(from百度百科) 1.1Zookeeper 百度百科-验 ...

  6. Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

    Hadoop学习笔记-20.网站日志分析项目案例(一)项目介绍 网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edis ...

  7. Flume+Kafka双剑合璧玩转大数据平台日志采集

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好 ...

  8. 第十一章 :日志采集工具flume使用

    先我们来看一张图,如下所示,最上方代表三台设备,当然可以是更多的设备,每台设备运行过程都会产生一些log,这些log是我们需要的信息,我们不可能手动的一台一台的去收集这些log,那样的话太浪费人力了, ...

  9. 日志采集框架Flume、Flume介绍、概述、运行机制、Flume采集系统结构图(1、简单结构、复杂结构)

    1. 日志采集框架Flume 1.1 Flume介绍 1.1.1 概述 1.Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统. 2.Flume可以采集文件,socket数据包等各 ...

最新文章

  1. Android 数据库基本操作-2
  2. iOS网络编程开发—HTTP协议
  3. Adaboost算法原理分析和实例+代码(简明易懂)
  4. VTK嵌入MFC同步显示
  5. SQL语言基础:触发器相关知识介绍​
  6. 一只蝙蝠的自述在朋友圈火了:千万不要再吃野味了!
  7. java string底层实现_Java-学习日记(Shell与String底层原理)
  8. python批量提取pdf的数据_Python批量提取PDF文件中文本的脚本
  9. c++ 写x64汇编 5参数_第9篇-C/C++ x86_64的函数栈
  10. 第七次CCF-D:游戏
  11. 首届恩智浦智能车比赛回顾
  12. DCMTK findscu 查询信息
  13. 清华大学计算机系黄子懿,清华大学2014年自主招生名单:(北京市)(一)
  14. 项目经理也分三六九等,初级项目经理和高级项目经理的区别
  15. 关于VC++6.0显示“不能启动工具,操作成功完成”问题
  16. 【报告分享】2021年中国互联网保险消费者洞察报告-凯度元保清华大学国家金融研究院(附下载)
  17. SSO 轻量级实现指南(原生 Java 实现):SSO Client 部分
  18. RabbitMQ的消息应答机制和轮询策略
  19. 用 iOS 系统自动化解救钉钉打卡族
  20. 2020.08.05狂人日记:C#计时器与串口通信

热门文章

  1. “计算机图形学”实践教学资源库的设计与建设
  2. Linux下安装源码程序步骤
  3. 微信文本信息a标签无效
  4. 十进制到M进制-C语言
  5. HTML+CSS画个太阳
  6. 国信灵通:企业移动化改变生活
  7. YTU 3144 动态规划进阶题目之大盗阿福
  8. 近代诗欣赏【白鹭引擎】
  9. Flash开发 NAND,NOR和 Flash区别
  10. 电脑族养生茶-枸杞菊花决明子茶