自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

数智技术

专注于大数据、AI和云计算相关的技术及应用

  • 博客(35)
  • 收藏
  • 关注

转载 Maven:mirror和repository 区别、pom.xml 指定仓库地址、releases 和 snapshots 区别

当 Maven 需要下载构件的时候,先向私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,同时缓存在私服之上,然后为 Maven 下载请求提供下载服务,另外,对于自定义或第三方的jar可以从本地上传到私服,供局域网内其他 maven 用户使用。私服是一种特殊的远程 Maven 仓库,它是架设在局域网内的仓库服务,私服一般被配置为互联网远程仓库的镜像,供局域网内的 Maven 用户使用。换句话说,任何一个可以从仓库Y获得的构件,都胡够从它的镜像中获取。也可以把做的东西放到本地仓库,仅供本地使用;

2022-10-19 11:19:40 6029 1

转载 Jackson使用详解

有时,可能希望以不同于Jackson ObjectMapper缺省方式的方式将JSON字符串读入Java对象。可以将自定义反序列化器添加到ObjectMapper,可以按需要执行反序列化。这是在Jackson的ObjectMapper中注册和使用自定义反序列化器的方式:> vc) {super(vc);}}}}}有时,想要将Java对象序列化为JSON的方式与使用Jackson的默认方式不同。

2022-09-30 18:05:19 2550

转载 Flink SQL 如何实现数据流的 Join

无论在 OLAP 还是 OLTP 领域,Join 都是业务常会涉及到且优化规则比较复杂的 SQL 语句。对于离线计算而言,经过数据库领域多年的积累 Join 的语义以及实现已经十分成熟,然而对于近年来刚兴起的 Streaming SQL 来说 Join 却处于刚起步的状态。其中最为关键的问题在于 Join 的实现依赖于缓存整个数据集,而 Streaming SQL Join 的对象却是无限的数据流,内存压力和计算效率在长期运行来说都是不可避免的问题。下文将结合 SQL 的发展解析 Flink SQL 是如何

2022-06-29 18:59:40 1702

转载 漫谈 Flink Source 接口重构

对于大多数 Flink 应用开发者而言,无论使用高级的 Table API 或者是底层的 DataStream/DataSet API,Source 都是首先接触到且使用最多的 Operator 之一。然而其实从 2018 年 10 月开始,Flink 社区就开始计划重构这个稳定了多年的 Source 接口[1],以满足更大规模数据以及对接更丰富的 connector 的要求,另外还有更重要的一个目的: 统一流批两种计算模式。重构后的 Source 接口在概念和使用方式上都会有较大不同,无论对 Flink

2022-06-29 18:51:51 937

转载 Flink Table 的三种 Sink 模式

作为计算引擎 Flink 应用的计算结果总要以某种方式输出,比如调试阶段的打印到控制台或者生产阶段的写到数据库。而对于本来就需要在 Flink 内存保存中间及最终计算结果的应用来说,比如进行聚合统计的应用,输出结果便是将内存中的结果同步到外部。就 Flink Table/SQL API 而言,这里的同步会有三种模式,分别是 Append、Upsert 和 Retract。实际上这些输出计算结果的模式并不限于某个计算框架,比如 Storm、Spark 或者 Flink DataStream 都可以应用这些模式

2022-06-29 18:41:44 1097

转载 Flink DataStream 关联维表实战

如果不打算用 SQL 或者想自己实现底层操作,那么如何基于 DataStream API 来关联维表呢?实际上由于 Flink DataStream API 的灵活性,实现这个需求的方式是非常多样的,但是大部分用户很难在设计架构时就考虑得很全面,可能会走不少弯路。针对于此,笔者根据工作经验以及社区资源整理了用 DataStream 实现 Join 维表的常见方式,并给每种的方式优劣和适用场景给出一点可作为参考的个人观点。总体来讲,关联...

2022-06-29 17:49:13 1277

转载 流计算引擎数据一致性的本质

