自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

野狼e族 的博客

忙 是一种好事

  • 博客(111)
  • 资源 (6)
  • 收藏
  • 关注

原创 Flink窗口原理详解

Flink原理:窗口原理详解1 定义​ Flink 认为 Batch 是 Streaming 的一个特例,所以 Flink 底层引擎是一个流式引擎,在上面实现了流处理和批处理。而窗口(window)就是从 Streaming 到 Batch 的一个桥梁,将无界数据划分成有界数据。我们通过定义一个窗口,收集一批数据,并对这个窗口内的数据进行聚合类的计算。2 窗口分类2.1 Time WindowFlink 中窗口机制和时间类型是完全解耦的,也就是说当需要改变时间类型时不需要更改窗口逻辑相关的代码

2022-05-15 09:31:55 1324

原创 Flink窗口无法触发问题排雷

Flink窗口无法触发排雷1.序篇-先说结论博主希望你在看完本文后一定要养成这个编程习惯:使用 DataStream API 实现 Flink 任务时,Watermark Assigner 能靠近 Source 节点就靠近 Source 节点,尽量前置。要想问为啥,接着往下看!!!我从以下几个章节说明上述的问题以及为什么这样建议,希望能抛砖引玉,带给大家一些启发。⭐ 踩坑场景篇-这个坑是啥样的⭐ 问题排查篇-坑的排查过程⭐ 问题原理解析篇-导致问题的机制是什么⭐ 避坑篇-如何避免这种问题⭐

2022-02-18 14:34:49 4155 2

原创 Flink zookeeper HA 实现分析

Flink zookeeper HA 实现分析Zookeeper HA相关配置## 使用zk做HAhigh-availability: zookeeper## zk地址high-availability.zookeeper.quorum: node1:2181,node2:2181,node3:2181## flink在zk下的工作路径high-availability.zookeeper.path.root: /flink## 任务所在的HA路径high-availability.

2022-02-09 22:25:48 508

原创 Flink去重方案

MapState去重SQL去重HyperLogLog去重bitmap精确去重

2022-02-07 11:32:51 5793

原创 Flink与外部存储交互优化方案

在Flink流式程序设计中,经常需要与外部系统进行交互,很多时候外部系统的性能会成为任务整体吞吐的瓶颈,通常的解决方案会通过提高任务并发度增加对外部系统并发访问,如此会带来Flink额外的资源管理负载以及整体cpu利用率不高的问题。对于Flink与外部存储交互的场景,可以通过Flink 异步IO和单并发度多线程的机制提高任务吞吐能力,而不需要提高任务并发度从而提升整体资源利用率。一 Flink异步IO 对于Flink程序,通常的交互实现为同步请求,即发送一个请求,直到收到响应,继续处理,很多情况下

2022-02-06 22:01:22 1161 2

原创 HDFS Federation机制

HDFS Federation机制一 为什么引入联盟框架 ?1.1 hdfs的局限性Namespace(命名空间)的限制由于Namenode在内存中存储所有的元数据(metadata),因此单个Namenode所能存储的对象(文件+块)数目受到Namenode所在JVM的heap size的限制。50G的heap能够存储20亿(200 million)个对象,这20亿个对象支持4000个datanode,12PB的存储(假设文件平均大小为40MB)。随着数据的飞速增长,存储的需求也随之增长。单个d

2022-02-06 17:14:28 941

原创 flink双流JOIN原理

JOIN简介谈flink双流JOIN之前,我们先谈一下大家最熟悉的mysql表join,我们知道表join有如下几种,具体区别就不在介绍了。那么流的join和表的join有什么区别呢?本文我们介绍一下。CROSS JOIN - 交叉连接,计算笛卡儿积;INNER JOIN - 内连接,返回满足条件的记录;OUTER JOINLEFT - 返回左表所有行,右表不存在补NULL;RIGHT - 返回右表所有行,左边不存在补NULL;FULL -返回左表和右表的并集,不存在一边补...

2022-02-02 22:05:34 906 2

原创 Flink CDC 和 kafka 进行多源合并和下游同步方案

一、前言本文主要是针对 Flink SQL 使用 Flink CDC 无法实现多库多表的多源合并问题,以及多源合并后如何对下游 Kafka 同步更新的问题,因为目前 Flink SQL 也只能进行单表 Flink CDC 的作业操作,这会导致数据库 CDC 的连接数过多。但是 Flink CDC 的 DataStream API 是可以进行多库多表的同步操作的,本文希望利用 Flink CDC 的 DataStream API 进行多源合并后导入一个总线 Kafka,下游只需连接总线 kafka 就可以

