02.DStream入门

02.DStream入门

[TOC]前言本篇将通过一个WordCount案例来作为DStream的入门。一、环境1.1 所需运行环境IP作用系统192.168.10.2(本机)运行案例代码接收服务端9999端口发送的信息windows192.168.10.7运行netcat监听9999端口Linux1.2 netcat工具介绍和安装介绍​ netcat简称nc,netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据,通过与其它工具结合和重定向,你可以在脚本中以多种方式使用它。基本功能telnet / 获取系统 banner 信息传输文本信息传输文件和目录加密传输文件端口扫描远程控制 / ...

大数据 2021-10-19 PM 6℃ 0条
01.SparkStreaming概述

01.SparkStreaming概述

[TOC]前言在介绍SparkStreaming之前需要先理解几个概念:流式计算流式计算的上游算子处理完一条数据后,会立马发送给下游算子,所以一条数据从进入流式系统到输出结果的时间间隔较短(当然有的流式系统为了保证吞吐,也会对数据做buffer)。批量计算批量计算按数据块来处理数据,每一个task接收一定大小的数据块,比如MR,map任务在处理完一个完整的数据块后(比如128M),然后将中间数据发送给reduce任务。批量计算往往得等任务全部跑完之后才能得到结果,而流式计算则可以实时获取最新的计算结果。实时计算输入数据是可以以序列化的方式一个个输入并进行处理的,也就是说在开始的时候并不需...

大数据 2021-10-18 AM 11℃ 0条
18.【终章】Kafka监控工具Eagle最新版安装

18.【终章】Kafka监控工具Eagle最新版安装

[TOC]前言Kafka监控系统在Kafka的监控系统中有很多优秀的开源监控系统。比如Kafka-manager,open-faclcon,zabbix等主流监控工具均可直接监控kafka。Kafka集群性能监控可以从消息网络传输,消息传输流量,请求次数等指标来衡量集群性能。这些指标数据可以通过访问kafka集群的JMX接口获取。JMX接口JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。很多的一些软件都提供了JMX接口,来实现一些管理、监控功...

大数据 2021-10-17 PM 12℃ 0条
17.Kafka自定义拦截器

17.Kafka自定义拦截器

[TOC]一、拦截器原理​ Producer 拦截器(interceptor)是在 Kafka 0.10 版本被引入的,主要用于实现clients端的定制化控制逻辑。​ 对于 producer 而言,interceptor 使得用户在消息发送前以及 producer 回调逻辑前有机会对消息做一些定制化需求,比如修改消息等。同时,producer 允许用户指定多个 interceptor 按序作用于同一条消息从而形成一个拦截链(interceptor chain)。二、拦截器实现Intercetpor 的实现接口是 org.apache.kafka.client...

大数据 2021-10-16 PM 13℃ 0条
16.Kafka消费者API

16.Kafka消费者API

[TOC]前言Consumer 消费数据时的可靠性是很容易保证的,因为数据在 Kafka 中是持久化的,故不用担心数据丢失问题。由于consumer在消费过程中可能会出现断电宕机等故障,consumer恢复后,需要从故障前的位置的继续消费,所以consumer需要实时记录自己消费到了哪个offset,以便故障恢复后继续消费。所以 offset 的维护是 Consumer 消费数据是必须考虑的问题。如果想了解更多Offset详情信息可参考文章:12.Kafka之offset介绍本次使用的Kafka版本是2.8.0导入依赖<dependency> <groupId&...

大数据 2021-10-15 PM 13℃ 0条
15.Kafka生产者API

15.Kafka生产者API

[TOC]前言本次运行的Kafka版本是2.8.0单机版;在运行之前先要检查防火墙是否关闭,或者是否开启9092端口查看防火墙状态命令firewall-cmd --state关闭防火墙命令systemctl stop firewalld.servicePS:别问我为什么要强调这一点。一、消息发送流程Kafka 的 Producer 发送消息采用的是异步发送的方式。在消息发送的过程中,涉及到了两个线程——main线程和 Sender线程,以及一个线程共享变量——RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 Re...

大数据 2021-10-14 AM 16℃ 0条
14.【转载】Kafka事务特性详解

14.【转载】Kafka事务特性详解

[TOC]前言Kafka在0.11版本中除了引入了Exactly Once语义,还引入了事务特性。Kafka事务特性是指一系列的生产者生产消息和消费者提交偏移量的操作在一个事务中,或者说是一个原子操作,生产消息和提交偏移量同时成功或者失败。一、Kafka事务的使用Kafka中的事务特性主要用于以下两种场景:生产者发送多条消息可以封装在一个事务中,形成一个原子操作。多条消息要么都发送成功,要么都发送失败。read-process-write模式:将消息消费和生产封装在一个事务中,形成一个原子操作。在一个流式处理的应用中,常常一个服务需要从上游接收消息,然后经过处理后送达到下游,这就对应着消...

大数据 2021-09-29 AM 45℃ 0条
13.Zookeeper在Kafka中的作用

13.Zookeeper在Kafka中的作用

[TOC]前言本篇针对的是2.8版本之前的Kafka,2.8版本及之后Kafka已经移除了对Zookeeper的依赖,通过KRaft进行自己的集群管理,不过目前只是测试阶段。一、概述Apache Kafka是一个使用Zookeeper构建的分布式系统。Zookeeper的主要作用是在集群中的不同节点之间建立协调;如果任何节点失败,我们还使用Zookeeper从先前提交的偏移量中恢复,因为它做周期性提交偏移量工作。partition的leader选举过程:说明从Zookeeper中读取当前分区的所有ISR(in-sync replicas)集合调用配置的分区选择算法选择分区的leader二...

大数据 2021-09-28 PM 55℃ 0条
12.Kafka之offset介绍

12.Kafka之offset介绍

[TOC]一、概述1.1 概念消费者消费完了消息是不会被立刻删除的,每个消费者把消费的数据消费到哪里了就需要做个记录,就是offset。1.2 版本Kafka 0.9版本之前,consumer默认将offset保存在Zookeeper中,从0.9版本开始,consumer默认将offset保存在Kafka一个内置的topic中,该topic为"__consumer_offsets" 。__consumer_offsets说明:这个topic下的消息格式为k-v结构,k-v分别代表消息的键值和消息体。 k-(Group ID,主题名,分区号) v-(位移值,ts,metadata)__co...

大数据 2021-09-27 PM 71℃ 0条
11. Kafka消费者分区分配策略

11. Kafka消费者分区分配策略

[TOC]前言在本节开始之前,可以先了解一下上一节内容Kafka重平衡机制。一、消费者分区分配策略作用一个consumer group 中有多个consumer,一个 topic 有多个partition,所以必然会涉及到partition 的分配问题,即确定哪个partition 由哪个consumer 来消费。 Kafka 有三种分配策略:RoundRobin(轮询)Range(范围)StickyAssignor同时Kafka也支持自定义分配策略。二、分区分配策略详解2.1 RangeAssignor(默认分配策略)概述范围分区策略:对每个Topic进行独立的分区分配。对于每一个To...

大数据 2021-09-26 PM 58℃ 0条