flume+kafka整合采集数据案例
一、flume简介
1.1.1 概述
- Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
- Flume可以采集文件,socket数据包、文件、文件夹、kafka等各种形式源数据,又可以将采集到的数据(下沉sink)输出到HDFS、hbase、hive、kafka等众多外部存储系统中
- 一般的采集需求,通过对flume的简单配置即可实现
- Flume针对特殊场景也具备良好的自定义扩展能力,
因此,flume可以适用于大部分的日常数据采集场景
1.1.2 运行机制
- Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形成
- 每一个agent相当于一个数据传递员,内部有三个组件:
- Source:采集组件,用于跟数据源对接,以获取数据
- Sink:下沉组件,用于往下一级agent传递数据或者往最终存储系统传递数据
- Channel:传输通道组件,用于从source将数据传递到sink
1.1.3 Flume采集系统结构图
1. 简单结构
单个agent采集数据
2. 复杂结构
多级agent之间串联
二、kafka简介
2.1、简介
kafka是最初由linkedin公司开发的,使用scala语言编写,kafka是一个分布式,分区的,多副本的,多订阅者的日志系统(分布式MQ系统),可以用于搜索日志,监控日志,访问日志等。
2.2、支持的语言
kafka目前支持多种客户端的语言:java、python、c++、php等
2.3、apache kafka是一个分布式发布-订阅消息系统
apache kafka是一个分布式发布-订阅消息系统和一个强大的队列,可以处理大量的数据,并使能够将消息从一个端点传递到另一个端点,kafka适合离线和在线消息消费。kafka消息保留在磁盘上,并在集群内复制以防止数据丢失。kafka构建在zookeeper同步服务之上。它与apache和spark非常好的集成,应用于实时流式数据分析。
2.4、其他的消息队列
RabbitMQ
Redis
ZeroMQ
ActiveMQ
2.5、kafka的好处
可靠性:分布式的,分区,复制和容错的。
可扩展性:kafka消息传递系统轻松缩放,无需停机。
耐用性:kafka使用分布式提交日志,这意味着消息会尽可能快速的保存在磁盘上,因此它是持久的。
性能:kafka对于发布和定于消息都具有高吞吐量。即使存储了许多TB的消息,他也爆出稳定的性能。
kafka非常快:保证零停机和零数据丢失。
三、数据采集案例
3.1 整体数据流程
使用flume监控源头文件夹下的文件,当有新的文件时,自动采集文件数据到kafka。
3.2 flume的采集配置文件
#为我们的source channel sink起名 a1.sources = r1 a1.channels = c1 a1.sinks = k1 #指定我们的source收集到的数据发送到哪个管道 a1.sources.r1.channels = c1 #指定我们的source数据收集策略 a1.sources.r1.type = spooldir a1.sources.r1.spoolDir = /export/servers/flumedata a1.sources.r1.deletePolicy = never a1.sources.r1.fileSuffix = .COMPLETED a1.sources.r1.ignorePattern = ^(.)*\\.tmp$ a1.sources.r1.inputCharset = GBK #指定我们的channel为memory,即表示所有的数据都装进memory当中 a1.channels.c1.type = memory #指定我们的sink为kafka sink,并指定我们的sink从哪个channel当中读取数据 a1.sinks.k1.channel = c1 a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink a1.sinks.k1.kafka.topic = test a1.sinks.k1.kafka.bootstrap.servers = node01:9092,node02:9092,node03:9092 a1.sinks.k1.kafka.flumeBatchSize = 20 a1.sinks.k1.kafka.producer.acks = 1 |
3,4 采集结果图
采集完成后,源头文件会自动加上completed后缀
flume日志图
kafka消费端接收到的数据
四、总结
主要核心就是flume采集配置文件的开发,配置好source.channel.sink三个组件。
flume+kafka整合采集数据案例相关推荐
- Flume跨服务器采集数据
在大数据的采集中,我们常用Flume来进行数据的采集,一般的我们会从Web Server服务器中收集数据,将数据存储在另一台服务器的hdfs文件系统做离线分析或者sink到另一台服务器的kafka消息 ...
- Flume+Kafka+Storm+Redis构建大数据实时处理系统:实时统计网站PV、UV+展示
http://blog.51cto.com/xpleaf/2104160?cid=704690 1 大数据处理的常用方法 前面在我的另一篇文章中<大数据采集.清洗.处理:使用MapReduce进 ...
- 利用Flume将MySQL表数据准实时抽取到HDFS
转自:http://blog.csdn.net/wzy0623/article/details/73650053 一.为什么要用到Flume 在以前搭建HAWQ数据仓库实验环境时,我使用Sqoop抽取 ...
- flume mysql hdfs_利用Flume将MySQL表数据准实时抽取到HDFS
一.为什么要用到Flume 在以前搭建HAWQ数据仓库实验环境时,我使用Sqoop抽取从MySQL数据库增量抽取数据到HDFS,然后用HAWQ的外部表进行访问.这种方式只需要很少量的配置即可完成数据抽 ...
- 大数据———Flume与Kafka整合
环境配置 名称 版本 下载地址 Centos 7.0 64x 百度 Flume 1.8.0 http://flume.apache.org/download.html Kafka 2.11 http: ...
- Flume安装部署,采集方案配置文件编写案例,启动agent采集数据
1.2 Flume实战案例 1.2.1 Flume的安装部署 1.Flume的安装非常简单,只需要解压即可,当然,前提是已有hadoop环境 上传安装包到数据源所在节点上 然后解压 tar -zxvf ...
- Flume+Kafka双剑合璧玩转大数据平台日志采集
点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好 ...
- [大数据] 搜索日志数据采集系统 flume+hbase+kafka架构 (数据搜狗实验室)
1 采集规划 说明: D1 日志所在服务器1 -bigdata02.com D2 日志所在服务器2 -bigdata03.com A flume2 - bigdata02.com 日志收集 C flu ...
- Flume+Kafka+SparkStreaming整合
目录 1.Flume介绍.2 1.1 Flume数据源以及输出方式.2 1.2 Flume的核心概念.2 1.3 Flume结构.2 1.4 Flume安装测试.3 1.5 启动flume4 2.Ka ...
最新文章
- magento获取判断当前页或句柄handles
- dex2oat 加载多次
- 备忘录怎么用红笔标注_错题本的正确打开方法,你用对了吗?
- linux创建指定大小的文件
- Java学习笔记——函数式接口
- Windows Phone开发(44):推送通知第二集——磁贴通知
- php打印订单,WooCommerce: 打印订单
- 2018.1.30-31 开始racket,避免mutation,lazy evaluation
- 可以替代basemap的几个工具
- 轻松办公信息化 六大OA产品优劣点评
- 虚拟机安装教程win7_vm16虚拟机|vmware16安装教程
- (转)所谓“降维打击”到底什么意思?
- 2020央行全面降准,货币政策操作仍有较大空间
- Amazon 的IoT之路
- Redis 缓存清理策略
- 超级账本 —— 面向企业的分布式账本
- usart hmi(串口屏)常用命令
- java 编译期常量
- transition过渡的基本概念(逆战班)
- ipadpro怎么分屏_2020款iPad Pro开箱测评:下一个十年,打开AR新世界的大门