简介: 本篇文章从流计算的本质出发,重点分析流计算领域中数据处理的一致性问题,同时对一致性问题进行简单的形式化定义,提供一个一窥当下流计算引擎发展脉络的视角,让大家对流计算引擎的认识更为深入,为可能的流计算技术选型提供一些参考。流计算的应用与实践在大数据领域越来越常见,其重要性不言而喻,常见的流计算引擎有 Google DataFlow、Apache Flink,Apache Kafka Streams,Apache Spark Streaming 等。流计算系统中的数据一致性一般是用消息处理语义来定义的,

2022-06-23 10:54:15 165

转载 高并发分布式锁架构解密,不是所有的锁都是分布式锁!!

简介: 很多小伙伴留言说,在学习高并发编程时,不太明白分布式锁是用来解决什么问题的,还有不少小伙伴甚至连分布式锁是什么都不太明白。明明在生产环境上使用了自己开发的分布式锁,为什么还会出现问题呢?同样的程序,加上分布式锁后,性能差了几个数量级!这又是为什么呢?今天,我们就来说说如何在高并发环境下实现分布式锁。最近,很多小伙伴留言说,在学习高并发编程时,不太明白分布式锁是用来解决什么问题的,还有不少小伙伴甚至连分布式锁是什么都不太明白。明明在生产环境上使用了自己开发的分布式锁,为什么还会出现问题呢?同样的程序,

2022-06-23 10:52:32 170

原创 Java8 Stream实战

在了解Stream之前,我们先来看一个需求:已知一个公司的员工信息,获取当前公司中员工年龄大于30 岁的员工信息。首先,我们创建一个员工实体类。我们用一个List对象构建一组员工数据。接下来,最容易想到是我们使用常规遍历集合的方式来查找年龄大于等于30 的员工信息很快,业务需求发生了变化,要求”获取当前公司中员工工资大于或者等于5000 的员工信息“。于是,我们不得不再次创建一个按照工资过滤的方法。对比filterByAge()方法和filterBySalar() 方法后,我们发现,

2022-06-15 00:15:53 630

转载 如何判断一个数据模型的好坏?数据仓库的 KPI 怎么定?

一、数仓模型优化-如何判断一个数据模型的好坏1.完善度汇总数据能直接满足多少查询需求,即应用层访问汇总层数据的查询比例跨层引用率:ODS层直接被DWS/ADS/DM层引用的表,占所有ODS层表比例可以快速响应业务方的需求比较好的模型,使用方式是可以直接从该模型获取所有想要的数据的,如果DWS,ADS,DM层直接引用ODS层的表比例太大,即跨层引用率太高,则该模型不是最优,可以继续优化2.复用度模型引用系数:模型被读取并产出下游模型的平均数量3.规范度主题域归属...

2022-05-30 10:26:14 3354

转载 UML类图(继承、实现、关联、依赖、组合、聚合),你还傻傻分不清吗?

什么是UML维基百科对UML的定义:UML(Unified Modeling Language)是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。这个语言由葛来迪·布区,伊瓦尔·雅各布森与詹姆士·兰宝于1994年至1995年间,在Rational Software公司中开发,于1996年,又进一步发展。UML集成了Booch

2022-05-19 09:15:33 9061 2

转载 UML科普文,一篇文章掌握14种UML图

文章目录 前言 什么是UML? 为什么要用UML? UML图有哪些? UML图概览 什么是类图? 泛化(Generalization) 实现(Realization) 关联(Association) 聚合(Aggregation) 组合(Composition) 依赖(Dependency) 什么是组件图? 什么是部署图? 什么是对象图? 什么是包图? 什么是组合结构图? 什么是轮廓图? 什么是用例图?

2022-05-18 18:43:56 432

原创 java 泛型解析

1、泛型的概述:1.1基本概述泛型的本质就是"参数化类型"。一提到参数,最熟悉的就是定义方法的时候需要形参,调用方法的时候,需要传递实参。那"参数化类型"就是将原来具体的类型参数化 泛型的出现避免了强转的操作,在编译器完成类型转化,也就避免了运行的错误。1.2 泛型的目的Java泛型也是一种语法糖,在编译阶段完成类型的转换的工作,避免在运行时强制类型转换而出现ClassCastException,类型转化异常。1.3 实例JDK 1.5增加了泛型,在很大的程度上方便在集合上的使用。如.