2022-01-31 22:37:05 9396 4

原创 Flink Sql Gateway源码分析

Flink Sql Gateway是Flink集群的“任务网关”,支持以rest api的形式提交查询、插入、删除等任务。官网推荐与Flink jdbc driver搭配使用,不过jdbc driver限制了很多功能,如果自己开发数据平台,最好还是直接使用sql gateway。想要透彻的使用sql gateway,需要了解一下问题:1 如何处理并发请求?多个提交怎么处理?2 如何维护多个sql之间的关联性?3 sql字符串如何提交到集群形成代码4 sql-gateway都支持哪些功能?

2022-01-31 22:04:02 1048

原创 Apache Doris数据模型(二)

2、Doris介绍2.1 Doris简介Doris(原百度 Palo)是一款基于大规模并行处理技术的分布式 SQL 数据库,由百度在2017年开源,2018年8月进入 Apache 孵化器。(区别于DorisDB,Apache Doris 属于开源版本,属于DorisDB的标准版,目前一些公众号宣传的DorisDB属于商业版本,性能比Apache Doris好)主要整合了Google Mesa(数据模型),Apache Impala(MPP Query Engine)和Apache ORCFil

2021-04-06 16:58:35 1327

原创 Flink 检测一段时间内的温度连续上升输出报警

需求:Flink 检测10s 的温度连续上升,则输出报警方案:我们使用了keyBy函数,因为只有KeyedProcessFunction只能操作KeyedStream下面简单介绍一下KeyedStreamKeyedProcessFunction类型的上层父类是RichFunction, 对分流后每一个元素调用一次KeyedProcessFunction中的elementProcess方法,可以通过Context调用timeServier, 注册定时器, 获得当前水位线, 处理时间, 等信息。.

2021-04-06 16:37:09 1502

原创 Flink与外部存储交互优化

在Flink流式程序设计中,经常需要与外部系统进行交互,很多时候外部系统的性能会成为任务整体吞吐的瓶颈,通常的解决方案会通过提高任务并发度增加对外部系统并发访问,如此会带来Flink额外的资源管理负载以及整体cpu利用率不高的问题。对于Flink与外部存储交互的场景,可以通过Flink 异步IO和单并发度多线程的机制提高任务吞吐能力,而不需要提高任务并发度从而提升整体资源利用率。一、 Flink异步IO对于Flink程序,通常的交互实现为同步请求,即发送一个请求,直到...

2021-04-06 16:28:50 373

原创 Flink 数据积压问题

目录项目背景问题描述问题定位如何定位到底是哪个算子处理能力跟不上?结论问题解决思路解决项目背景将数据(kafka)以批量的方式,通过SCF接口写入TIDB中 过滤出指定的用户id,发到对应的规则检测kafka主题中整体的数据流程图,如下图所示:问题描述运行一段时间后发现,消费开始积压,通过wstream的监控(也可以查看kafka的监控)问题定位如何定位到底是哪个算子处理能力跟不上?我们明明写了...

2021-04-06 15:59:30 2524

原创 Flink checkpoint失败

目录前言问题描述问题定位checkpoint的基本原理思路现象问题解决前言Flink容错机制的核心部分是绘制分布式数据流和操作员状态的一致快照。这些快照充当一致的检查点,如果发生故障,系统可以回退到这些检查点。Flink绘制这些快照的机制在“分布式数据流的轻量级异步快照”中进行了介绍。它受用于分布式快照的标准Chandy-Lamport算法的启发,并且专门针对Flink的执行模型进行了量身定制。问题描述flink任务,从kafka中获取数据,经过处理,写...

2021-04-06 15:53:09 2083 1

原创 RocksDB

目录RocksDB 简介TiKV 架构RocksDB 的内存占用RocksDB 的空间占用RocksDB 后台线程与 CompactWriteStallRocksDB 简介RocksDB是由 Facebook 基于 LevelDB 开发的一款提供键值存储与读写功能的 LSM-tree 架构引擎。用户写入的键值对会先写入磁盘上的 WAL (Write Ahead Log),然后再写入内存中的跳表(SkipList,这部分结构又被称作 MemTable)。LSM-tree 引擎.

2021-04-06 15:40:49 1064

