【图解大数据技术】Flume、Kafka、Sqoop

【图解大数据技术】Flume、Kafka、Sqoop

Flume

Flume简介

Flume是一个数据采集工具,多用于大数据技术架构下的日志采集。

Flume的特点是高可靠,高可用,分布式,海里数据采集传输。

Flume的基础架构如下:

  • Agent:一个Agent就是一个JVM进行,Agent中主要由Source、Channel、Sink三部分组成。
  • Source:Source主要负责收集外部的数据到Agent中,以Event的形式存入Channel。
  • Sink:Sink负责从Channel中批量删除Event并把它们写入指定的外部存储。
  • Channel:Source与Sink之间的一个缓冲区,有MemoryChannel和FileChannel两种类型,分别存储数据在内存和文件中。Channel以Event的形式存储数据。
  • Event:Flume以Event的形式将数据从源头传输到目的地。Event分Header和Body两部分,Header是KV格式,Body是字节数组。

Flume的应用场景

我们使用Flume,一般是在大数据环境下做日志采集,或者收集爬虫数据,然后导入到HDFS或Kafka中。

Kafka

Kafka简介

Kafka是一个消息队列,一般应用在大数据环境下日志信息的传输。当然Kafka也可以应用在业务系统,但是业务系统一般用的RabbitMQ或RocketMQ较多。

Kafka架构

  • Zookeeper:Kafka通过Zookeeper记录broker信息,某个topic的partition所在的broker等。
  • Producer:消息生产者。
  • Concumer Group:消费者组,每个消费者都从属于一个消费者组,同一组内的不同消费者消费同一个topic下的不同partition。
  • Consumer:消息消费者。
  • Topic:消息主题,每个主题都有多个消息分区(Partition),消息生产者发消息是发到某个Partition上,消费者也是消费某个Partition的消息。
  • Partition:消息分区,真正存储消息,每个Partition对应broker上的一个目录,存储消息数据文件。

由于后续打算开一个消息中间件专题去详细解析Kafka,这里就不详细论述。

Flume与Kafka集成

Kafka搭配Flume是一对很常见的组合。通过Flume进行日志收集,然后发送到Kafka,Kafka起到了日志数据缓冲的作用,其他系统如果有需要都可以通过Kafka监听日志信息。

比如我们可以使用Spark Streaming监听Kafka进行实时计算;也可以通过Flume接收Kafka上的日志数据,再导入到HDFS,给后续的数仓做离线计算;或者其他的一些需要监听日志消息的系统。

Sqoop

Sqoop简介

Sqoop是一款用于关系型数据库与Hadoop之间进行数据导入导出的工具。我们可以利用Sqoop将关系型数据库(如Mysql、Oracle、DB2)中的数据导入到Hadoop的HDFS、Hive、HBase中(最终都是落入HDFS);也可以从HDFS中导出数据到关系型数据库中。

Sqoop原理

Sqoop的原理很简单,就是把接收到的命令翻译成MapReduce程序来执行,在MapReduce程序中进行数据导入导出操作。

sqoop搭配任务调度器实现定时数据同步

sqoop可以搭配像oozie或者Azkaban等任务调度器实现定时的数据同步。

可以通过定时调度器定时执行一个shell脚本,shell脚本中是sqoop命令,这样就可以达到定时数据同步的作用。

相关推荐
武子康21 小时前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
DemonAvenger2 天前
Kafka性能调优:从参数配置到硬件选择的全方位指南
性能优化·kafka·消息队列
武子康2 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP2 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库2 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟2 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长3 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计
十月南城3 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark