flume大数据框架数据采集系统

2023-05-16

    flume是cloudera开源的数据采集系统,现在是apache基金会下的子项目,他是hadoop生态系统的日志采集系统,用途广泛,可以将日志、网络数据、kafka消息收集并存储在大数据hdfs系统之上。现在的flume其实已经不是最初的flume了,他其实是flume-ng,就是flume二代,我们下载最新的apache-flume解压之后,发现bin目录有flume-ng可执行程序,并没有flume可执行程序。

    flume的安装其实很简单,直接下载二进制安装包,解压即可,运行环境需要jdk,设置JAVA_HOME,CLASSPATH

,PATH等环境变量,也是一般hadoop生态系统最基础的环境。

    flume是由agent代理组成的,可以有多个代理,每个代理分为三个组件:信源-source,信道-channel,信宿-sink三部分,架构图如下所示:

信源可以分为:

  • directory:spooling directory source,采集目录中的日志。
  • http:采集HTTP中的日志,一般设置type=netcat。
  • kafka:作为kafka的一个topic的消费者,将kafka的消息收集到系统中。

信道可以分为:

  • memory:信道的作用是缓存收集的数据,这里memory是指缓存在内存中,也是最常用的一种方式。
  • jdbc:将收集的数据缓存在关系型数据库中。
  • kafka:缓存到kafka中。

信宿可以分为:

  • logger:flume采集的数据,最终是需要做存储的,一般是存储到文件系统,这种方式是存储在日志文件中,也是最简单的存储。
  • hdfs:最常用的存储方式,就是放在hadoop分布式存储系统中,可以有多重稳定性、完整性的保证。
  • hive:保存到hive中
  • hbase:保存到hbase中
  • kafka:这里是指将flume收集系统作为一个kafka的生产者,将消息写入kafka的一个topic中,等待被消费。

谈谈配置文件的配置:

一般是以agent的名称开头,比如agent为a1,然后指定三个组件的名称,比如:

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

s1表示agent的源为s1,c1表示agent的信道为c1,k1表示agent的信宿为k1。接下来具体指定每一个组件的类型和详细信息:

source

a1.sources.s1.type=netcat
a1.sources.s1.bind=0.0.0.0
a1.sources.s1.port=30000

channel

a1.channels.c1.type=memory
a1.channels.c1.capacity=100

sink

a1.sinks.k1.type=logger

最后这两句就是将source和slink通过 channel关联起来:

a1.sources.s1.channels=c1
a1.sinks.k1.
channel=c1

    一般来说我们是按照source,channel,sink这么个顺序来配置,最终,利用channel将source与sink联系起来。但是这个配置里面,需要注意的地方是,我们配置source的channel是使用的channels,而配置sink的channel是使用的channel,这里需要我们格外的注意。

这里给出一个最简单的配置,默认收集来自http的数据,最终以日志的形式存储。

agent.sources = r1
agent.channels = memoryChannel
agent.sinks = loggerSink

agent.sources.r1.type = netcat
agent.sources.r1.bind = localhost
agent.sources.r1.port = 30000
agent.sources.r1.channels = memoryChannel

agent.sinks.loggerSink.type = logger
agent.sinks.loggerSink.channel = memoryChannel

agent.channels.memoryChannel.type = memory
agent.channels.memoryChannel.capacity = 100

部署测试:

    bin/flume-ng agent --conf conf --conf-file conf/flume-conf.properties --name agent -Dflume.root.logger=INFO,console

    通过telnet命令连接localhost 30000,连接成功输入hello回车,然后输入flume回车,均显示发送成功。

    我们再看启动日志,发现日志中出现了hello,flume等信息,说明flume部署成功。

    当我们以netcat作为source类型的时候,我们其实是在本机开启了一个socket监听服务,监听发送自本机端口为30000的http请求,我们查看本机端口信息:

    因此,我们才可以通过telnet访问本机的30000端口的http服务,并且模拟发送http请求数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flume大数据框架数据采集系统 的相关文章