原创 Apache Doris 架构原理及特性(四)

5、架构原理5.1 Doris整体架构Doris主要分为FE和BE两个组件,FE主要负责查询的编译,分发和元数据管理(基于内存,类似HDFS NN);BE主要负责查询的执行和存储系统1、这张图是Doris的整体架构。Doris的架构很简洁,只设FE(Frontend)、BE(Backend)两种角色、两个进程,不依赖于外部组件,方便部署和运维。2、以数据存储的角度观之,FE存储、维护集群元数据;BE存储物理数据。3、以查询处理的角度观之, FE节点接收、解析查询请求,规划查询计划,调

2021-04-01 10:50:36 4173 2

原创 Apache Doris高级用法 (三)

4、高级用法4.1 添加RollupRollup 可以理解为 Table 的一个物化索引结构。物化 是因为其数据在物理上独立存储,而 索引 的意思是,Rollup可以调整列顺序以增加前缀索引的命中率,也可以减少key列以增加数据的聚合度。以下举例说明。原表table1的Schema如下:+----------+-------------+------+-------+---------+-------+| Field | Type | Null | Key ...

2021-04-01 10:22:04 1664

原创 Apache Doris 基础使用(一)

目录1.1 创建数据库1.2 建表1.2.1 单分区1.2.2 复合分区1.3 导入数据1.3.1 Broker 导入1.3.2 Routine 导入1.3.3 其他导入方式1.1 创建数据库### 1.1 创建数据库```sqlMySQL> CREATE DATABASE example_db;MySQL> SHOW DATABASES;+--------------------+| Database |+-----

2021-04-01 10:01:52 2031 1

原创 Impala/Presto/ES/kudu/Parquet TPC_DS基准测试

使用Impala/Presto/ES/kudu/Parquet基准测试目的本测试报告为调研OLAP性能测试报告,目的在于总结调研的几个存储查询方案的可用性。背景考虑到数据量的的增多以及用户并发操作给服务器造成压力,因此对kudu、parquet、presto、Es 等进行存储及查询的性能测试,在系统配置不变的情况下,观察各计算引擎的的操作耗时表现,便于对正确的进行技术选型与评估。环境准备本次测试方案的硬件环境使用三台物理机,系统为centos7,基础配置信息如下表:服务器.

2020-12-09 12:52:24 1851

原创 Nifi Processor | EvaluateJsonPath

解析json 中的属性值,并更新到flowfile 属性中。用法场景:1、从kafka 中读取flowfilecontent 中的json数据,传入EvaluateJsonPath2、B列是json 数据中的数据, A 列是需要设置到flowfile 的属性名。Return type 的选择:如果json 为单层字符串,则scalar或者auto-detect, 如果为多层或者值中存在列表或者对象类的值选择json注意:...

2020-06-13 21:22:21 988

原创 Nifi Processor | PutHiveQL

执行HiveQL DDL / DML命令(例如,UPDATE,INSERT)。传入的FlowFile的内容应该是要执行的HiveQL命令。HiveQL命令可能会使用?逃避参数。在这种情况下,要使用的参数必须作为具有命名约定hiveql.args.N.type和hiveql.args.N.value的FlowFile属性存在,其中N是正整数。hiveql.args.N.type应该是一个表示JDBC Type的数字。FlowFile的内容预计为UTF-8格式。用法:场景 :生成Hive Sql...

2020-06-13 21:17:56 801

原创 Nifi Processor | PutS3Object