2022-05-17 15:54:17 1354

转载 聊聊 Java泛型通配符 “T,E,K,V,? ”

前言相信大家对Java泛型并不陌生,无论是开源框架还是JDK源码都能看到它,毫不夸张的说,泛型是通用设计上必不可少的元素,所以真正理解与正确使用泛型,是一门必修课,本文将解开大家对泛型的疑惑,并通过大量实践,让你get到泛型正确的使用姿势,下面开始进入正题吧!大纲基础因为本文重实践,而且面对的是Java开发人员群体,大家对泛型都有基础,所以泛型基础这块会快速过,帮助大家回忆下即可,后面主要的则重点是通配符编译期与运行期编译期是指把源码交给编译器编译成计算机可执行文件的过程,运行期

2022-05-17 10:49:34 1231

原创 Java多线程编程(3)- 线程同步

Java

2022-05-09 15:38:08 453

原创 Java多线程编程(2)- 线程安全

1 竞态 竞态指计算结果的正确性依赖相对时间顺序和线程的交错,通俗的说就是计算结果与时间有关,对于一个同样的输入,有时候结果正确,有时候结果不正确。竞态不一定会导致结果错误,只是说有这种导致结果出错的可能性。竞态往往伴随着读取脏数据问题,或是丢失更新问题。2 竞态的模式及竞态产生的条件竞态有两种模式: read-modify-write(读-改-写) 即读取一个共享变量的值(read),然后根据值做一些计算(modify),最后更新该变量的值(write)。例如...

2022-05-06 15:34:04 837

原创 Java多线程编程(1)- 线程基础

在Java中创建一个线程就是创建一个Thread类(或其子类)的实例。每个线程都有其执行的任务,线程的任务处理逻辑可以在Thread类的run方法中直接实现或者通过该方法调用相关处理函数,因此run方法相当于线程的任务处理逻辑的入口方法,它由Java虚拟机在运行相应线程时直接调用,而不是由应用代码进行调用。运行一个线程实际上就是让Java虚拟机执行该线程的run方法,从而使该线程的任务处理逻辑得以执行。Thread类的start方法可以启动一个线程。启动一个线程的实质是请求Java虚拟机运行相应的线程,

2022-05-05 12:22:53 488

转载 docker安装

一、安装前准备  根据不同系统准备安装docker的安装包,准备符合docker安装需求的Centos、Ubuntu系统。二、Centos系统(一)、安装前准备1、系统要求  要在 CentOS 上安装 Docker,最低的操作系统版本需要为 CentOS 7。其他的早期版本不能够获得支持。  centos-extras仓库需要被启用。这个仓库在默认情况下是启用的,但是可能因为其他的原因被关闭了,请参考重新启用 centos-extras仓库页面中的内容。  推荐使用overla

2022-04-22 12:34:53 153

原创 流计算相关的基础概念

已经了解到流计算是如何解决了传统批处理的局限以及如何支持了新的应用和架构,并且熟悉了开源流计算技术的演进,接下来介绍流计算的基础。数据流图(Dataflow graphs)字面上理解,一个数据流程序描述了数据在各种操作之间的流动。数据流程序通常用一个有向图来表示,其中节点是运算符代表了计算,边表示数据的依赖关系。算子是一个数据流程序的基本函数单元,从输入中消费数据、执行计算,以及输出结果用于进一步的处理。没有输入端的算子称为data source,而没有输出端的算子称为data sink。一个数据流图至

2022-04-22 09:44:25 855

原创 C语言中位操作

一、基本位操作| | ||-|-|-或-||-&-|-与-||-~-|-取反-||-^-|-异或-||-<<-|-左移-||->>-|-右移-|| | |二、位操作的常见用法1.获取某位的值#define BitGet(Number,pos) ((Number)|= 1<<(pos)) //把某位置1#define BitGet(Number,pos) ((Number) &= ~(1<<(pos)) //把某位

2022-02-17 10:07:08 1633

转载 Apache Calcite 优化器详解(二)

