IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Flume简介与使用 -> 正文阅读

[大数据]Flume简介与使用


Flume官网
记录:exec数据源中的command参数可以写一条任意运行的Linux中的命令

Flume简介

什么是Flume

flume主要做的是日志采集,是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统
Flume 运行的核心是 Agent。Flume以agent为最小的独立运行单位。一个agent就是一个JVM。它是一个完整的数据收集工具,含有三个核心组件,分别是 
source、 channel、 sink。通过这些组件, Event 可以从一个地方流向另一个地方
其中channel里面是一个一个event
在这里插入图片描述
flume可靠性的体现:(event必须传到了sink或者下一个agent之后才会结束)
Flume 使用事务性的方式保证传送Event整个过程的可靠性。 Sink 必须在Event 已经被传达到下一站agent里,又或者,已经被存入外部数据目的地之后,才能把 Event 从 Channel 中 remove 掉

Flume的几种连接方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Flume的使用

测试flume(监控一个目录,并将记录打印到控制台)

监控一个目录,将数据打印出来
这里我们做的是监控一个目录,并将下面的数据都打印出来,所以我们这里用到的数据源应该是:
Spooling Directory Source

首先配置数据源source(监控的数据源目录要提前有才行

来到官网,可以看到这边有许多的数据源可以选择

进入我们所需要的从“目录”来的数据源的网页(我们监控的是一个目录),图中标黑的是必选项,剩下的根据自身的需求进行选择
在这里插入图片描述
所以这里我们配置的source为:
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/opt/datas/flume_data

接下来配置sink
我们要做的是将出现的变化打印到控制台
所以这里我们选择的是Logger Sink
在这里插入图片描述
所以我们这里sink的配置为:
a1.sink.k1.type=logger

接下来配置channel
这里我们将channel的类型设置为memory,表示将event缓存在内存中

所以我们这里channel的配置为
a1.channel.c1.type=memory

接下来就是组装,指定sources的channels和sinks的channel

完整的配置文件:

# 给agent起一个名字a1
# 再分别给source、channel、sink起名字
a1.sources=r1
a1.channel=c1
a1.sink=k1

# 分别对source、channel、sink进行配置

# 配置source
# 将source的类型指定为spooldir,用于监听一个目录下文件的变化
# 因为每个组件可能会出现相同的属性名称,所以在对每个组件进行配置的时候
# 需要加上 agent的名字.sources.组件的名字.属性 = 属性值
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/opt/datas/flume_data

# 配置sink
# 使用logger作为sink的组件,可以将收集到的数据直接打印到控制台
a1.sink.k1.type=logger

# 配置channel
# 将channel的类型设置为memory,表示将event缓存在内存中
a1.channel.c1.type=memory

# 组装
# 将sources的channels属性指定为c1
a1.sources.r1.channels=c1
# 将sinks的channel属性指定为c1
a1.sinks.k1.channel=c1

启动agent(这里的a1是agent的名称
flume-ng agent -n a1 -f /opt/datas/flume/spoolingtest.conf -Dflume.root.logger=DEBUG,console

成功监控到这一个目录:
在这里插入图片描述
接下来我们对监控的目录下写入一些文件,观察flume监控的变化(监控的目录下的文件发生了变化之后会自动加上后缀,可以自己修改,默认是"COMPLETED"),我们写入了一个文件,并在文件里面简单写入几个数字
在这里插入图片描述
可以看到这边已经把我们所监控的目录的变化输出了出来
在这里插入图片描述
左边的1-8是我们写入的数字,右边输出的是31-38,代表着我们输入的数字的十六进制

监控目录下的文件到HDFS

配置文件:

a1.sources=r1
a1.sinks=k1
a1.channels=c1

a1.sources.r1.channels=c1
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/opt/datas/flume_data

a1.sinks.k1.channel=c1
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path=/flume

a1.channels.c1.type=memory

监控成功,并且在监控的目录下添加内容
在这里插入图片描述
发现在hdfs上出现了监控的内容变化
在这里插入图片描述

感谢阅读,我是啊帅和和,一位大数据专业大四学生,祝你快乐。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:34:35  更:2021-10-23 12:35:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:01:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码