需求: 从kafka读取数据,根据内容路由再压缩后,put 到s3 中。流程图。1、使用Kakfa 读取数据2、在RouteTxt 中,根据要求过滤掉不需要的数据3、在CompressContent 中进行数据压缩后,流入下一个环节。这里配置使数据压缩为gzip 文件。4、使用MergeContent ,将数据每 128M合并为一个块数据。(注意:虽然MergeContent提供压缩,但是压缩后的文件无法提供给Spak 使用,所以使用CompressContent ...

2020-06-13 21:16:03 383 1

原创 Nifi Processor | RouteText 与 RouteOnContent

RouteText 根据一组用户定义的规则路由文本数据。传入的FlowFile中的每一行都与用户定义的Properties指定的值进行比较。将文本与这些用户定义的属性进行比较的机制由“匹配策略”定义。然后根据这些规则路由数据,分别路由文本的每一行RouteOnContent,将正则表达式应用于FlowFile的内容,并将FlowFile的副本路由到其正则表达式匹配的每个目标。正则表达式作为用户定义的属性添加,其中属性的名称是关系的名称,值是正则表达式以匹配Fl...

2020-06-13 21:13:37 800

转载 Hive 拉链表

想总结一下拉链表 的使用,但今天太懒不想手写,看到一篇思路清晰非常不错的文章,转载一下,供大家阅读。。。背景拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的;顾名思义,所谓拉链表,就是记录历史。记录一个事务从开始一直到当前状态的所有变化的信息。拉链表可以避免按每一天存储所有记录造成的海量存储问题,同时也是处理缓慢变化数据(SCD2)的一种常见方式。应用场...

2020-04-23 11:16:13 457

原创 Mysql 实时同步到大数据数仓

如何能够做到数据的实时同步呢?我们想到了MySQL主从复制时使用的binlog日志,它记录了所有的 DDL 和 DML 语句(除了数据查询语句select、show等),以事件形式记录,还包含语句所执行的消耗时间下面来看一下MySQL主从复制的原理,主要有以下几个步骤: master(主库)在每次准备提交事务完成数据更新前,将改变记录到二进制日志(binary log)中 sla...

2019-11-15 19:09:04 1419

转载 Mqtt Qos 深度解读

1.QoS含义 :Quality of Service,服务质量2.作用域发布者的Qos订阅者的Qos3.等级与作用level 0:最多一次的传输level 1:至少一次的传输,(鸡肋)level 2: 只有一次的传输4.交互过程qos0对于qos1而言,对于client而言,有且仅发一次publish包,对于broker而言,有且仅发一次publish...

2019-09-29 17:01:04 993 1

转载 分组消费的再平衡策略

从kafka消费消息,kafka客户端提供两种模式:分区消费,分组消费。分区消费对应的就是我们的DirectKafkaInputDStream分组消费对应的就是我们的KafkaInputDStream消费者数目跟分区数目的关系:1),一个消费者可以消费一个到全部分区数据2),分组消费,同一个分组内所有消费者消费一份完整的数据,此时一个分区数据只能被一个消费者消费,而一个消费者...

2019-09-29 16:57:03 414

原创 为什么 Kafka 速度那么快?

Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率。即使是普通的服务器,Kafka也可以轻松支持每秒百万级的写入请求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。针对Kafka的基准测试可以参考,Apache Kafka基准测试:每秒写入2百...

2019-09-29 14:47:33 133

原创 Hive中Join的原理和机制

Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join)。本文简单介绍一下两种join的原理和机制。Hive Common Join如果不指定MapJoin或者不符合MapJoin的条件,那么Hive解析器会将Join操作转换成Common Join,即:在Reduce阶段完成join.整个过程包含Map、Sh...

2019-09-29 13:44:09 1683

原创 fsimage与editlog详解

1 概述HDFS中的NameNode被称为元数据节点DataNode称为数据节点。NameNode维护了文件与数据块的映射表以及数据块与数据节点的映射表,而真正的数据是存储在DataNode上。对于NameNode如何存储这些信息,它维护两个文件,一个是fsimage,一个是editlog。2 fsimage与editlog作用fsimage保存了最新的元数据检查点,在HDFS启...

2019-09-29 13:26:46 848

转载 HDFS 基本原理

随着互联网的发展,数据日益增多,增长超过了单机能够处理的上线,数据如何存储和处理成为了科技公司的难题,随着google的三篇论文的发布,大家终于找到了一个方案-分布式文件系统+MapReduce。Hadoop是参考google论文实现的,集成了分布式文件系统与分布式批处理平台。hadoop的设计目标是用来解决大文件海量存储和批处理的,为了避免单个节点故障导致数据丢失,设计副本冗余机制。 本文将主要...

2019-09-29 12:30:55 342

原创 Airflow介绍

主要功能 使用Python代码动态生成DAG,可以做到更加灵活的配置和某种意义上的简单配置DAG。 丰富的Operator、Hook,支持非常多的第三方组件,能满足多种需求。 支持Apache Atlas,实现数据追踪。 具有方便的任务失败重试功能,及任务失败时自动发送报警邮件通知。 功能较为完善,支持命令行操作,以及REST请求触发DAG。 ...

2019-09-29 11:01:42 25704

原创 BashOperator实例

特别注意:bash_command 命令后需要添加一个 空格,否则会报错# -*- coding: utf-8 -*-from datetime import timedeltaimport airflowfrom airflow import DAGfrom airflow.operators.bash_operator import BashOperatordefault_a...