这里是 Calcite 系列文章的第二篇,后面还会有文章讲述 Calcite 的实践(包括:如何开发用于 SQL 优化的 Rule)。本篇文章主要介绍 Apache Calcite 优化器部分的内容,会先简单介绍一下 RBO 和 CBO 模型,之后详细讲述 Calcite 关于这两个优化器的实现 —— HepPlanner 和 VolcanoPlanner,文章内容都是个人的一些理解,由于也是刚接触这块,理解有偏差的地方,欢迎指正。什么是查询优化器查询优化器是传统数据库的核心模块,也是大数据计算引擎的核

2021-12-02 12:20:42 1629 1

转载 Apache Calcite 处理流程详解(一)

关于 Apache Calcite 的简单介绍可以参考 Apache Calcite:Hadoop 中新型大数据查询引擎 这篇文章,Calcite 一开始设计的目标就是 one size fits all,它希望能为不同计算存储引擎提供统一的 SQL 查询引擎,当然 Calcite 并不仅仅是一个简单的 SQL 查询引擎,在论文 Apache Calcite: A Foundational Framework for Optimized Query Processing Over Heterogeneous

2021-12-02 10:38:17 1633

转载 Calcite基础概念

1. Calcite中主要数据结构转化流程如图所示,SQL在Calcite中会经历以上流程,最终会生成优化过后的RelNode, 下面就以图中的各个点数据结构进行说明。2. SQL到SqlNode通过Parser, 可以将Sql转化成SqlNode, 什么是SqlNode? SqlNode是Calcite中用于表达关系运算的中间数据结构,这么说可能有些抽象,可以看下图:便于解释select id, cast(score as int), ‘hello’ from T where id <

2021-11-29 13:52:36 519

原创 实时数据同步利器debezium教程

1 debezium概述Debezium是一个开源项目,为捕获数据更改(change data capture,CDC)提供了一个低延迟的流式处理平台。你可以安装并且配置Debezium去监控你的数据库,然后你的应用就可以消费对数据库的每一个行级别(row-level)的更改。只有已提交的更改才是可见的,所以你的应用不用担心事务(transaction)或者更改被回滚(roll back)。Debezium为所有的数据库更改事件提供了一个统一的模型,所以你的应用不用担心每一种数据库管理系统的错综复杂性。

2021-11-08 11:39:06 14737

原创 Kafka Connect使用教程

Kafka Connect介绍

2021-11-02 19:20:22 12161 6

原创 MariaDB单机版安装(linux)

1 下载linux下安装二进制包以下以安装mariadb-10.5.8-linux-systemd-x86_64.tar.gz为例2 安装步骤1)解压缩安装包tar -xvzf mariadb-10.5.8-linux-systemd-x86_64.tar.gz建立一个软连接(方便后续操作)ln -s /opt/mariadb-10.5.8-linux-systemd-x86_64 /opt/maridb2)修改配置文件my.cnf先在/opt/maridb建立一个配置文件目录、日志目录

2021-07-15 17:47:53 1390

转载 谷歌流计算论文streaming 102: 批处理之上的世界(二)

上一篇文章介绍了流式处理的基本概念,并提出了窗口的概念的由来——即为了将无限数据切分为有限来处理。这篇文章主要通过以下四个问题逐渐勾勒出流式处理的计算框架:What: 要计算什么结果?——转换(transform)Where: 在哪个位置计算结果?——窗口(window)When: 在处理时间的哪个时刻计算窗口的结果?——水位线(watermark) + 触发器(trigger)How: 如何修正之前计算出的结果?——丢弃、累积、累积&撤回其中水位线和触发器的概念的产生最让我觉得很自

2021-07-13 18:40:00 276

翻译 谷歌流计算论文streaming 101: 批处理之上的世界(一)

上一篇文章介绍了流式处理的基本概念,并提出了窗口的概念的由来——即为了将无限数据切分为有限来处理。这篇文章主要通过以下四个问题逐渐勾勒出流式处理的计算框架:What: 要计算什么结果?——转换(transform)Where: 在哪个位置计算结果?——窗口(window)When: 在处理时间的哪个时刻计算窗口的结果?——水位线(watermark) + 触发器(trigger)How: 如何修正之前计算出的结果?——丢弃、累积、累积&撤回其中水位线和触发器的概念的产生最让我觉得很自