随机推荐

  • 使用apache mod_env模块保存php程序敏感信息

    Apache模块 mod env 说明 xff1a 允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量 模块名 xff1a env module 源文件 xff1a mod env c 本模块用于控制传送给CGI脚本和SSI页
  • php 根据url自动生成缩略图

    原理 xff1a 设置apache rewrite xff0c 当图片不存在时 xff0c 调用php创建图片 例如 原图路径为 xff1a http localhost upload news 2013 07 21 1 jpg 缩略图路径
  • mailto 参数说明

    mailto 可以调用系统内置软件发送电子邮件 参数说明 mailto xff1a 收件人地址 xff0c 可多个 xff0c 用 分隔 cc xff1a 抄送人地址 xff0c 可多个 xff0c 用 分隔 bcc xff1a 密件抄送人
  • mysql 导入导出数据库

    mysql 导入导出数据库 1 导出数据 导出test 数据库 R 表示导出函数和存储过程 xff0c 加上使导出更完整 mysqldump u root p R test gt test sql 导出test数据库中user表 mysql
  • php 广告加载类

    php 广告加载类 xff0c 支持异步与同步加载 需要使用Jquery ADLoader class php lt php 广告加载管理类 Date 2013 08 04 Author fdipzone Ver 1 0 Func publ
  • 使用<img>标签加载php文件,记录页面访问讯息

    原理 xff1a 通过 lt img gt 标标签加载php文件 xff0c php文件会使用gd库生成一张1x1px的空白透明图片返回 xff0c 并记录传递的参数写入log文件 lt img src 61 34 sitestat php
  • tput 命令行使用说明

    什么是 tput xff1f tput 命令将通过 terminfo 数据库对您的终端会话进行初始化和操作 通过使用 tput xff0c 您可以更改几项终端功能 xff0c 如移动或更改光标 更改文本属性 xff0c 以及清除终端屏幕的特
  • ROS2学习笔记(二)-- 多机通讯原理简介及配置方法

    在ROS1中由主节点 master 负责其它从节点的通信 xff0c 在同一局域网内通过设置主节点地址也可以实现多机通讯 xff0c 但是这种多机通讯网络存在一个严重的问题 xff0c 那就是所有从节点强依赖于主节点 xff0c 一旦运行主
  • 使用shell实现阿里云动态DNS

    https github com timwai aliyunDDNS shell 脚本全部使用基础的命令实现 xff0c 支持在openwrt中使用 修改以下参数为你自己的参数 ACCESS KEY ID 61 你的AccessKeyId
  • Java-两个较大的List快速取交集、差集

    工作中经常遇到需要取两个集合之间的交集 差集情况 xff0c 但是普通的retainAll 和removeAll 无法满足数据量大的情况 xff0c 由此就自己尝试运用其他的方法解决 注 xff1a 如果数据量小的情况下 xff0c 还是使
  • Xubuntu15.04更新系统源时出现错误提示W: GPG 错误:http://archive.ubuntukylin.com:10006 xenial InRelease: 由于没有公钥,无法验证

    在更新系统源后 xff0c 输入sudo apt get update之后出现提示 xff1a W GPG 错误 xff1a http archive ubuntukylin com 10006 xenial InRelease 由于没有公
  • ubuntu开启SSH服务远程登录

    ssh secure shell xff0c 提供安全的远程登录 从事嵌入式开发搭建linux开发环境中 xff0c ssh的服务的安装是其中必不可少的一步 ssh方便一个开发小组中人员登录一台服务器 xff0c 从事代码的编写 编译 运行
  • Python实现让视频自动打码,再也不怕出现少儿不宜的画面了

    人生苦短 我用Python 序言准备工作代码解析完整代码 序言 我们在观看视频的时候 xff0c 有时候会出现一些奇怪的马赛克 xff0c 影响我们的观影体验 xff0c 那么这些马赛克是如何精确的加上去的呢 xff1f 本次我们就来用Py
  • Docker安装nextcloud实验

    Docker安装nextcloud实验 修改验证方式 xff1a 从密钥到密码 sudo passwd root su root vi etc ssh sshd config 去掉下面前的 或修改yes no port 22 Address
  • Tesseract-OCR 字符识别---样本训练

    Tesseract是一个开源的OCR xff08 Optical Character Recognition xff0c 光学字符识别 xff09 引擎 xff0c 可以识别多种格式的图像文件并将其转换成文本 xff0c 目前已支持60多种
  • FPGA与OPENCV的联合仿真

    对于初学者来说 xff0c 图像处理行业 xff0c 最佳仿真方式 xff1a FPGA 43 OPENCV xff0c 因为OPENCV适合商业化 xff0c 适合自己写算法 1 xff09 中间交互数据介质 txt文档 2 xff09
  • 华硕P8Z77-V LX老主板转换卡升级NVMe M2硬盘经验,老主机的福音,质的飞跃

    每年双十一都是淘货升级老家伙的时候 xff0c 今年也不例外 xff0c 随着日子长久 xff0c 软件的增多 xff0c 虽然已经尽量装在系统盘以外的盘 xff0c 但C盘还是日渐不够用 xff0c 从以前的30G系统盘升到60G xff
  • linux 更换 软件源后 GPG错误

    linux 更换 软件源后 GPG错误 linux 软件源 GPG 签名 密钥 linux 更换 软件源后 GPG错误 http my oschina net emptytimespace blog 83633 如文章 1 中提到 xff1
  • ROS2学习笔记(四)-- 用方向键控制小车行走

    简介 xff1a 在上一节的内容中 xff0c 我们通过ROS2的话题发布功能将小车实时视频信息发布了出来 xff0c 同时使用GUI工具进行查看 xff0c 在这一节内容中 xff0c 我们学习一下如何订阅话题并处理话题消息 xff0c
  • flume大数据框架数据采集系统

    flume是cloudera开源的数据采集系统 xff0c 现在是apache基金会下的子项目 xff0c 他是hadoop生态系统的日志采集系统 xff0c 用途广泛 xff0c 可以将日志 网络数据 kafka消息收集并存储在大数据hd