什么是Flume

ApacheFlume是一个分布式的、可靠的、可用的系统,用于高效地收集、聚合和将大量来自不同来源的日志数据移动到一个集中的数据存储区。

系统要求

1. JDK 1.8 或以上版本

2. 内存、磁盘 空间充足

3. 代理使用的目录有读写权限

数据流动模型

数据源Source支持多种数据类型,采集到数据后经过Channel通道临时存储,包括 基于内存,Kafka,文件磁盘,然后通过Sink将数据进行落地存储;

Flume Source

主要支持以下几种类型

1. Kafka Source

可以消费kaka中topic中的消息,如果有多个kafka有多个源在运行,可以配置在以消费组的形式读取每一组分区中的topic信息;当前支持的kafak版本为

0.10.1.0或更高版本,配置参考:

tier1.sources.source1.type= = org.apache.flume.source.kafka.KafkaSource

tier1.sources.source1.channels = channel1

tier1.sources.source1.batchSize = 5000

tier1.sources.source1.batchDurationMillis = 2000

tier1.sources.source1.kafka.bootstrap.servers = localhost:9092

tier1.sources.source1.kafka.topics = test1, test2

tier1.sources.source1.kafka.consumer.group.id = custom.g.id

2. Avro Source

监听来自于Avro端口的事件流,比如另一个Flume作为数据源,配置参考:

a1.sources = r1

a1.channels = c1

a1.sources.r1.type = avro

a1.sources.r1.channels = c1

a1.sources.r1.bind = 0.0.0.0

a1.sources.r1.port = 4141

3. Exec Source

执行Unix上命令 生产数据做为Flume的数据源,配置参考:

a1.sources = r1

a1.channels = c1

a1.sources.r1.type = exec

a1.sources.r1.command = tail -F /var/log/secure

a1.sources.r1.channels = c1

Flume Sinks

主要支持如下类型

SinkS

HDFS

Hive

Kafka

Avor

Flume Channels

主要支持如下类型

Channel

Memory Channel

JDBC Channel

Kafka Channel

File Channel

下载安装

安装非常简单:

Wget

http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz

解压缩

Tar xvf apache-flume-1.9.0-bin.tar.gz  -c  /usr/flume

编写简单实例

需求说明:

模拟将服务器A上的磁盘日志复制采集到另一台服务器B的磁盘上

从需求上分析可知source 为 exec 类型 , channel 基于内存即可,sinks 为file_roll 类型.

操作步骤:

1. 在conf 里面新增配置文件 demo.conf

2. Vim demo.conf , 输入以下配置内容:

// 数据源配置

a1.sources = r1

a1.sources.r1.type = exec

a1.sources.r1.command = tail -F /usr/website/logs/1.txt

a1.sources.r1.channels = c1

// 数据通道配置

a1.channels = c1

a1.channels.c1.type = memory

a1.channels.c1.capacity = 10000

a1.channels.c1.transactionCapacity = 10000

a1.channels.c1.byteCapacityBufferPercentage = 20

a1.channels.c1.byteCapacity = 800000

//数据目标存储配置

a1.sinks = k1

a1.sinks.k1.type = file_roll

a1.sinks.k1.channel = c1

a1.sinks.k1.sink.directory = /usr/website/sinklogs

3. 启动flume 服务

bin/flume-ng agent --f conf/demo.conf --name a1 -Dflume.root.logger=INFO,console

4. 启动成功后在source 的目录下新建日志文件 1.txt ,然后输入字符串保存

5. 查看sinks 的磁盘目录 /usr/website/sinklogs 是否有生成的txt 日志文件,如果有说明数据已同步成功,同步的策略是source文件内容每变动一次都会全量的同步到sinks上.

当然,sinks 的类型也可以是kafka 消费者.

扫码或长按关注查看更多文章