2021-07-13 17:56:01 468

翻译 流计算学习之(一):流计算的发展

传统的数据架构公司一般会采用不同的应用来满足商业的需要,例如企业资源规划系统(ERP)、客户关系管理软件(CRM),以及Web应用等。所有这些系统都是典型将数据处理(程序本身)和数据存储(事务型数据库系统)分成独立的层次,如下图所示。这些程序经常需要连接到外部的服务或者面向用户,并且需要持续地处理事件,如订单、邮件、网站的点击。当一个事件被处理,程序会读取其状态,或通过远程的数据库系统来运行一个事务完成状态的更新。一般来说,一个数据库系统会服务于多个应用,这些应用有时候甚至会访问相同的数据库或者表。

2021-07-13 17:16:49 789

原创 微服务接口设计规范

1 接口评价标准一个好的接口设计通常需要满足以下几点:简单:满足需求的同时,越简单越好。易懂:优秀的API可读性好,尽量做到不需要文档就能读懂接口名称、参数的大概含义,提供给第三方的的接口要进行详细地描述。包括参数的取值范围、错误码、异常返回规则、SLA相关指标等。一致:对于同一公司、站点提供的API,最好有同一的规则,让开发者只要看过几个API后,基本能猜到剩余API的含义。稳定:最好在开始的时候就考虑好,不要轻易修改API,否则会给使用方造成麻烦。安全:设计时要考虑超出预

2021-07-13 14:25:40 3673

转载 IntellIJ IDEA 配置 Maven 以及 修改 默认 Repository***

IntellIJ IDEA 配置 Maven 以及 修改 默认 Repository***一.配置Maven环境1.下载apache-maven文件,选择自己需要的版本,地址: http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.zip2.解压1所下载文件,本人解压到:D:\server\maven\apache-maven-3.5.03.配置Maven环境变量a. MAVEN_HO

2021-05-12 10:19:53 3945

原创 Kafka集群安装

一、下载安装包下载地址:http://kafka.apache.org/downloads二、安装前提(ZooKeeper安装)Kafka当前版本Broker信息需要存放在ZooKeeper,因此需要先安装ZK。安装教程:https://blog.csdn.net/sinat_39809957/article/details/113545775从官网来看,很快Kafka就不会再依赖ZK了。三、安装1)下载安装包,下载地址:http://kafka.apache.org/downloads

2021-02-04 11:58:45 96

原创 Zookeeper完全分布式安装

Apache ZooKeeper是一个为分布式应用所设计开源协调服务,其设计目是为了减轻分布式应用程序所承担的协调任务。可以为用户提供同步、配置管理、分组和命名服务。1.环境说明在三台装有centos7.6(64位)服务器上安装ZooKeeper,官网建议至少3个节点,本次实验3台(主机数:3(要求3+,且必须是奇数,因为ZooKeeper选举算法))。需要提前安装jdk,本次实验安装的是jdk1.8.0_231。2.主机名和ip映射关系ZooKeeper集群所有结点作为一个整体对分布式应用提供

2021-02-02 11:31:35 410

转载 Zookeeper工作原理详解(转载)

1、Zookeeper的角色» 领导者(leader),负责进行投票的发起和决议,更新系统状态  » 学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票  » Observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度  » 客户端(client),请求发起方• Zook

2021-01-25 17:28:16 204

原创 Hadoop分布式物理机集群搭建(hdfs和yarn)版本:hadoop-3.3.0

Hadoop物理机集群搭建(hdfs和yarn)版本:hadoop-3.3.0准备工作:1.需要先安装jdk82.六台机器ssh相互信任3.关闭防火墙或者六台机器ip都加到白名单服务器配置(6台):168.61.1.11(用作NameNode和ResourceManager)168.61.1.12、168.61.1.13、168.61.1.14、168.61.1.15、168.61.1.16(用作DataNode和NodeManager)新的改变我们对Markdown编辑器进行了一些功能拓

2021-01-22 17:04:39 751

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除