尚硅谷大数据技术之Kafka.pdf

所需积分/C币:48 2019-09-22 22:42:13 1.51MB PDF
155
收藏 收藏
举报

kafka安装及使用文档。。包含kafka、kafka-eagle
心硅容 尚硅谷大数据技术之 Kafka Consumer subscribe Consumer Topic subscribe producerhpublish SUBscribe consumer subscribe consumer SUbsCr Consumer 13Kaka基础架构 架构 心硅谷 Kaka集群管理消息 消费者消费消息 Kafka Cluster Imessage 生产者生产消息 Topic A Topic A Zookeeper Partition d Consumer A 注册消息 message to A-0 Lead Follower Producer a ReplidationA/o Replication/1 Consumer group Zookeeper message to A-1 I Broker 2 message I Topic A Topic A tConsumer Partition o Partition 1 Broker 3 9版本之前 offset message to B-0 from b o Producer B message essage1 Consumer C 0.9版本及之后ctet 存储本炮 让天下角难学的技太 1) Producer:消息生产者,就是向 kafka broker发消息的客户端; 2) Consumer;消息消费者,向 kafka broker取消息的客户端 3) Consumer Group(cG):消费者组,由多个 consumer组成。消费者组内每个消费者负 责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所 有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。 4) Broker:一台 kafka服务器就是一个 broker。一个集群由多个 broker组成。一个 broker 可以容纳多个 topIc。 5) Topic:可以理解为一个队列,生产者和消费者面向的都是一个 topIc; 6) Partition:为了实现扩展性,一个非常大的 topIc可以分布到多个 broker(即服务器)上, 一个 topic可以分为多个 partition,每个 partition是一个有序的队列 7) Replica:副本,为保证集群中的某个节点发生故障时,该节点上的 partition数据不丢失, 更多Java-大数据-前端- python人工智能资料下载,可百度访问:尚硅谷官网 心硅容 尚硅谷大数据技术之 Kafka 且 kafka仍然能够继续⊥作,kaka提供了副本机制,个 topIc的每个分区都有若干个副本 一个 leader和若干个 follower 8) leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对 象都是 leader 9) follower:每个分区多个副本中的“从”,实时从 leader中同步数据,保持和 leader数据 的同步。 leader发生故障时,某个 follower公成为新的 follower 第章 快速入门 21安装部署 211集群规划 hadoop 102 hadoop hadoop 104 zk ak zk kafka kafka kafka 212jar包下载 http://kafka.apacheorg/downloads.html d Apache Kafka ←日① katka. apache. org/ downloads. htm kaFka HOM Download IN I ROLUCIION QUICKSTART 0. 11.0.0 is the latest release. The current stable version is 0.11.C0 USE CASES You ea I verily you download by ful uwing these procedures and usiry hese KEYS DOCUMENTATION 0.11.0.0 PER-ORMANCE Released Jure 28, POWFRFD BY Source dewn oad: karka-U.11. 0.U-arc tgz (aso, mdb Bir rary downloads PROJECT INFO Scala 2.11-kafka_2. 11-0.11.0.0.tgz(33c, md) 213集群部署 1)解压安装包 [atguiguahadoop102 software]s tar -zxvf kafka 2. 11-0.11.0.0. tgz /cpt/mcdule/ 更多Java-大数据-前端- python人工智能资料下载,可百度访问:尚硅谷官网 心硅容 尚硅谷大数据技术之 Kafka 2)修改解压后的文件名称 [atguigu ahadoop102 module]s mv kafka 2.11-0.11.0.0/ kafka 3)在/opt/ module/kafka目录下创建logs文件夹 Tatguiguahadoop102 kafka]s mkdir Icgs 4)修改配置文件 [atguiguahadoop102 kafka]s cd config/ [atguigughadoop102 config]s vi server propertics 输入以下内容 # croker的全局唯一编号,不能重复 broker.id=0 井朋除 topiC功能使能 delete topic. enable=true 处理网络请求的线程数量 num network. threads=3 #用来处理磁盘Io的现成数量 numio. threads-8 发送套接字的缓冲区大小 socket send buffer bytes=1024C0 #接收套接字的缓冲区大小 socket receive buffer bytes=102 400 #请求套接字的缓冲区大小 socket request. max. bytcs-104857600 # kafka运行日志存放的路径 log.dirs-/opt/module/kafka/lcgs tOOlc在当前 broker上的分区个数 num partitions=1 用来恢复和清理data下数据的线程数量 num recovery. threads perdata. dir=l 井 segment文件保留的最长时间,超时将被删除 log. retention. hours-168 配置连接 oo keeper集群地址 zookeeper. connect-hadoop102: 2181, hadoop103: 2181, hadcop104: 2181 5)配置环境变量 [atquigughadoop102 module]s sudo vi /etc/profile KAFKA HOME export KAFKA HOME-/opt/module/kafka export pATH=$PATH: SKAFKA HOME/bin [atguiguahadoop102 module]s source /etc/profile 6)分发安装包 [atquiguahadoop102 module]s xsync kafka/ 注意:分发之后记得配置其他机器的环境变量 7)分别在 hadoop103和 hadoop104上修改配置文件/ opt/module/kafka,/ config/ server properties 中的 broker:id=1、 broker id=2 注: broker. id不得重复 更多Java-大数据-前端- python人工智能资料下载,可百度访问:尚硅谷官网 心硅容 尚硅谷大数据技术之 Kafka 8)启动集群 依次在 hadoop102、 hadoop103、 hadoop104节点上启动kaka [atquigughadoop102 kaika]s bin/kaika-server-start sh daemon config/server properties [atguiguahadoop103 kafka]s bin/ kafka-server-start sh daemon config/server properties [atguiguahadoop104 kafka]s bin/kafka-server-start sh -daemon config/server properties 9)关闭集群 [atguigu ghadoop102 kafka]s bin/kafka-server-stop sh stop latguigu dhadoop103 kafka]s bin/kafka-server-stop sh stop [atquiqughadoopl04 kafka]s bin/kafka-server-stop, sh stop 10) kafka群起本 for i in hadoop102 hadoop103 hadoop 4 C echo si 二 ssh $i /opt/module/kafka/bin/kafka-scrver-start sh -daemon oo opt/module/kafka/config/server properties r 22 Kafka命令行操作 1)查看当前服务器中的所有 topIc Latgui gu ghadoop102 kafka]s bin/kafka-topics sh -zoo keeper hadoop1C2: 2181 --list 2)创建 topIc [atguigughadoop102 kafka]s bin/kaika-topics sh zookeeper hadoop102: 2181 --create --replication-factor 3 --partitions 1 topic first 选项说明: pic定义 topIC名 - replication-factor定义副本数 partitions定义分区数 3)删除 topic agui gu dhadoop102 kafka]s bin/kafka-topics sh zookeeper hadoop102: 2181 --delete --topic first 需要 server; properties中设置 delete. topic. enable=true否则只是标记删除。 4)发送消息 [atguiguahadoop102 kafkals bin/kafka-console-producer sh --broker list hadoop102: 9092 --topic first >hello world >atguiguatguigu 5)消费消息 [atguigu ghadoop102 kafka]s bin/kaEka-console-consumer sh --zookeeper hadoop102: 2181 --topic first 更多Java-大数据-前端- python人工智能资料下载,可百度访问:尚硅谷官网 心硅容 尚硅谷大数据技术之 Kafka Latquigu ghadoop102 kafka]s bin/kafka-console-consumer sh bootstrap-server hadoop102: 9092 --topic first [atguigu ahadoop102 kafka]s bin/kafka-console-consumer sh -bootstrap-server hadoop 102: 9092 from-pcginning topic first -from- beginning:会把主题中以往所有的数据都读取出来。 6)查看某个 Topic的详情 [atguiguahadoop102 kafka]s bin/kafka-topicssh -zoo keeper hadoop102: 2181 --describe --topic first 7)修改分区数 [atquigughadoop102 kafka]s bin/kafka-topics sh zookeeper hadoop102: 2181 --alter --topic first --partitions 6 第章 架构深入 31Kaka工作流程及文件存储机制 工作流程 ■■■■■ V■■凵凵凵 ■■■■■ ■■■■■ 难的太 Kaka中消息是以 topic进行分类的,生产者生产消息,消费者消费消息,都是面向 topIc 的 TopIc是逻辑上的概念,而 partition是物理上的概念,每个 partition对应于一个log文 件,该log文件中存储的就是 producer生产的数据。 Producer生产的数据会被不断追加到该 log文件末端,且每条数据都有自己的oiet消费者组中的每个消费者,都会实时记录自己 消费到了哪个 offset,以便出错恢复时,从上次的位置继续消费。 更多Java-大数据-前端- python人工智能资料下载,可百度访问:尚硅谷官网 心硅容 尚硅谷大数据技术之 Kafka 文件存储机制 問硅谷 一个分为多个 分为多个 文件 文件 对应两个文件 让天下没难的技太 由于生产者生产的消息会不断追加到log文件末尾,为防止log文件过大寻致数据定位 效率低下, Kafka.取了分片和索引机制,将每个 partition分为多个 segment。每个 segment 对应两个文件—“ index”文件和“log”文件。这些文件位于一个文件夹下,该文件夹的命名 规则为: topic名称+分区序号。例如,frst这个 topic有三个分区,则其对应的文件夹为frst 0. first- 1first-2。 0000C00C00C00C00C00C. index 0000c00c00c00c00C00c.1cg 0000C00C00C00C17C41.index 0000c00c00c00c17c41C.1cg 0000c00000c000239430.inde 0000C00C00c00c23943C.1g index和log文件以当前 segment的第条消息的 offset命名。下图为 index文件和log 文件的结构示意图 文件和文件详解 也問硅容 如何找到 的 更多Java-大数据-前端- python人工智能资料下载,可百度访问:尚硅谷官网 心硅容 尚硅谷大数据技术之 Kafka “ index”文件存储大量的索引信息,“,log”文件存储大量的数据,索引文件中的元 数据指向对应数据文件中 message的物理偏移地址。 32Kaka生产者 32.1分区策略 1)分区的原因 (1)方便在集群中扩展,每个 Partition可以通过调整以适应它所在的机器,而一个 topic 又可以有多个 Partition组成,因此整个集群就可以适应任意大小的数据了 (2)可以提高并发,因为可以以 Partition为单位读写了。 2)分区的原则 我们需要将 producer发送的数据封装成一个 Producer record对象。 ProducerRecord(@NotNull String topic, Integer partition, Long timestamp, String key, Str ng value, @Nullable Iterable Heacer' headers ProducerRecord(@NotNull String topic, Integer Fartiticn, Long timestamp, String key, Stri ng value) ProduccrRccord(@NotNull String topic, Intcgcr partition, String kcy, String valuc, @Nullable ltcrab c<Header- headers) ProducerRecord(@NotNull String topic, Integer partition, String key, String value Pruducet ReLotd(@NotNull String topic, SL: ing k-y, Slriny value) ProducerRecord(@NotNull String topic, String va ue (1)指明 partition的情况下,直接将指明的值直接作为 partion值; (2)没有指明 partition值但有key的情况下,将key的hash值与 topic的 partition 数进行取余得到 partition值; (3)既没有 partition值又没有key值的情况下,第一次调用时随机生成一个整数(后 面每次调用在这个整数上自增),将这个值与 topic可用的 partition总数取余得到 partition 值,也就是常说的 round- robin算法 322数据可靠性保证 为保证 producer发送的数据,能可靠的发送到指定的 topic, topic的每个 partition收到 producer发送的数据后,都需要向 producer发送ack( acknowledgement确认收到),如果 producer收到ack,就会进行下一轮的发送,否则重新发送数据。 更多Java-大数据-前端- python人工智能资料下载,可百度访问:尚硅谷官网 心硅容 尚硅谷大数据技术之 Kafka 何时发送? 确保有 与同步完成 再发送这样才能保证 继续发送 挂掉之后,能在 中选举出新的 发送消息 发送消 多少个 同步完成之后发送? 确到 现有方案 半数以上的 同步完成,即可 发送 重新发送 全部的 同步完成,才可以发 送 让天不没角难的技人 1)副本数据同步策略 方案 优点 缺点 半数以上完成同步,就发延迟低 选举新的 leader时,容悉n台 送ack 节点的故障,需要2n+1个副 本 全部完成同步,才发送选举新的adr时,容忍n台延迟高 节点的故障,需要n+1个副 Kaka选择了第二种方案,原因如卜: 1.同样为了容忍n台节点的故障,第一种方案需要2n+1个副木,而第二种方案只需要n+1 个副本,而 Kafka的每个分区都有大量的数据,第一和方案会造成大量数据的冗余。 2虽然第二种方案的网络延迟会比较高,但网络延迟对 Kafka的影响较小。 2) ISR 米用第二种方案之后,设想以下情景: leader收到数据,所有 follower都开始同步数据, 但有一个 follower,因为某和故障,迟迟不能与 Icadcr进行同步,那 leader就要一直等下去, 直到它完成同步,才能发送ack。这个问题怎么解决呢? Leader维护了一个动态的in- sync replica set(ISR),意为和 leader保持同步的 follower集 合。当ISR中的 follower完成数据的同步之后, leader就会给 follower发送ack。如果 follower 长时间未向 leader同步数据,则该 follower将被踢出ISR,该时间阈值由 更多Java-大数据-前端- python人工智能资料下载,可百度访问:尚硅谷官网

...展开详情
试读 36P 尚硅谷大数据技术之Kafka.pdf
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 分享小兵

关注 私信
上传资源赚钱or赚积分
最新推荐
尚硅谷大数据技术之Kafka.pdf 48积分/C币 立即下载
1/36
尚硅谷大数据技术之Kafka.pdf第1页
尚硅谷大数据技术之Kafka.pdf第2页
尚硅谷大数据技术之Kafka.pdf第3页
尚硅谷大数据技术之Kafka.pdf第4页
尚硅谷大数据技术之Kafka.pdf第5页
尚硅谷大数据技术之Kafka.pdf第6页
尚硅谷大数据技术之Kafka.pdf第7页
尚硅谷大数据技术之Kafka.pdf第8页

试读结束, 可继续读3页

48积分/C币 立即下载