2019-09-29 10:59:32 943

原创 Airflow PythonOperator、BashOperator以及Xcom使用

需求:外界传入参数,PythonOperator 根据参数查询数据库得出结果, BashOperator 根据pythonOperator查询的结果当作参数去打包下载HDFS 的 文件。分析:(1)provide_context=True : 外界传参数,需要使用PythonOperator 的provide_context=True 来获取外界参数。provide_context 默认...

2019-09-29 10:58:37 7425

转载 Spark RDD上的map operators是如何pipeline起来的

问题 :作用在一个RDD/DataFrame上的连续的多个map是在对数据的一次循环遍历中完成的还是需要多次循环?回答:不需要多次循环,spark会将多个map操作pipeline起来apply到rdd partition的每个data element上。我们从DAGScheduler的submitStage方法开始,分析一下map operators(包括map, filter, flatM...

2019-03-28 21:25:05 215

原创 spark 广播变量的设计和实现

spark 官网上对 广播变量的描述Broadcast variables allow the programmer to keep a read-only variable cached on each machinerather than shipping a copy of it with tasks. They can be used, for example, to give ev...

2019-03-28 21:18:59 2744

原创 sparksql执行流程分析

Spark sql是spark内部最核心,也是社区最活跃的组件。Spark SQL支持在Spark中执行SQL,或者HiveQL的关系查询表达式。列式存储的类RDD(DataSet/DataFrame)数据类型以及对sql语句的支持使它更容易上手,同时,它对数据的抽取、清洗的特性,使它广泛的用于etl,甚至是机器学习领域。因此,saprk sql较其他spark组件,获得了更多的使用者。...

2019-03-28 21:12:17 3259

原创 Processor | InvokeScriptedProcessor 使用

作用:可以自定义组件, 以下是模拟 LookupAttrbution 的功能.from org.apache.nifi.processor import Processorfrom org.apache.nifi.processor import Relationshipfrom org.apache.nifi.components import PropertyDescriptorf...

2019-01-01 15:42:28 630 1

原创 Nifi的主要优缺点

Nifi的主要优点有:A.可视化的UI界面,各个模块组件之间高度可配置,且每个流程都有监控,可以通过界面直观的看到各个数据处理模块之间的数据流转情况,分析出程序性能瓶颈。B.数据流可以在UI界面自由拖拽和拓展,各模块之间相互独立,互不影响。C.可以在处理耗时的地方创建多个处理模块并行执行,提升处理速度。类似于代码中加入了多线程,但相对于修改代码,界面配置操作十分简单。D.修改方便,...

2019-01-01 15:38:47 13888

原创 PythonOperator、BashOperator以及Xcom使用

 需求:外界传入参数,PythonOperator 根据参数查询数据库得出结果, BashOperator 根据pythonOperator查询的结果当作参数去打包下载HDFS 的 文件。分析:(1)provide_context=True : 外界传参数,需要使用PythonOperator 的provide_context=True 来获取外界参数。 provide_context...

2019-01-01 15:37:23 2838

CM安装Hue测试hue数据库连接异常使用; .zip

CM安装Hue测试hue数据库连接异常使用;

2020-07-16

ActiveMQ 之Spring结合实例

包括1、ActiveMQ java实例 2、ActiveMQ Spring结合实例 3、代码亲测,无问题。 4、资源分5分绝对值 注意:请先安装ActiveMQ 服务。

2018-01-24

仿百度文库在线浏览文档 flexpager

下载配置配置环境后即可运行,亲测

2016-12-29

SSM 框架整合 仿QQ空间

后端技术:Spring+SpringMVC+Mybatis+Mysql 前端技术:jstl+jsp+jquery+js 课程设计项目,内含课程设计全套内容。无错误,有错误找我

2016-07-03

SSH 整合 仿QQ空间

后端技术:Spring+Hibernate+Struts2 +sqlserver 前端技术:jsp+strut2标签 适用于课程设计项目,内含数据库。不含错误,错误找我

2016-07-03

SSM框架仿QQ空间

后端技术:Spring+SpringMVC+Mybatis+Mysql 前端技术:jquery+html+css+js+jstl 适用于SSM刚入门的同学学习。课程设计,内含课程设计全套内容。没问题。有问题找我

2016-07-03

空空如也

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

TA关注的人

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