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 = loggerSinkagent.sources.r1.type = netcat
agent.sources.r1.bind = localhost
agent.sources.r1.port = 30000
agent.sources.r1.channels = memoryChannelagent.sinks.loggerSink.type = logger
agent.sinks.loggerSink.channel = memoryChannelagent.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请求数据。

flume大数据框架数据采集系统相关推荐

  1. 玩转人工智能(3)常用的大数据框架简单介绍

    时光不老,我们不散. 讲大数据框架前,简单的介绍下大数据的文化.信息时代人类社会的进步得益于分享和开源.大数据时代属于信息时代的第三代发展阶段(2001年到2011年可以认为是CT行业的黄金期,200 ...

  2. 什么是大数据?常用的大数据框架

    1.什么是大数据? 在互联网技术发展到现今阶段,大量日常.工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,以前的传统的数据处理技术已经无法胜任,需求催生技术,一套用来处理海 ...

  3. 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看

    简介 大数据是收集.整理.处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称.虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性.规模,以及价值在最近几年才 ...

  4. Java程序员必备的10个大数据框架

    当今IT开发人员面对的最大挑战就是复杂性,硬件越来越复杂,OS越来越复杂,编程语言和API越来越复杂,我们构建的应用也越来越复杂.根据外媒的一项调查报告,小千列出了Java程序员在过去12个月内一直使 ...

  5. 【组件】大数据框架安装功能来划分

    海量数据存储: HDFS.Hive(本质存储数据还是hdfs).HBASE.ES 海量数据分析: MapReduce.Spark.SQL 最原始的Hadoop框架 数据存储:HDFS(Hadoop D ...

  6. 数据可视化、模板框架、动态控件、可视化大屏、数据监管、监控平台、图表元件库、数据看板、驾驶舱、统计图表、园区、大屏展示、安防、智慧城市、旅游、健康、医疗卫生、交通、农业、政务、AI、食品、医院、安全

    数据可视化.模板框架.动态控件.可视化大屏.数据监管.监控平台.图表元件库.数据看板.驾驶舱.统计图表.园区.大屏展示.安防.智慧城市.旅游.健康.医疗卫生.交通.农业.政务.AI.食品.医院.数据安 ...

  7. 数据可视化、模板框架、动态控件、可视化大屏、数据原型、监控平台、图表元件库、数据看板、驾驶舱、统计图表、消防、大屏展示、安防、智慧城市、旅游、运输、医疗卫生、贸易、电力、政务、水质、工业园区环境监测

    数据可视化.模板框架.动态控件.可视化大屏.数据原型.监控平台.图表元件库.数据看板.驾驶舱.统计图表.消防.大屏展示.安防.智慧城市.旅游.运输.医疗卫生.贸易.电力.政务.水质.工业园区环境监测 ...

  8. 大数据框架Hadoop篇之Hadoop入门

    1. 写在前面 今天开始,想开启大数据框架学习的一个新系列,之前在学校的时候就会大数据相关技术很是好奇,但苦于没有实践场景,对这些东西并没有什么体会,到公司之后,我越发觉得大数据的相关知识很重要,不管 ...

  9. 【大数据框架及实战2】---初识

    [大数据框架及实战]---数据集 第一节 数据从哪里来 数据怎么用 本项目使用的数据 结构化和非结构数据 结构表的特征提取和呈现 攀登数据分析金字塔 第二节 实战项目中工具软件选型 数据采集到的技术- ...

最新文章

  1. 分析增加站点权重的四大切入点(转载)
  2. python requests模块_Python 爬虫教程 requests 模块
  3. python的快速入门-Python如何快速入门的基础知识
  4. 【Flask项目2】创建用户模块的蓝图(7)
  5. VC中获取窗体句柄的各种方法
  6. iis创建php网站,iis怎么搭建php
  7. CometOJ-[Contest #10]鱼跃龙门【exgcd】
  8. QImage与Mat之间的相互转换
  9. python物理引擎模拟三体_一个物理引擎能不能模拟少量粒子之间的力?
  10. Python使用空域融合技术进行图像去噪
  11. Java开发两年:简述jvm内存模型
  12. hotnets 2019 Using ground relays for low-latency wide-area routing in megaconstellations 阅读报告
  13. bootstrap中如何使div上下、垂直居中
  14. 一文揭开ALBERT的神秘面纱
  15. 图解三代测序(Nanopore)
  16. Installshield 安装包安装过程中遇到的报错(一)
  17. UE4C++设置Actor与父Actor的相对位置和相对旋转
  18. 计算机网络:网络安全
  19. RTX 3080被炒到原价7倍,最高卖5000美元,英伟达官方道歉:将打击黄牛抢购
  20. CISCO X8系列AP升级详解

热门文章

  1. 热血军团-GlobalVariables
  2. ElasticSearch集群缩容
  3. 单片机之如何看参考手册
  4. 战斗服务器响应超时 是否尝试重连,绝地求生刺激战场瞬间落地bug操作方法技巧解析...
  5. h5做APP TV(电视端APP vue框架)
  6. 【Xilinx ILA调试】Xilinx 硬件调试ILA
  7. 博客让谷歌或是百度收录
  8. 用计算机李白,小学生用“编程”写出李白“朋友圈” 江苏越来越多的孩子在学...
  9. 【总结】全球总决赛(2021)通行证门票
  10. maya 动画复制到第二个物体上