大数据之Flume的更多相关文章

  1. 大数据(9) - Flume的安装与使用

    Flume简介 --(实时抽取数据的工具) 1) Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集.聚集.移动的服务,Flume只能在Unix环境下运行. 2) Flume基于流式架构 ...

  2. FusionInsight大数据开发---Flume应用开发

    Flume应用开发 要求: 了解Flume应用开发适用场景 掌握Flume应用开发 Flume应用场景Flume的核心是把数据从数据源收集过来,在送到目的地.为了保证输送一定成功,发送到目的地之前,会 ...

  3. 大数据学习——flume日志分类采集汇总

    1. 案例场景 A.B两台日志服务机器实时生产日志主要类型为access.log.nginx.log.web.log 现在要求: 把A.B 机器中的access.log.nginx.log.web.l ...

  4. 大数据学习——flume拦截器

    flume 拦截器(interceptor)1.flume拦截器介绍拦截器是简单的插件式组件,设置在source和channel之间.source接收到的事件event,在写入channel之前,拦截 ...

  5. 大数据学习——flume安装部署

    1.Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境 上传安装包到数据源所在节点上 然后解压  tar -zxvf apache-flume-1.6.0-bin.tar.gz ...

  6. 入门大数据---通过Flume、Sqoop分析日志

    一.Flume安装 参考:Flume 简介及基本使用 二.Sqoop安装 参考:Sqoop简介与安装 三.Flume和Sqoop结合使用案例 日志分析系统整体架构图: 3.1配置nginx环境 请参考 ...

  7. Flume 在有赞大数据的实践

    https://mp.weixin.qq.com/s/gd0KMAt7z0WbrJL0RkMEtA 原创: 有赞技术 有赞coder 今天 文 | hujiahua on 大数据 一.前言 Flume ...

  8. 大数据【八】Flume部署

    如果说大数据中分布式收集日志用的是什么,你完全可以回答Flume!(面试小心问到哦) 首先说一个复制本服务器文件到目标服务器上,需要目标服务器的ip和密码: 命令: scp  filename   i ...

  9. 大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(重点)

    第1章 Flume概述1.1 Flume定义1.2 Flume组成架构1.2.1 Agent1.2.2 Source1.2.3 Channel1.2.4 Sink1.2.5 Event1.3 Flum ...

随机推荐

  1. 简述 Spring Cloud 是什么2

    一.概念定义       Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案. Spring Cloud对微服务基础框架Ne ...

  2. AOP缓存实现

    输入参数索引作为缓存键的实现 using MJD.Framework.CrossCutting; using MJD.Framework.ICache; using System; using Sys ...

  3. Unity 4.6 GUI

    一起来窥探Unity的下一代GUI 预览 UI组件 UI结构 Canvas Button Selection List(滑动列表)

  4. 用Python实现数据结构之链表

    链表 链表与栈,队列不一样,它是由一个个节点构成的,每个节点存储着本身的一些信息,也存储着其他一个或多个节点的引用,可以从一个节点找到其他的节点,节点与节点之间就像是有链连在一起一样,这种数据结构就叫 ...

  5. 辽宁移动宽带体验及魔百盒M101s-2刷机

    一.背景 坐标:辽宁 某城,移动宽带100M. 设备:移动赠送,华为光猫一只,魔百盒M101s-2电视盒子 一只,据安装人员说这个魔百盒是移动自己开发设计的. 二.上网体验 上网:浏览一般网站没问题. ...

  6. sklearn中各种分类器回归器都适用于什么样的数据呢?

    作者:匿名用户链接:https://www.zhihu.com/question/52992079/answer/156294774来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  7. vmware linux 虚拟机开机状态加硬盘

    在开机状态先加一块盘,如图: 在系统中查看当前硬盘状态: 新加的硬盘还没刷出来.执行如下命令再试一下: $ echo "- - -" >/sys/class/scsi_hos ...

  8. apache 80端口占用问题

    今天安装mongodb后发现apache无法启动 命令行 services.msc 打开服务 在服务里启动Apache2a服务,报错误码1 网上查有很多情况都报的1 可以通过命令行下  执行apach ...

  9. Linux 小知识翻译 - 「架构」(arch)

    这次,聊聊「架构」这个术语. 在PC相关的文档中,是不是经常看到「x86架构」这个短句.但是对于这句话,是不是总感到有种似懂非懂的感觉. 架构的英语是「architecture」.这里面有「建筑」,「 ...

  10. 原生JS添加类名 删除类名

    为 <div> 元素添加 class: document.getElementById("myDIV").classList.add("mystyle&quo ...