kafka、hive、mysql、redis、hbase架构笔记

  • kafka
  • 介绍
  • 设计
  • 特点
  • 主题和日志
  • 生产者
  • 消费者
  • 名词
  • hive
  • 架构
  • 运行机制
  • mysql
  • mysql逻辑架构
  • redis
  • 概念
  • 持久化
  • 架构
  • hbase
  • 架构


kafka

介绍

kafka是一个分布式流平台。

设计

①可跨越多个数据中心作为集群运行
②将记录流存储在topic中
③每个记录由一个键、一个值、一个时间戳组成

特点

①允许应用程序发布的记录流到多个topic

②应用程序可订阅多个topic,并处理他们

③应用程序可充当流处理器,消费数据并生产数据到topic

④生产者、消费者可重复使用

⑤管理和检查topic

hive 到kafka 用什么工具 kafka和hive_kafka

主题和日志

①每个topic可以有0、1、n个消费者去消费他

②topic的每个分区都是一个有序的队列,这些记录连续的附加到日志中

③可配置记录保存时间,在超过期限后,记录则被丢弃,不管他有没有被消费

④消费者保留的唯一元数据是他在日志中的偏移量(位置),可设置消费最新、从头开始、从现在开始

hive 到kafka 用什么工具 kafka和hive_redis_02


hive 到kafka 用什么工具 kafka和hive_redis_03

生产者

将数据发布到他们选择的主题,并将记录指配给topic的某个分区。指定方式:①简单的循环方式 ②根据某些语义某些键

消费者

①消费者组是逻辑上的一个订阅者

hive 到kafka 用什么工具 kafka和hive_数据_04

名词

①Producer :消息生产者,就是向kafka broker发消息的客户端;
②Consumer :消息消费者,向kafka broker取消息的客户端;
③Consumer Group (CG):消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
④Broker :一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
⑤Topic :可以理解为一个队列,生产者和消费者面向的都是一个topic;
⑥Partition:为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列;
⑦Replica:副本,为保证集群中的某个节点发生故障时,该节点上的partition数据不丢失,且kafka仍然能够继续工作,kafka提供了副本机制,一个topic的每个分区都有若干个副本,一个leader和若干个follower。
⑧leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是leader。
⑨follower:每个分区多个副本中的“从”,实时从leader中同步数据,保持和leader数据的同步。leader发生故障时,某个follower会成为新的leader。


hive

架构

hive 到kafka 用什么工具 kafka和hive_hive 到kafka 用什么工具_05

运行机制

hive 到kafka 用什么工具 kafka和hive_kafka_06

mysql

mysql逻辑架构

hive 到kafka 用什么工具 kafka和hive_数据_07

redis

概念

非关系型键值对数据库,遵循BSD协议、支持网络、可基于内存、可持久化的日志型、键值对的数据库。

持久化

把数据从内存写到磁盘中,防止内存数据丢失
方式
①RDB:写入磁盘中的RDB文件(默认方式)。性能更好
②AOF:只追加到磁盘中的AOF文件。更安全
存储结构遵循RESP协议:是一种客户端和服务端之间的通讯协议,特点是①实现简单 ②快速解析 ③可读性好

架构

单机版:使用简单,容量有限,无法高可用

hive 到kafka 用什么工具 kafka和hive_redis_08

主从复制(伪分布):在一台服务器创建多个redis节点,降低了读压力,但没有解决写压力,不能保证高可用

hive 到kafka 用什么工具 kafka和hive_hive 到kafka 用什么工具_09


哨兵:sentinels是一个分布式监控redis主从服务器的系统。具有监控、提醒、故障自动转移功能。但没有解决master的写压力

hive 到kafka 用什么工具 kafka和hive_redis_10


集群(proxy型):在client和Master间有防火墙,故障转移方案需要自行配置

集群(直连型):无中心结构,redis服务器间彼此连接和复制

hbase

架构

hive 到kafka 用什么工具 kafka和hive_hive 到kafka 用什么工具_11