Oracle Golden Gate(OGG)的介绍
介绍Oracle GoldenGate 是一种高性能、实时数据复制和数据集成技术,允许在不影响源系统性能的情况下捕获、转换和传递事务数据。它支持从多个数据源(包括 Oracle 数据库、非 Oracle 数据库、文件系统等)捕获变更并将其传递到目标系统。Oracle GoldenGate 可以在不同的操作系统和数据库之间进行数据复制,支持广泛的平台和数据格式,具有灵活、高度可配置和可扩展的特点
Kafka中的segment的介绍
概述在 Kafka 中,一个 segment 是一个可追加的文件,用于存储 Kafka 分区中的一部分消息。Kafka 将消息按照 topic 和 partition 进行组织,并将它们存储在一个或多个 segment 文件中。每个 segment 文件包含一系列消息,这些消息按照它们的 offset(在 partition 中的位置)进行排序。每个 segment 文件都有一个开始和结束的
Flink 的时间类型
处理时间(Processing Time):这是处理数据的本地系统时间,它通常用于在数据流上进行实时计算。 事件时间(Event Time):这是数据本身包含的时间戳,它反映了数据生成的实际时间,它通常用于处理无序数据和处理延迟数据。 摄取时间(Ingestion Time):这是数据进入 Flink 系统的时间,它通常用于在数据流上进行实时计算,但对于延迟数据而言,它比处理时间更可靠。
Java - 是值传递还是引用传递
介绍Java 是值传递。在 Java 中,当一个方法调用时,参数传递的是它们对应的值的副本,而不是它们的引用。这意味着在方法中对参数的任何更改都不会影响调用者传递的原始参数。对于对象类型,其实传递的是对象引用的值的副本,而不是对象本身。这意味着在方法中对对象的任何更改都会影响调用者传递的对象,但是如果在方法中重新赋值参数,则不会影响调用者传递的原始对象。
面向对象编程(OOP)的七大原则
单一职责原则(SRP):一个类只应该有一个单一的责任,即一个类只需要完成一个明确的任务或功能。这个原则可以帮助你确保你的代码更加模块化和易于理解。 开闭原则(OCP):一个类应该对扩展开放,对修改关闭。这意味着你应该尽可能使用抽象和接口,而不是具体实现来编写代码,以便于在需要添加新功能时不需要修改现有代码。 里氏替换原则(LSP):子类应该能够替换掉它们的父类并保持程序的正确性。这个原则确保了
Flink - 旁路缓存和异步IO的实现
AsyncIO APIAsyncIO API提供了异步IO操作,其中包括将数据读入缓存中,等待异步IO操作完成,然后再将数据发送到下游任务。在这个过程中,Flink可以同时执行其他任务,从而提高了系统的并行度和吞吐量。 // 创建AsyncIO操作 AsyncFunction<String, String> asyncFunction = new AsyncFunction&l
QPS/TPS 的介绍
QPSQPS通常指每秒钟可以处理的查询请求次数。对于大数据处理系统来说,这可能是指每秒处理的数据读取或写入操作次数。例如,对于一个能够从Hadoop分布式文件系统(HDFS)中读取1000次/秒的系统,其QPS为1000。 TPSTPS,即Transactions Per Second,指每秒钟可以处理的事务数。在大数据处理系统中,事务可以是一个复杂的数据操作,如数据转换、聚合、过滤、排序等
Flink - 资源配置调优
Generic CLI 模式标准的Flink任务提交脚本(Generic CLI 模式),从1.11开始,增加了通用客户端模式,参数使用-D 指定 bin/flink run \ -t yarn-per-job \ -d \ -p 5 \ 指定并行度 -Dyarn.application.queue=test \ 指定yarn队列 -Dj
Flink - 安装包scala 2.12和scala 2.11的区别
区别概况Apache Flink是一个分布式数据流处理框架,支持使用Scala和Java编写Flink应用程序。在安装Flink时,您需要选择与您使用的Scala版本匹配的Flink安装包。以下是Flink安装包Scala 2.12和Scala 2.11之间的区别:编译器版本:Scala 2.12和Scala 2.11使用不同的编译器版本。Scala 2.12使用Scala编译器2.12.x,
安装Hadoop3X 出现的错误信息
启动hdfs错误错误信息:ERROR: Attempting to operate on hdfs namenode as rootERROR: but there is no HDFSNAMENODE_USER defined. Aborting operation.错误原因:试图以根用户身份在hdfs namenode上操作,但是没有定义HDFS NAMENODE _用户。中止操作。解决
Flink - Task 任务调度执行流程
流程图
Flink - 组件通信过程
流程图
Flink - Checkpoint配置注意点
配置值注意项:(源码分析)StreamingJobGraphGenerator.java CheckpointConfig cfg = streamGraph.getCheckpointConfig(); long interval = cfg.getCheckpointInterval(); if (interval < MINIMAL_CHECK
Flink 算子链可以合并的源码分析
源码示例StreamingJobGraphGenerator.java for (StreamEdge outEdge : currentNode.getOutEdges()) { if (isChainable(outEdge, streamGraph)) { chainableOutputs.add(outEdge);
Flink - 算子链合并方法
方法如下:相邻的算子:当两个算子直接连接在一起,没有其他算子或键控操作符将它们分离时,它们就会被自动合并为一个算子链。相同的操作类型:当两个算子拥有相同的操作类型时,它们就可以被合并为一个算子链。算子的并行度相同:当相邻的两个算子拥有相同的并行度时,它们可以被合并为一个算子链。用户手动合并:如果用户通过调用 DataStream.transform() 方法来显式地定义算子链,那么这些算子也会
Java - Map的使用技巧
技巧一: Map<String, String> appMasterEnv = new HashMap<>(); 声明中的Map<String, String>使用了泛型的原始类型,这意味着在编译时,编译器将不会检查该Map对象中添加到其中的键和值的类型是否正确。这可能会导致运行时错误或异常。因此,应该避免使用泛型的原始类型。 技巧二: Hash
Flink中的堆内存和堆外内存的作用
堆内存堆内内存指的是由 Java 虚拟机(JVM)所管理的内存,这部分内存主要用于存储 Java 对象。在 Flink 中,堆内内存主要用于存储算子状态(Operator State)和用户定义的聚合器(Aggregator)等数据结构。堆内内存的好处是可以充分利用 JVM 的垃圾回收机制,避免了手动管理内存的麻烦,但缺点是受到 JVM 的内存限制,不适用于大量的数据存储。 堆外内存堆外内存
Kafka - 支持压缩种类
支持以下压缩类型GZIP:GZIP是一种基于DEFLATE算法的压缩算法,通常用于文本数据。Snappy:Snappy是一种快速压缩算法,它可以在不牺牲太多压缩比的情况下提供很高的压缩和解压缩速度。它通常用于对二进制数据(如Avro或序列化的Java对象)进行压缩。LZ4:LZ4是一种快速压缩算法,它比Snappy更快但压缩比稍差。它通常用于对大量的日志数据进行压缩。ZStandard:ZSt
Java - 可变参数的使用
示例 List<MetricsReporter> reporters = config.getConfiguredInstances(ProducerConfig.METRIC_REPORTER_CLASSES_CONFIG, ClusterResourceListeners clusterResourceListeners = configureClusterResour
Kafka - 监控软件
KafkaManager软件简介 管理多个kafka集群便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况)选择你要运行的副本基于当前分区状况进行可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同)删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true)Topi