前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据——数据流式处理「建议收藏」

大数据——数据流式处理「建议收藏」

作者头像
全栈程序员站长
发布2022-08-31 19:36:33
8180
发布2022-08-31 19:36:33
举报

大家好,又见面了,我是你们的朋友全栈君。

一、概念

大数据中包含两种处理方式:流处理和批处理。

  • 流处理:即流式处理。流式处理假设数据的潜在价值是数据的新鲜度,需要尽快处理得到结果。在这种方式下,数据以流的方式到达。在数据连续到达的过程中,由于流携带了大量数据,只有小部分的流数据被保存在有限的内存中。流处理方式用于在线应用,通常工作在秒或毫秒级别。
  • 批处理:批处理方式中,数据首先被存储,然后再分析。MapReduce是非常重要的批处理模型。MapReduce的核心思想是,数据首先被分为若干小数据块chunks,随后这些数据块被并行处理并以分布的方式产生中间结果,最后这些中间结果被合并产生最终结果。

二、主流组件

目前主流的流处理组件包括:Strom、Spark Streaming、KafKa、Flume、Flink、S3等,接下来将对上述组件做简要介绍。

  • Flume:一个可以收集例如日志、事件等数据资源,并将这些庞大数据从各项数据资源中集中存储的工具/服务。其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中。其结构图如下:
大数据——数据流式处理「建议收藏」
大数据——数据流式处理「建议收藏」

Flume优势

1)Flume可以将源数据存储到任何集中存储器中,如:HDFS、HBase;

2)数据收集速度超过写入速度时,提供平衡机制;

3)提供上下文路由特征;

4)Flume管道基于事务,保证数据传送和接受的一致性;

5)Flume是可靠,高容错性的,提供定制。·

Flume结构

大数据——数据流式处理「建议收藏」
大数据——数据流式处理「建议收藏」

如图所示,数据发生器产生的数据被单个运行在数据发生器所在服务器上的agent所通过事件event的方式被收集,之后数据收容器从各个agent上汇聚数据存入HDFS或HBase。

Flume事件

事件是Flume内部数据传输的最基本单元,由一个转载数据的字节数组(该数据组是从数据源接入点传入,并传输给传输器,也就是HDFS/HBase)和一个可选头部构成。其结构如下图所示:

大数据——数据流式处理「建议收藏」
大数据——数据流式处理「建议收藏」

Flume Agent

Flume内部有一个或者多个Agent,每一个Agent就是一共独立的守护进程(JVM),它从客户端或其他Agent接收数据,然后迅速将获取的数据传给下一个目的节点sink或者agent。其结构如下图所示,主要由source、channel、sink三部分组成。

大数据——数据流式处理「建议收藏」
大数据——数据流式处理「建议收藏」

Source:

从数据发生器接收数据,并将接收的数据以Flume的event格式传递给一个或者多个通道channal,Flume提供多种数据接收的方式,比如Avro,Thrift等;

Channel:

channal是一种短暂的存储容器,它将从source处接收到的event格式的数据缓存起来,直到它们被sinks消费掉,它在source和sink间起着一共桥梁的作用,channal是一个完整的事务,这一点保证了数据在收发的时候的一致性。并且它可以和任意数量的source和sink链接,支持的类型有: JDBC channel ,File System channel, Memort channel等;

Sink:

sink将数据存储到集中存储器比如Hbase、HDFS,它从channals消费数据(events)并将其传递给目标地,目标地可能是另一个sink,也可能HDFS,HBase。

大数据——数据流式处理「建议收藏」
大数据——数据流式处理「建议收藏」
大数据——数据流式处理「建议收藏」
大数据——数据流式处理「建议收藏」

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142572.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概念
  • 二、主流组件
相关产品与服务
TDSQL MySQL 版
TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档