🐇明明跟你说过:个人主页
🏅个人专栏:《大数据前沿:技术与应用并进》🏅
🔖行路有良友,便是天堂🔖
目录
1、使用Logstash从Kafka到Hadoop的数据传输
2、Apache Spark作为中间层:从Kafka读取数据并写入Hadoop
一、引言
1、Kafka简介
Apache Kafka 是一个分布式流处理平台,最初由 LinkedIn 开发,并于 2011 年开源,现在由 Apache Software Foundation 进行维护。Kafka 旨在提供一个统一、高吞吐量、低延迟的平台,用于处理实时数据流。它通常用于构建实时数据管道和流式应用。
更多 Kafka 介绍请参考《大数据领域的重要基础设施——Kafka入门篇》
2、Hadoop简介
Apache Hadoop 是一个开源的分布式计算框架,由 Apache 软件基金会开发和维护。它用于处理和存储大规模数据集,通常被称为“大数据”。Hadoop 的设计目标是提供一个可靠、可扩展和高效的平台,用于分布式数据处理。
更多 Hadoop 介绍请参考《【Hadoop】核心组件深度剖析:HDFS、YARN与MapReduce的奥秘》
二、Kafka基础
1、Kafka核心概念
- Producer: 生产者是将数据发布到 Kafka 主题中的客户端应用程序。生产者负责将数据发送到 Kafka 集群。
- Consumer: 消费者是从 Kafka 主题中读取数据的客户端应用程序。消费者订阅一个或多个主题,并从中消费数据。
- Broker: Kafka 集群由多个 Kafka 实例(称为 broker)组成,每个 broker 负责处理和存储一部分数据。Broker 之间通过分区和副本机制实现数据的分布式存储和高可用性。
- Topic: 主题是 Kafka 中的消息分类或类别。生产者将消息发布到主题,消费者从主题中读取消息。每个主题可以分为多个分区(partition),以实现并行处理和扩展。
- Partition: 分区是 Kafka 主题的基本单元,每个主题可以包含一个或多个分区。每个分区是一个有序的、不可变的消息队列。分区有助于实现数据的并行处理和负载均衡。
- Offset: 每条消息在其所在的分区中都有一个唯一的标识符,称为偏移量(offset)。消费者使用偏移量来跟踪已经消费的消息位置。
2、Kafka核心组件
- Kafka Connect: Kafka Connect 是 Kafka 的一个组件,用于简化将数据从外部系统(例如数据库、文件系统等)导入和导出到 Kafka 的过程。它提供了许多预构建的连接器,可以轻松集成各种数据源和目标。
- Kafka Streams: Kafka Streams 是一个用于构建流处理应用程序的客户端库。它允许开发者创建高度可扩展、容错的流处理应用程序,以便实时处理和分析数据流。
- ZooKeeper: Kafka 使用 Apache ZooKeeper 进行分布式协调,管理集群的元数据,包括主题、分区、broker 等信息。
3、Kafka主要特性
- 高吞吐量: Kafka 可以处理大量的数据流,并且在低延迟下提供高吞吐量的消息传输。
- 可扩展性: 通过增加更多的 broker,可以轻松扩展 Kafka 集群的容量和性能。
- 持久性和容错性: Kafka 将数据持久化到磁盘,并通过复制机制实现高可用性,确保在硬件故障时数据不会丢失。
- 分区和并行处理: 通过将主题划分为多个分区,Kafka 支持高效的并行处理,从而提高数据处理的速度和效率。
4、Kafka使用场景
- 实时流数据管道: Kafka 通常用于构建实时数据管道,将数据从生产者传输到消费者。
- 数据集成: 使用 Kafka Connect,将不同数据源的数据集成到统一的 Kafka 平台。
- 实时分析和监控: 利用 Kafka Streams 或其他流处理框架,可以对实时数据进行分析和监控。
三、Hadoop生态系统概览
1、Hadoop核心组件
1. Hadoop 分布式文件系统 (HDFS):
- HDFS 是 Hadoop 的存储层,专为大规模数据存储而设计。
- 它将数据分成块(通常为 128 MB 或 256 MB),并在集群中的多个节点上进行复制和存储,以确保数据的高可用性和容错性。
- HDFS 的主从架构包括一个 NameNode(管理文件系统的元数据)和多个 DataNode(存储实际数据)。
2. MapReduce:
- MapReduce 是 Hadoop 的计算模型和处理引擎,用于大规模数据处理。
- 它将计算任务分成两个阶段:Map 阶段和 Reduce 阶段。Map 阶段处理输入数据并生成中间结果,Reduce 阶段汇总中间结果并生成最终输出。
- MapReduce 编程模型易于扩展,可以在数千个节点上并行处理数据。
3. Yet Another Resource Negotiator (YARN):
- YARN 是 Ha