flume | kafka | storm | flink
文章平均质量分 50
大数据处理相关的知识点总结
请叫我大师兄_
请叫我大师兄
展开
-
Could not initialize class org.elasticsearch.common.xcontent.json.JsonXContent
我这儿的问题是flume的lib下有jackson的2.3的版本,但是,我代码引用的版本是2.8的版本,启动之后,jar包冲突了,所以,就报类型不存在,classnotdefexception之类的。问题的原因是jar包版本冲突。这个是在jackson的2.4版本的包里面才有。2.3之前的版本是没有得。遇到类找不到,但是,项目里面确实有这个东西的时候,就的考虑是不是项目的包和其他地方有冲突,导致的问题。这个存在2.4及以上才出现的,所以,实际运行的项目中jackson的jar冲突了。原创 2022-08-22 17:54:37 · 2084 阅读 · 0 评论 -
kafka_2.12-3.2.0安装包快速下载地址分享
kafka_2.12-3.2.0安装包快速下载地址分享,新需求是kafka版本升级,然后确定版本之后,在kafka的官网上,选择了版本之后,就开始下载,但是呢,速度是贼慢哦。得原创 2022-08-02 18:02:35 · 2911 阅读 · 0 评论 -
Unable to start SinkRunner: { policy:org.apache.flume
flume启动报错:Unable to start SinkRunner: { policy:org.apache.flume原创 2022-08-02 10:42:09 · 979 阅读 · 0 评论 -
flume ChannelFullException:Space for commit to queue couldn‘t be acquired
flume使用MemoryChannel ChannelFullException 报错:Space for commit to queue couldn't be acquired. Sinks are likely not keeping up with sources, or the buffer size is too tightFlume中Memory Channel参数说明。原创 2022-06-14 15:37:09 · 1467 阅读 · 1 评论 -
kafka rebalance 总结说明图
用kafka的第一件事儿就得了解kafka的重平衡,即kafka的rebalance,这个很重要,不然这个kafka就会使不好的,出问题了,就理解不了,得了解一下什么是rebalance,能干啥,为啥要rebalance,rebalance的缺点和影响。原创 2021-11-04 10:11:01 · 1751 阅读 · 0 评论 -
初识Flink 原理介绍、发展由来。
Apache Flink是什么?在当代数据量激增的时代,各种业务场景都有大量的业务数据产生,对于这些不断产生的数据应该如何进行有效的处理,成为当下大多数公司所面临的问题。随着雅虎对hadoop的开源,越来越多的大数据处理技术开始涌入人们的视线,例如目前比较流行的大数据处理引擎Apache Spark,基本上已经取代了MapReduce成为当前大数据处理的标准。但是随着数据的不断增长,新技术的不断发展,人们逐渐意识到对实时数据处理的重要性。相对于传统的数据处理模式,流式数据处理有着更高的处理效率和成本控制原创 2021-04-15 17:40:51 · 758 阅读 · 0 评论 -
Flink java.lang.NoClassDefFoundError: org/apache/flink/api/common/functions/FlatMapFunction
初学flink,本地测试的时候,报错的解决方法:java.lang.NoClassDefFoundError: org/apache/flink/api/common/functions/FlatMapFunction原创 2021-03-18 10:04:20 · 1852 阅读 · 1 评论 -
linux查看kafka版本号
1,进到kafka的安装目录2,执行下列语句:find ./libs/ -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*'kafka_2.12-1.0.0-javadoc.jar.asc就可以看到kafka的具体版本了。其中,2.12为scala版本,1.0.0为kafka版本。原创 2021-03-15 15:13:33 · 17206 阅读 · 0 评论 -
kafka streams 实时流式计算原理分析和总结
一、Kafka Stream背景1. Kafka Stream是什么Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature。它是提供了对存储于Kafka内的数据进行流式处理和分析的功能。Kafka Stream的特点如下:Kafka Stream提供了一个非常简单而轻量的Library,它可以非常方便地嵌入任意Java应用中,也可以任意方式打包和部署 除了Kafka外,无任何外部依赖 充分利用Kafka分区机制实现水平扩展和顺序性保证 通过可容错的s原创 2021-03-11 10:10:40 · 4338 阅读 · 3 评论 -
Flume 原理解析
flume:水道;笕槽;引水槽,source:水源,channel:水渠,sink:水槽一、Flume简介Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。重构后的版本统称为 Flume NG(next generation);Flume 纳入 apache 旗下,改名为 Apache Flume。二、Flume特点flume是原创 2020-12-04 17:43:02 · 868 阅读 · 0 评论 -
flume ChannelSelector -- channel 选择器
首先是flume中三个组件的单词的意思,flume:水道;笕槽;引水槽,source:水源,channel:水渠,sink:水槽。见文知意,就是水从源头流出来,经过水渠或者管道,最终流到终点,也就是水槽了。之前总是flume的叫着,也不知道是啥意思,今天查了一下,再看其他几个组件的意思,这个工具的功能不言而喻了,就是针对像水一样的数据流处理的。flume channel selectors允许给一个source可以配置多个channel的能力。这种模式有两种方式,一种是用来复制(Replication),原创 2020-12-04 15:03:51 · 2705 阅读 · 0 评论 -
flume 1.6 发数据到kafka的kafka sink的配置
数据经过flume发送到kafka的配置,flume版本是1.6的时候的配置例子agent.sources = s1agent.channels = c1agent.sinks = k1agent.sources.s1.type = spooldiragent.sources.s1.channels = c1agent.sources.s1.spoolDir = /root/data/ttmagent.sources.s1.selector.type = com.x.y.collecto原创 2020-12-01 09:45:59 · 1511 阅读 · 1 评论 -
Java storm中,在bolt之间传递自定义对象数据的时候,自定义model需要实现序列化接口才行。
Java strom在 bolt spout之间传递信息的时候,当传递一些简单的数据结构,比如字符串,map等是可以在下一个bolt里面get 之后,直接转成map的,但是要是传个对象的话,在下一个bolt使用,在emit的时候,new Values(自定义对象)RepeatEvent repeatEvent = (RepeatEvent) input.getValueByField(CustomConstants.REPEAT_EVENT);理论上是可以的,但是有个前提,你这个对象要实现序列号接原创 2020-11-30 16:00:06 · 577 阅读 · 0 评论 -
Java client 写 Kafka 失败的处理,client和server都得把配置参数优化一下
1,java.util.concurrent.ExecutionException:org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for topic-partion: 3000 ms has passed since batch creation plus linger time2,java.util.concurrent.ExecutionException:org.apache.kafka.common.er原创 2020-09-28 14:05:31 · 2833 阅读 · 0 评论 -
kafka server/broker 服务端的参数配置说明
一、Kafka概述关于Kafka,我们在之前的文章里也介绍,简而言之Kafka是一个分布式消息引擎与流处理平台,经常用做企业的消息总线、实时数据管道,有时还可以当做存储系统来用。Kafka的设计遵循生产者消费者模式,其中生产者和消费者都属于客户端,服务端则是由多个broker实例组成,broker主要负责接收和处理来自客户端的请求,以及对消息进行持久化。基本架构如下:二、broker端核心参数1. broker.id参数说明:broker的唯一标识id,默认值为-1,如果不指定Kafka原创 2020-09-28 10:05:11 · 4069 阅读 · 1 评论 -
Java kafka producer 的常用参数的意义说明及默认值
生产端核心参数1. acks参数说明:这是一个非常重要的参数,表示指定分区中成功写入消息的副本数量,这是Kafka生产端消息的持久性(durability)保证。只有当leader确认已成功写入消息的副本数后,才会给Producer发送响应,此时消息才可以认为“已提交”。该参数影响着消息的可靠性以及生产端的吞吐量,并且两者往往相向而驰,通常消息可靠性越高则生产端的吞吐量越低,反之亦然。acks有3个取值: acks = 0:表示生产端发送消息后立即返回,不等待broker端的响应结果。通常此时原创 2020-09-26 22:25:53 · 5232 阅读 · 0 评论 -
Java Kafka producer 同、异步发送数据,原理分析和差别:producer.send()和producer.send().get()
一般发送数据到Kafka,就是new一个producer,然后简单到send就好了,就可以在kafka里面看到数据了,可以使用命令行的消费模式,但是你在写测试代码的时候,想看看数据是否真的写到kafka服务器了的时候,就发现,额,好像数据没发送到kafka服务器上似的,代码也看似没问题哦。生产端ProducerRecord经过序列化器、分区器处理后,并不是直接发往broker端,而是发送到客户端的消息缓冲池(Accumulator) 中,最后交由Sender线程发往broker端。原创 2020-09-26 14:22:56 · 4885 阅读 · 0 评论 -
分布式系统中的CAP理论
一、什么是分布式系统拿一个最简单的例子,就比如说我们的图书管理系统。之前的系统包含了所有的功能,比如用户注册登录、管理员功能、图书借阅管理等。这叫做集中式系统。也就是一个人干了好几件事。后来随着功能的增多,用户量也越来越大。集中式系统维护太麻烦,拓展性也不好。于是就考虑着把这些功能分开。通俗的理解就是原本需要一个人干的事,现在分给n个人干,各自干各自的,最终取得和一个人干的效果一样。稍微正规一点的定义就是:一个业务分拆多个子业务,部署在不同的服务器上。 然后通过一定的通信协议,能够让这些子业务之原创 2020-09-18 17:57:05 · 5800 阅读 · 0 评论 -
Zookeeper高频面试题36问(附答案)
1.CAP理论?C : Consistency 一致性,数据在多个副本之间似否能够保持一致的特性。 A: Availability 可用性,系统服务必须一直处于可用状态,对每个请求总是在指定的时间返回结果。 P:Partition tolerance 分区容错性,遇到分区网络故障时,仍能对外提供一致性和可用性的服务。 不能同时满足3个要求,只能满足其中的两个。 2.BASE理论?Basically Available(基本可用)、Soft state(软状态) 和 Eventuanl原创 2020-09-17 13:43:52 · 2802 阅读 · 0 评论 -
Zookeeper(动物园管理员)为什么需要他?分布式协调系统
需求推动事物的前进,所有相关技术都是在某些需求的驱动下才孕育而出,而且不断的为了满足需求,不得不进一步加强完善,上来就说zookeeper是啥,作用是啥,干了什么,是开源的分布式应用协调系统”blabla,到底什么是分布式协调,为什么分布式就需要协调。不懂,也不见得好理解、好记忆,还是从需求分析来了解他的由来和作用,了解这个过程,在自己后期设计实现产品的时候,也会想的多一点。为什么需要 Zookeeper举个例子,来说明说明需求驱动技术不断升级完善加强。一个团队里面,需要一个leader,lead原创 2020-09-17 11:33:30 · 866 阅读 · 0 评论 -
Java kafka监控 topic的数据量count情况,每个topic的Summed Recent Offsets(总结最近的偏移量)
Java使用kafka的API来监控kafka的某些topic的数据量增量,offset,定时查总量之后,然后计算差值,然后就可以算单位间隔的每个topic的增量,kafka监控一般都是监控的吞吐量,即数据量的大小,而不在意这个count,数量。额,这个就是在意count。统计一下count。总结最近的偏移量---Summed Recent Offsets.使用的卡夫卡版本的截图。原创 2020-09-16 22:16:28 · 6322 阅读 · 3 评论 -
Java Storm Hello World 入门起手例子
1,Storm程序再Storm集群中运行的示例图如下:2,Storm的几个核心概念名词Nimbus:即Storm的Master,负责资源分配和任务调度。一个Storm集群只有一个Nimbus。 Supervisor:即Storm的Slave,负责接收Nimbus分配的任务,管理所有Worker,一个Supervisor节点中包含多个Worker进程。 Worker:工作进程,每个工作进程中都有多个Task。 Task:任务,在 Storm 集群中每个 Spout 和 Bolt 都由若干个任原创 2020-09-14 17:38:13 · 528 阅读 · 0 评论 -
java kafka 生产者和消费者的代码实例
生产者import com.google.common.collect.Lists;import org.apache.kafka.clients.producer.KafkaProducer;import org.apache.kafka.clients.producer.ProducerRecord;import org.junit.Test;import java.util.List;import java.util.Properties;import static org.a原创 2020-07-26 17:35:28 · 2370 阅读 · 0 评论 -
Kafka消费者-从Kafka读取数据
(1)Customer和Customer Group(1)两种常用的消息模型队列模型(queuing)和发布-订阅模型(publish-subscribe)。队列的处理方式是一组消费者从服务器读取消息,一条消息只由其中的一个消费者来处理。发布-订阅模型中,消息被广播给所有的消费者,接收到消息的消费者都可以处理此消息。(2)Kafka的消费者和消费者组Kafka为这两种模型提供了单一的消费者抽象模型:消费者组 (consumer group)。 消费者用一个消费者组名标记自己。 一个.转载 2020-07-26 17:24:55 · 3599 阅读 · 1 评论 -
Java kafka producer 发送数据
(1)生产者概览(1)不同的应用场景对消息有不同的需求,即是否允许消息丢失、重复、延迟以及吞吐量的要求。不同场景对Kafka生产者的API使用和配置会有直接的影响。例子1:信用卡事务处理系统,不允许消息的重复和丢失,延迟最大500ms,对吞吐量要求较高。例子2:保存网站的点击信息,允许少量的消息丢失和重复,延迟可以稍高(用户点击链接可以马上加载出页面即可),吞吐量取决于用户使用网站的频度。(2)Kafka发送消息的主要步骤消息格式:每个消息是一个ProducerRecord对象,必须指定转载 2020-07-26 17:16:29 · 4265 阅读 · 0 评论 -
通俗易懂的Kafka入门
众所周知,消息队列的产品有好几种,这里我选择学习Kafka的原因,无他,公司在用。我司使用的是Kafka和自研的消息队列(Kafka和RocketMQ)改版,于是我就想学学Kafka这款消息队列啦。本篇文章对Kafka入门,希望对大家有所帮助。这篇文章花了我很长时间画图,目的是希望以最通俗易懂的方式带大家入门,如果觉得不错,希望能给我点个赞!一、什么是Kafka?首先我们得...转载 2020-01-15 16:47:34 · 715 阅读 · 1 评论 -
什么是ZooKeeper?
上次写了一篇什么是消息队列?以后,本来想入门一下Kafka的(装一下环境、看看Kafka一些概念啥的)。后来发现Kafka用到了ZooKeeper,而我又对ZooKeeper不了解,所以想先来学学什么是ZooKeeper,再去看看什么是Kafka。ZooKeeper相信大家已经听过这个词了,不知道大家对他了解多少呢?我第一次听到ZooKeeper的时候是在学Eureka的时候(外行人都能看懂...转载 2020-01-15 16:34:45 · 612 阅读 · 1 评论 -
什么是消息队列(what MQ) why:解耦、异步、削峰、限流;MQ的问题
一、什么是消息队列?消息队列不知道大家看到这个词的时候,会不会觉得它是一个比较高端的技术,反正我是觉得它好像是挺牛逼的。消息队列,一般我们会简称它为MQ(MessageQueue),嗯,就是很直白的简写。我们先不管消息(Message)这个词,来看看队列(Queue)。这一看,队列大家应该都熟悉吧。队列是一种先进先出的数据结构。在Java里边,已经实现了不少的队列...转载 2020-01-15 16:13:07 · 1641 阅读 · 5 评论 -
flume报java.io.IOException: Not a data file的ERROR
opening file 的文件明明是一个数据文件,非要说不是数据文件。结果在package org.apache.avro.file中的 DataFileStream 类的initialize(InputStreamin)方法中发现了异常的出处,代码如下:void initialize(InputStream in) throws IOException { this...原创 2020-03-24 10:54:29 · 1013 阅读 · 1 评论