Hadoop学习之Flume日志采集
目录
一、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日志采集相关推荐
- Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制
1 Flume日志收集 1.1 总体介绍 官方地址:http://flume.apache.org/ 1.1.1 背景 flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广 ...
- Hadoop学习之-Flume
Apache Flume 关于Flume 1.安装Flume 2.Flume样例 3.事务和可靠性 4.HDFS sink 4-1.分区和拦截器 4-2.文件格式 关于Flume Hadoop的宗旨是 ...
- Hadoop辅助工具——Flume、Sqoop
前言 在一个完整的离线大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集.结果数据导出.任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体 ...
- 日志采集框架Flume以及Flume的安装部署(一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统)...
Flume支持众多的source和sink类型,详细手册可参考官方文档,更多source和sink组件 http://flume.apache.org/FlumeUserGuide.html Flum ...
- 大数据学习--kafka+flume++sqoop+hadoop+zookeeper+spark+flink
大数据工程师 学习指南 一必备技能 Zookeeper.Hadoop.Hive.HBase.Flume.Sqoop.Flink 等等 1定义(from百度百科) 1.1Zookeeper 百度百科-验 ...
- Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍
Hadoop学习笔记-20.网站日志分析项目案例(一)项目介绍 网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edis ...
- Flume+Kafka双剑合璧玩转大数据平台日志采集
点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好 ...
- 第十一章 :日志采集工具flume使用
先我们来看一张图,如下所示,最上方代表三台设备,当然可以是更多的设备,每台设备运行过程都会产生一些log,这些log是我们需要的信息,我们不可能手动的一台一台的去收集这些log,那样的话太浪费人力了, ...
- 日志采集框架Flume、Flume介绍、概述、运行机制、Flume采集系统结构图(1、简单结构、复杂结构)
1. 日志采集框架Flume 1.1 Flume介绍 1.1.1 概述 1.Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统. 2.Flume可以采集文件,socket数据包等各 ...
最新文章
- Android 数据库基本操作-2
- iOS网络编程开发—HTTP协议
- Adaboost算法原理分析和实例+代码(简明易懂)
- VTK嵌入MFC同步显示
- SQL语言基础:触发器相关知识介绍​
- 一只蝙蝠的自述在朋友圈火了:千万不要再吃野味了!
- java string底层实现_Java-学习日记(Shell与String底层原理)
- python批量提取pdf的数据_Python批量提取PDF文件中文本的脚本
- c++ 写x64汇编 5参数_第9篇-C/C++ x86_64的函数栈
- 第七次CCF-D:游戏
- 首届恩智浦智能车比赛回顾
- DCMTK findscu 查询信息
- 清华大学计算机系黄子懿,清华大学2014年自主招生名单:(北京市)(一)
- 项目经理也分三六九等,初级项目经理和高级项目经理的区别
- 关于VC++6.0显示“不能启动工具,操作成功完成”问题
- 【报告分享】2021年中国互联网保险消费者洞察报告-凯度元保清华大学国家金融研究院(附下载)
- SSO 轻量级实现指南(原生 Java 实现):SSO Client 部分
- RabbitMQ的消息应答机制和轮询策略
- 用 iOS 系统自动化解救钉钉打卡族
- 2020.08.05狂人日记:C#计时器与串口通信