Flume
2022-09-27 17:15:04
47
0
0
Flume 概述
1 Flume 定义
Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传
输的系统。 Flume 基于流式架构,灵活简单。
Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS。
2 Flume 基础架构
Flume 组成架构如图所示
下面我们来详细介绍一下 Flume 架构中的组件:
2.1 Agent
Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的。
Agent 主要有 3 个部分组成, Source、 Channel、
Flume
2022-09-27 17:17:09
30
0
0
Flume 安装部署
安装地址
1) Flume 官网地址
http://flume.apache.org/
2)文档查看地址
http://flume.apache.org/FlumeUserGuide.html
3)下载地址
http://archive.apache.org/dist/flume/
安装部署
1)将 apache-flume-1.7.0-bin.tar.gz 上传到 linux 的/opt/software 目录下
2)解压 apache-flume-1.7.0-bin.tar.gz 到/u
Flume
2022-09-27 17:20:50
54
0
0
Flume案例-监控端口数据官方案例
1)案例需求:
使用 Flume 监听一个端口, 收集该端口数据,并打印到控制台。
2)需求分析:
3)实现步骤:
1.安装 netcat 工具
centos安装方法
nbu@ecs:~$ sudo yum install -y nc
ubuntu安装方法
nbu@ecs:~$ sudo apt-get -y install netcat-traditional
2.判断 44444 端口是否被占用
nbu@ecs:~$ sudo netstat -tunlp
Flume
2022-09-27 17:18:27
57
0
0
Flume案例-实时监控单个追加文件
1)案例需求:
实时监控 Hive 日志,并上传到 HDFS 中
2)需求分析:
3)实现步骤:
1.Flume 要想将数据输出到 HDFS,须持有 Hadoop 相关 jar 包
将
commons-configuration-1.6.jar
hadoop-auth-2.7.2.jar
hadoop-common-2.7.2.jar
hadoop-hdfs-2.7.2.jar
commons-io-2.4.jar
htrace-core-3.1.0-incubating.jar
拷贝到/u
Flume
2022-09-27 17:21:43
52
0
0
Flume案例-实时监控目录下的多个追加文件
Exec source 适用于监控一个实时追加的文件, 但不能保证数据不丢失; Spooldir Source 能够保证数据不丢失,且能够实现断点续传, 但延迟较高,不能实时监控;而 Taildir Source既能够实现断点续传,又可以保证数据不丢失,还能够进行实时监控。
1)案例需求:
使用 Flume 监听整个目录的实时追加文件,并上传至 HDFS
2) 需求分析:
3)实现步骤:
1.创建配置文件 flume-taildir-hdfs.conf
创建一个文件
nbu@ecs
Flume
2022-09-27 17:21:28
17
0
0
Flume案例-实时监控整个目录的文件
1)案例需求:
使用 Flume 监听整个目录的文件,并上传至 HDFS
2)需求分析:
3)实现步骤:
1.创建配置文件 flume-dir-hdfs.conf
创建一个文件
nbu@ecs:~$ cd /usr/local/flume/jobnbu@ecs:/usr/local/flume/job$ vim flume-dir-hdfs.conf
添加如下内容:
a3.sources = r3a3.sinks = k3a3.channels = c3# Describe/c
Flume
2022-09-27 17:16:34
17
0
0
Flume 进阶
Flume 事务
Flume Agent 内部原理
重要组件:
1)ChannelSelector
ChannelSelector 的作用就是选出 Event 将要被发往哪个 Channel。其共有两种类型,分别是Replicating(复制)和 Multiplexing(多路复用)。
ReplicatingSelector 会将同一个 Event 发往所有的 Channel,Multiplexing 会根据相应的原则,将不同的 Event 发往不同的 Channel。
2)SinkProcessor
Sink
Flume
2022-09-27 17:20:31
54
0
0
Flume案例-复制和多路复用
1)案例需求:
使用 Flume-1 监控文件变动, Flume-1 将变动内容传递给 Flume-2, Flume-2 负责存储到 HDFS。同时 Flume-1 将变动内容传递给 Flume-3,Flume-3 负责输出到 Local FileSystem。
2)需求分析:
3)实现步骤:
1.准备工作
在/usr/local/flume/job 目录下创建 group1 文件夹:
nbu@ecs:/usr/local/flume/job$ mkdir group1nbu@ecs:/usr/lo
Flume
2022-09-27 17:19:39
19
0
0
Flume案例-负载均衡和故障转移
1)案例需求:
使用 Flume1 监控一个端口,其 sink 组中的 sink 分别对接 Flume2 和 Flume3,采用FailoverSinkProcessor,实现故障转移的功能。
2)需求分析:
3)实现步骤:
1.准备工作
在/opt/module/flume/job 目录下创建 group2 文件夹
nbu@ecs:~$ cd /usr/local/flume/jobnbu@ecs:/usr/local/flume/job$ mkdir group2
2.创建 flu
Flume
2022-09-27 17:21:09
24
0
0
Flume案例-聚合
1)案例需求:
Flume-1 监控文件/usr/local/flume/datas/group.log
Flume-2 监控某一个端口的数据流,Flume-1 与 Flume-2 将数据发送给 Flume-3, Flume-3 将最终数据打印到控制台。
2)需求分析:
3)实现步骤:
1.准备工作
创建/usr/local/flume/datas/group.log:
nbu@ecs:/usr/local/flume$ cd datasnbu@ecs:/usr/local/flume/datas$ tou