- 博客(48)
- 收藏
- 关注
原创 Flink容错机制
检查点的目标是确保在发生故障时,系统能够回滚到最近的一个一致状态,并从该状态继续处理数据,从而避免数据丢失或重复。此外,根据所使用的 Flink 版本和配置,可能还需要考虑其他因素,例如状态的大小、检查点的开销以及任务恢复的时间等。在分布式流处理系统中,容错机制是至关重要的,因为它能确保在故障发生时,系统能够迅速恢复并继续处理数据,从而保持数据的一致性和完整性。Apache Flink 的容错机制,特别是检查点和状态恢复,是在内部自动管理的,通常不需要用户显式编写代码来触发或管理这些过程。
2024-04-02 10:17:28
1383
1
原创 Hbase
执行命令 source /etc/profile,使刚刚的配置生效。--将 hbase 设置为分布式部署 -->--指定 zookeeper 服务器 -->--指定 hbase 根路径 -->-- 避免出现启动错误 -->配置 hbase-site.xml 文件。修改 regionservers 文件。修改 hbase-env.sh 文件。切换到hbase的conf目录下。配置HBase相关文件。添加完成后保存并退出。
2024-04-02 10:07:40
519
原创 flink on yarn
Apache Flink,作为大数据处理领域的璀璨明星,以其独特的流处理和批处理一体化模型,成为众多企业和开发者的首选。它不仅能够在处理无界数据流时展现出卓越的实时性能,还能在有界数据批处理上达到高效稳定的效果。本文将简要介绍Flink的基本概念,以及如何在Yarn上安装和配置Flink。初识Flink的魅力Apache Flink是一个开源的计算框架,专为分布式数据流和批量数据处理而设计。它支持对有界和无界数据流进行状态化的计算,使得数据处理不再局限于传统的批处理或单一的流处理模式。
2024-04-02 10:01:07
1035
原创 学习可视化比较好用的网站Apache ECharts
Apache ECharts 是一个基于 JavaScript 的开源可视化图表库,它提供了直观、交互丰富且可高度个性化定制的数据可视化图表。在实际使用中,用户可以通过简单的 JavaScript 代码来调用 ECharts,并生成各种美观且实用的数据可视化图表。Apache ECharts 是一个功能强大、易于使用且高度可定制的数据可视化图表库,它可以帮助用户更好地理解和展示数据,从而做出更明智的决策。而且可以进行修改左侧的代码从而打到改变右侧的图像以达到需求的图案。左侧的代码可以自由选择js还是ts。
2024-03-27 15:37:10
760
原创 Vue的生命周期函数
beforeCreate :在实例初始化之后,数据观测 (data observer) 和事件/监听的配置之前被调用。created:实例创建完成后调用,此时完成了数据观测,但尚未挂载 DOM,$el 属性还没有显示出来。beforeMount :在挂载开始之前被调用,相关的render函数首次被调用。这个时候还没有开始挂载节点,$el 属性目标不会有任何变化。mounted:el 被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。如果实例被挂载到一个文档内元素上,当mounted。
2024-02-28 16:13:05
2010
1
原创 Vue电商习题
编写Vue工程代码,根据接口,用条形图展示2020年平均消费额(四舍五入保留两位小数)最高的5个省份,同时将用于图表展示的数据结构在浏览器的console中进行打印输出,将图表可视化结果和浏览器console打印结果分别截图并粘贴至对应报告中。
2024-02-27 15:18:06
793
原创 Vue路由与网络请求
相比之下,前端路由则是一种更为高效的处理方式。而路由器,则是实现这一功能的硬件设备,它负责在不同的网络之间传输数据,确保数据能够按照预定的路由规则正确地到达目的地。嵌套路由的实现原理是在一个路由内部定义其子路由,形成路由的层级结构。每个路由都可以有自己的子路由,这些子路由可以进一步嵌套,形成一个树状的路由结构。需要注意的是,在使用路由重定向时,应该仔细考虑重定向的规则和目标地址的设置,以确保重定向的准确性和有效性。在使用嵌套路由时,开发者需要注意路由的层级关系和路径的匹配规则,以确保路由的正确性和高效性。
2024-02-26 14:33:23
460
原创 vue指令 (侦听器)
如果侦听的是一个对象,默认情况下,只有当对象的属性发生变化时,侦听器才会被触发。如果需要将对象内部的嵌套属性变化也侦听进来,就需要设置。请注意,过度使用深度侦听可能会降低性能,因为它需要递归遍历对象的所有嵌套属性。因此,在不需要深度侦听的情况下,最好避免使用。当被侦听的属性变化时,回调函数将被调用,执行相应的操作。的值发生变化时,侦听器的回调函数将被调用,并且控制台将输出一条消息,显示旧值和新值。对象中的任何嵌套属性发生变化,侦听器都会被触发。以下是一个简单的示例,演示了如何使用。选项来侦听它的变化。
2024-02-23 15:23:54
784
原创 Vue简介
例如,Vue Router是用于构建单页面应用的路由插件,Vuex是用于状态管理的插件,而Pinia则是一个轻量级的状态管理库。这种数据绑定的方式实现了Model和View之间的自动同步,减少了手动操作DOM的需求,提高了开发效率和代码的可维护性。然后,随着项目的增长和复杂性的增加,Vue的生态系统提供了各种工具和库来增强应用的功能,如路由管理、状态管理和构建工具等。无论是初学者还是经验丰富的开发者,都可以在Vue中找到适合自己的工具和功能,以高效、灵活的方式构建出色的用户界面。
2024-02-21 08:36:40
1148
原创 JSON数据结构详解
JSON,全称为JavaScript Object Notation,是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。JSON主要有两种结构:对象结构和数组结构。
2024-02-19 09:49:11
653
原创 Flink容错机制
在恢复时,Flink将从最近的检查点中读取状态数据,并尝试将任务恢复到该检查点之前的状态。总之,Flink的保存点功能为用户提供了灵活的状态管理选项,使得用户可以更好地控制和管理Flink作业的状态。更重要的是,在有状态的流处理中,任务需要保持其之前的状态,以便继续处理新数据。总之,Flink的保存点功能为用户提供了更加灵活和可靠的状态管理选项,帮助用户更好地控制和管理Flink流式作业。总之,通过检查点和状态后端机制,Flink能够在发生故障时恢复流处理的状态,确保数据的完整性和准确性。
2024-02-19 09:03:32
1906
1
原创 前后端分离概念
传统的开发方式中,前端代码零散地分布在整个系统架构中,这不仅增加了开发难度,也降低了效率。在传统的开发模式下,前端和后端是紧密耦合的,前端代码嵌入到后端代码中,导致开发效率低下,维护困难。而前后端分离则将前端和后端分开,前端使用HTML、CSS、JavaScript等技术栈,后端使用Java、Python、Node.js等技术栈,两者通过API接口进行通信,实现数据的交互。这样,前端团队可以专注于研究工程化、模块化、系统化的前端技术,以更好地解决项目中遇到的问题,并适应技术的快速发展。
2024-02-19 08:38:31
376
原创 Flink CEP(模式 API Pattern API )
在Flink的学习过程中,我们已经掌握了从基本原理和核心层的DataStream API到底层的处理函数,再到应用层的Table API和SQL的各种手段,可以应对实际应用开发的各种需求。有了定义好的个体模式,我们可以进一步将这些模式按照一定的顺序连接起来,以定义一个完整的复杂事件匹配规则。在实际应用中,个体模式的组合和嵌套为我们提供了更灵活的事件处理能力,能够应对各种复杂的场景和需求。在实际应用中,个体模式的组合和嵌套为我们提供了丰富的工具和功能,帮助我们更好地处理和分析复杂事件。
2024-02-01 14:36:18
1236
原创 Flink CEP(基本概念)
在Flink的学习过程中,我们已经掌握了从基本原理和核心层的DataStream API到底层的处理函数,再到应用层的Table API和SQL的各种手段,可以应对实际应用开发的各种需求。然而,在实际应用中,还有一类更为复杂的需求,即需要检测以特定顺序先后发生的一组事件,进行统计或做报警提示。这类需求很难直接用SQL或者DataStream API来完成,需要使用更底层的处理函数来解决。
2024-02-01 08:42:18
1393
原创 Flink容错机制
同时,由于保存点包含作业的一致性状态,因此它也可以用于故障恢复,以确保数据的完整性和准确性。总之,Flink的保存点功能为用户提供了灵活的状态管理选项,使得用户可以更好地控制和管理Flink作业的状态。更重要的是,在有状态的流处理中,任务需要保持其之前的状态,以便继续处理新数据。总之,Flink的保存点功能为用户提供了更加灵活和可靠的状态管理选项,帮助用户更好地控制和管理Flink流式作业。总之,通过检查点和状态后端机制,Flink能够在发生故障时恢复流处理的状态,确保数据的完整性和准确性。
2024-01-31 14:09:28
1889
原创 容错机制(端到端精确一次 end-to-end exactly-once)
这样,在故障恢复时,可以从检查点中读取偏移量,重置数据源的读取位置,重新获取数据,从而保证数据不丢失。如果有一个外部应用读取写入的数据,可能会看到奇怪的现象:短时间内,结果会突然“跳回”到之前的某个值,然后“重播”一段之前的数据。为了实现端到端的精确一次(exactly-once)一致性语义,除了Flink的检查点机制和可重放数据的外部数据源之外,还需要关注数据写入外部系统的重复问题。在Flink中,检查点机制可以保证故障恢复后数据不丢(在能够重放的前提下),并且只处理一次,这是实现端到端一致性的基础。
2024-01-31 09:13:33
984
原创 容错机制(状态一致性)
在流式处理中,状态一致性意味着在故障发生后,Flink能够准确地恢复到故障发生前的一致状态,使得应用程序在恢复后能够继续处理数据,并且不会丢失或重复处理数据。当故障发生时,Flink可以从最近的检查点开始恢复状态并重新处理数据,以确保状态的一致性和结果的正确性。在Flink流式处理中,检查点机制确实可以保证内部状态的一致性,并且可以实现精确一次(exactly-once)语义,从而在故障恢复时确保结果的正确性。在Flink流式处理架构中,一致性的概念主要应用于故障恢复,以确保状态恢复后结果的正确性。
2024-01-29 16:20:49
979
原创 容错机制 (检查点 Checkpoint)
这种方式可以减少检查点的大小和存储需求,同时也可以减少恢复时间,因为只需要恢复最新的状态数据而不是整个系统的状态。这种状态是与应用中特定的键值关联的,因此不同的键值会有各自的状态。由于我们只在所有任务处理完同一个输入数据时进行状态保存,因此不需要存储与处理过程无关的其他信息,这有助于减少存储空间的占用,并提高检查点的生成速度。通过这种异步分界线快照算法,Flink 可以在不暂停流处理的情况下,有效地处理多个分区之间的分界线传递,并确保每个任务都能正确地识别触发检查点保存的数据。
2024-01-29 08:36:35
1114
原创 状态编程(状态持久化和状态后端)
状态编程状态持久化和状态后端在 Flink 的状态管理机制中,对状态进行持久化(persistence)保存是一个重要的功能,它允许系统在发生故障后进行重启恢复。为了实现这一功能,Flink 采用了一种特殊的机制来对分布式状态进行“快照”保存。Flink 将当前所有分布式状态的快照保存到一个称为“检查点”(checkpoint)或“保存点”(savepoint)的外部存储系统中。这种机制确保了即使在系统发生故障或其他异常情况下,状态数据也不会丢失,并且可以在故障恢复后从最近的检查点或保存点恢复。
2024-01-26 15:41:07
799
原创 状态编程(算子状态 Operator State)
除了按键分区状态(Keyed State)外,另一类受控状态是算子状态(Operator State)。算子状态在某种意义上可以被视为更底层的状态类型,因为它仅对当前算子的并行任务有效,而不需要考虑不同键值的隔离。与按键分区状态相比,算子状态的功能较为有限,应用场景也较少。算子状态的调用方法与按键分区状态有所不同,这主要表现在对状态的访问和更新方面。在实际应用中,选择使用按键分区状态还是算子状态取决于具体的需求和场景。
2024-01-26 15:26:19
863
原创 状态编程(按键分区状态 Keyed State)
按键分区状态(在实际应用中,分区通常是处理流数据的关键步骤,因为通过将数据按照特定的键进行分区,我们可以将相关的数据聚集在一起,以便进行高效的计算和处理。因此,Keyed State 成为最常用的状态类型。在 Flink 中,当我们使用 keyBy() 函数对数据进行分区后,所进行的聚合、窗口计算等操作,其算子所持有的状态都是 Keyed State。此外,Flink 还提供了富函数类(Rich Function),允许我们对转换算子进行扩展和自定义。
2024-01-26 14:34:16
848
原创 状态编程(Flink 中的状态)
Flink中的状态在流处理中,数据是持续不断地流入并被处理的。每个任务在执行计算时,可以根据当前接收到的数据直接生成输出结果。但有时,为了得到正确的输出,任务可能还需要依赖其他数据。这些被一个任务用于计算输出结果的所有数据,我们称之为该任务的状态。随着数据的不断流入,任务的状态可能会发生变化。为了确保数据的准确性和一致性,我们需要对任务的状态进行管理和维护。同时,为了避免数据重复或冲突,还需要对状态进行去重处理。对于流处理任务,状态的管理和去重是一个重要的挑战。
2024-01-26 08:21:44
949
原创 HBase 简介
1.HBase定义HBase是一个开源的、分布式的、面向列的非关系型数据库,设计灵感来源于Google的Bigtable论文。它利用Hadoop的HDFS作为其存储系统,利用Hadoop的MapReduce作为其计算引擎。HBase提供了高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统。HBase与传统的关系型数据库不同,它是一个面向列的存储系统,数据在物理存储上并不按照行进行连续存储,而是按照列进行分组存储。这种设计使得HBase在处理大规模数据时具有更好的扩展性和性能。
2024-01-25 19:42:44
916
原创 侧输出流(Side Output)
侧输出流(Side Output)是处理函数中的一个重要功能,允许我们将自定义的数据发送到侧输出流中进行处理或输出。通过将数据发送到侧输出流,我们可以将不同的数据流进行分离,以便进行不同的处理和操作。方法将数据发送到侧输出流中。输出标签用于标识侧输出流,以便在外部获取和处理侧输出流数据。通过侧输出流,我们可以将不同的数据流进行分离,以便进行不同的处理和操作。接下来,我们创建了一个处理函数,将时间戳输出到主流中,将用户名输出到侧输出流中。然后,在处理函数中,我们可以使用这个输出标签来标识侧输出流。
2024-01-25 14:46:54
502
原创 按键分区处理函数(KeyedProcessFunction)
此外,TimerService还提供了其他几个方法,如currentProcessingTime()和currentWatermark()用于获取当前的处理时间和水位线(事件时间),deleteProcessingTimeTimer()和deleteEventTimeTimer()用于删除触发时间为time的处理时间定时器和事件时间定时器。在处理每个元素时,我们首先检查状态是否为空,如果为空则将当前元素的值更新到状态中,否则将当前元素的值累加到状态中,并将结果输出到控制台。在代码中,常见的处理函数是。
2024-01-25 14:32:37
945
原创 Flink容错机制
在出现故障时,我们将系统重置回正确状态,以确保数据的完整性和准确性。在流处理中,我们采用存档和读档的策略,将之前的计算结果进行保存。这样,在系统重启后,我们可以继续处理新数据,而无需重新计算。 更重要的是,在有状态的流处理中,任务需要保持其之前的状态,以便继续处理新数据。为了实现这一目标,我们将之前某个时间点的所有状态保存下来,这个“存档”被称为“检查点”。 检查点是 Flink 容错机制的核心。它关注的是故障恢复的结果:在故障恢复后,处理的结果应与故障发生前完全一致。因此,有时
2024-01-25 10:50:10
1907
原创 基本处理函数(ProcessFunction)
处理函数在数据流处理中扮演着核心角色,负责定义数据流的转换操作。在Flink中,处理函数作为一种特殊的转换算子,提供了强大的功能来处理数据流。Flink几乎所有的转换算子都提供了对应的函数类接口,处理函数也不例外。它所对应的函数类被称为ProcessFunction。ProcessFunction为开发者提供了一种灵活的方式来处理数据流,可以根据实际需求对数据进行各种复杂的转换和处理操作。通过使用ProcessFunction,您可以实现自定义的数据流转换逻辑,以满足各种复杂的数据处理需求。
2024-01-25 10:03:57
1119
原创 DataStream API(输出算子)
在上面的示例中,我们首先创建了一个 StreamExecutionEnvironment,然后创建了一个数据流。在 MyOutputFormat 类中,我们实现了 open() 方法来打开文件并设置文件名、字段分隔符等参数,writeRecord() 方法来写入数据到文件,以及 close() 方法来关闭文件。在上面的示例中,我们首先创建了一个 StreamExecutionEnvironment,然后创建了一个数据流。这样,开发人员可以更加灵活地处理数据流,并将处理后的结果存储在所需的位置。
2024-01-23 19:45:12
917
原创 DataStream API(转换算子)
Map() 是大数据处理中常用的一个算子,主要用于转换数据流中的数据,生成新的数据流。与 Map() 算子不同,FlatMap() 可以产生 0 到多个元素,意味着对于输入数据流中的每个元素,FlatMap() 可以根据定义的处理逻辑生成一个或多个输出元素。这种操作在数据流处理中提供了一种有效的机制,用于处理复杂的转换逻辑,特别是需要将集合类型数据拆分成单个元素进行处理的情况。只要指定聚合指定的字段即可。因此,Flink 提供了一系列物理分区操作算子,用于在数据流经过转换操作之后,进行更细致和特定的分区。
2024-01-23 15:41:07
990
原创 DataStream API(源算子)
为了方便地使用 Kafka 作为数据源,Flink 官方提供了 flink-connector-kafka 连接工具,其中包含了一个名为 FlinkKafkaConsumer 的消费者类,它是一个 SourceFunction,用于从 Kafka 中读取数据。与此同时,Flink 作为一个流处理框架,具备高效的分析计算能力,能够快速处理大量的实时数据。同时,由于 Kafka 和 Flink 的高度集成和优化,这种架构还能够提供更好的扩展性和稳定性,满足企业不断增长的数据处理需求。
2024-01-23 15:17:36
1129
原创 多流转换 (分流,合流,基于时间的合流——双流联结 )
具体来说,给定两个时间点,分别称为“下界”和“上界”,对于一条数据流中的每个数据元素,可以开辟一个时间间隔,即以该数据元素的时间戳为中心,下至下界点、上至上界点的一个闭区间。这个区间被认为是可匹配另一条流数据的“窗口”范围。另外,根据具体的数据处理需求,可能还需要考虑其他合流策略和算子,例如使用connect()算子进行流之间的连接操作,或者使用join()算子进行基于键的流合并等。同样地,流A中时间戳为3的元素的可匹配区间为[1, 4],而流B中只有时间戳为1的元素与之匹配,得到匹配数据对(3, 1)。
2024-01-23 10:28:22
1495
原创 Flink中的时间和窗口(时间语义,水位线,窗口,迟到数据的处理)
水位线是一种衡量事件时间进展的机制,用于处理实时数据中的乱序问题。它通常与窗口操作结合使用,以确保在窗口计算时能够正确处理乱序到达的数据。水位线本质上是一个时间戳,用于指示当前的事件时间进展。在数据流中加入一个时钟标记,记录当前的事件时间,这个标记可以直接广播到下游。当下游任务收到这个标记,就可以更新自己的时钟。通过水位线,Flink可以在处理乱序数据时,避免无限期地等待延迟数据到达。当到达特定水位线时,Flink认为在那个时间点之前的数据已经全部到达,即使后面还有延迟到达的数据。
2024-01-19 15:19:28
712
1
原创 Flink项目(看了就会)
使用maven先配置好pom文件然后在项目目录上创建input包然后在input包中创建word文件word.txt并在文件中添加一下内容然后在src的运行目录下创建一个目录,然后创建scala文件命名为BatcWordCount具体代码为。
2024-01-18 10:36:09
516
1
原创 Flink容错机制
在出现故障时,我们将系统重置回正确状态,以确保数据的完整性和准确性。在流处理中,我们采用存档和读档的策略,将之前的计算结果进行保存。这样,在系统重启后,我们可以继续处理新数据,而无需重新计算。更重要的是,在有状态的流处理中,任务需要保持其之前的状态,以便继续处理新数据。为了实现这一目标,我们将之前某个时间点的所有状态保存下来,这个“存档”被称为“检查点”。检查点是 Flink 容错机制的核心。它关注的是故障恢复的结果:在故障恢复后,处理的结果应与故障发生前完全一致。
2024-01-17 15:24:18
1853
原创 Flink窗口
Flink用来处理流式数据源源不断,这时为了更加方便的处理流式数据一种方法就是将流式数据切割成有限的数据块进行处理,这个数据块被称为窗口。窗口不是一个封闭的框,更像一个桶,一个可以存放数据的数据桶,窗口可以把数据流切割成有限大小的多个数据桶,每个数据都会存放到相应的数据桶中,当到达窗口结束时再对桶中的数据进行计算处理。
2024-01-17 14:19:34
410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人