Kafka基础理论理解,欲走大数据之路必铺石阶,行走的kafka!2018-08-14

大数据编程理解,实际上是件很困难的事,大数据需要掌握的技能太多了,get到的技能点也实际更多!

kafka作为一个大数据的必备内容,可以作为大数据的基本标志,下面我们将介绍如何学习大数据

简介

#概念:消息中间件(消息系统)

    //消息系统分类:

 点对点 消息队列(peer-to-peer)

替换高清大图

       






发布/订阅 消息队列

        








消费者在消费时,是通过pull 主动从broker中拉取数据的


#作用:缓存地带

#消息系统适用场景

解耦 各位系统之间通过消息系统这个统一的接口交换数据,无须了解彼此的存在

冗余 部分消息系统具有消息持久化能力,可规避消息处理前丢失的风险

扩展 消息系统是统一的数据接口,各系统可独立扩展

峰值处理能力 消息系统可顶住峰值流量,业务系统可根据处理能力从消息系统中获取并处理对应量的请求

可恢复性 系统中部分组件失效并不会影响整个系统,它恢复后仍然可从消息系统中获取并处理数据

异步通信 在不需要立即处理请求的场景下,可以将请求放入消息系统,合适的时候再处理

#架构














主要分为3部分

    生产者(producer),消费者(consumer),kafka(broker)外加一个zookeeper来储存源数据    

Broker 中可以包含多个topic ,topic 是一个逻辑存在的基本运行单元

topic 中可以包含多个partation, partition是真正存储数据的地方,类似于书架,一个partition是一个强有序的队列

partition是由segmend组成的

segmend由两部分组成

一部分是.log结尾的文件,作用存储kafka的数据

另一部分是.index结尾的文件,作用kafka存储数据的索引文件


#过程

生产者:对数据的生产可以使用同步生产也可以使用异步生产,将生产完成的数据 push到kafka中


kafka: kafka收到生产者生产的数据后,将数据保存到具体的partition中,将该批数据的元数据信息写到zookeeper上,

消费者:  当消费者要消费数据时,会先从zookeeper中获取数据偏移量以及元数据,获取之后,通过主动拉取的形式来消费数据。


#kafka数据生产的格式:

* (key,value)格式的数据:在对数据进行存储的时候,采用的存储策略是对key进行hashcode取模来进行具体分配到哪个partiton中进行存储

* string格式的数据:在对数据进行存储的时候,采用的策略是轮训策略。

如果以上的存储策略都不符合业务生产需求,可以自定义存储策略 需要集成Partitioner接口

目录结构

注意:演示的所有的命令行操作都在bin目录下进行

配置详解

要想启动,我们只需要修改kafka的配置文件就可以了

注意

1.外网地址尽量写ip,别写主机名,不然可能访问不到

2.本地地址如果写ip地址的话,启动producer,consumer 参数为本地ip

3.本地地址如果写localhost的话,启动producer,consumer参数为localhost

默认localhost

服务启动与查看


由于kafka服务以来与zookeeper所以需要先启动zookeeper

而zookeeper又需要java 来支持,所以需要大家自行准备jdk


命令

启动zookeeper服务./zookeeper-server-start.sh ../config/zookeeper.properties

启动kafka服务./kafka-server-start.sh ../config/server.properties

创建topic

./kafka-topics.sh --zookeeper localhost:2181 --create --topic test4 --partitions 3 --replication-factor 1

--zookeeperzookeepe连接地址:端口

--create 说明要创建

--topic topic名称    

--partitions partitions数量

启动生产者

./kafka-console-producer.sh --broker-list localhost:9092 --topic test3

由于生产者并不依赖于zookeeper,但是生产者需要知道写入数据到那个broker中的

又因为topic 是运行的基本单元,因此需要指定topic以及broker所在地址

启动消费者

./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test3

在生产者发送数据 可以看到消费者已经在消费

:觉得视频不错,如果你也想学习大数据即可关注私信我,赠送大数据基础学习!

你可能感兴趣的:(Kafka基础理论理解,欲走大数据之路必铺石阶,行走的kafka!2018-08-14)