【博学谷学习记录】超强总结,用心分享 | 初识kafka
【博学谷IT技术支持】
由来
Spark 最早源于一篇论文Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing,
该论文是由加州大学柏克莱分校的 Matei Zaharia 等人发表的。论文中提出了一种弹性分布式数据集(即 RDD)的概念。
Spark 借鉴了 MapReduce 思想发展而来,保留了其分布式并行计算的优点并改进了其明显的缺陷。让中间数据存储在内存中提高了运行速度、并提供丰富的操作数据的API提高了开发速度。
时间线
- 2009年起源于加州伯克利分校
- 2010年Spark开源
- 2013年捐赠给Apache Foundation
- 2014年Spark成为Apache顶级项目
- 2016年2.0
- 2019年3.0
kafka的使用场景
数据传递工作,需要将数据从一端传递到另一端,不限与两端的程序,在实时领域,主要是用于流式数据处理工作
Spark的组成
Spark是由多个组件组成,主要有Spark Core,Spark SQL,Spark Streaming, Spark MLib, Spark GraphX
Spark Core: Spark的核心
主要维护RDD数据结构
提供RDD各种API
提供了与内存相关的API
Spark SQL: 通过SQL的方式来操作Spark
Spark Streaming:Spark 用于进行流式计算的组件
Spark MLib: Spark 用于进行机器学习的库
Spark GraphX: Spark用于进行图计算的库
kafka的特点
- 可靠性:分布式,分区,复制和容错等
- 可扩展性:kafka消息传递系统松放,无需停机
- 耐用性: kafka使用分布式提交日志,消息持久保存在磁盘上
- 性能:kafka对于发布和订阅消息都具有高吞吐量,即使存储了很多TB的消息,也非常稳定,保证零停机和零数据丢失
Kafka的架构
- kafka Cluster: kafka集群
- broker: kafka的节点
- producer: 生产者
- consumer: 消费者
- Topic: 主题/话题 理解就是一个大的逻辑容器(管道)
- shard: 分片,分片数据与节点数据没有关系,一个topic可以分为N个分片
- replicas: 副本,可以对一个分片构建多个副本,副本数据量最多和节点数据一致
- zookeeper: 存储管理集群的元数据信息
kafka启动
- 启动zookeeper集群
- 启动kafka集群
- 单节点: 每个节点都需要执行
cd /export/server/kafka_2.12-2.4.1/bin
前台启动:
./kafka-server-start.sh ../config/server.properties
后台启动:
nohup ./kafka-server-start.sh ../config/server.properties 2>&1 &
临时数据存储容器需要具备什么特性呢?
- FIFO(先进先出)
- 支持重复读取,支持容错
- 具备高效读取
什么是消息队列
- 同步转异步
- 应用解耦合
- 流量削峰
- 消息驱动系统
消息队列的两种消费模式
- 点对点:一个数据只能被一个消费方来消费数据
- 发布订阅模式: 可以被多个消费方同事接收到