初入Flink Table && SQL
QuickStart
Table API 和 SQL 需要引入的依赖有两个:planner 和 bridge。
12345678910<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-scala-bridge_${scala.version}</artifactId> <version>${flink.version}</version></dependency><dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-planner_${scala.version}</artifactId> <version>${flink. ...
Flink调优
内存设置(1CPU配置4G内存)
bin/flink run \
-t yarn-per-job \
-d \
-p 5 \ 指定并行度
-Dyarn.application.queue=test \ 指定yarn队列
-Djobmanager.memory.process.size=2048mb \ JM2~4G足够
-Dtaskmanager.memory.process.size=6144mb \ 单个TM2~8G足够
-Dtaskmanager.numberOfTaskSlots=2 \ 与容器核数1core:1slot或1core:2slot
-c com.atguigu.app.dwd.LogBaseApp \
/opt/module/gmall-flink/gmall-realtime-1.0-SNAPSHOT-jar-with-dependencies.jar
Flink是实时流处理,关键在于资源情况能不能抗住高峰时期每秒的数据量,通常用QPS/TPS来描述数据情况。
...
Flink Cluster With YARN
在YARN部署模式中,有三种部署方式:
in Application Mode
in Session Mode
in a Per-Job Mode (deprecated)
YARN模式独立(Standalone)模式由 Flink 自身提供资源,无需其他框架,这种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但我们知道,Flink 是大数据计算框架,不是资源调度框架,这并不是它的强项;所以还是应该让专业的框架做专业的事,和其他资源调度框架集成更靠谱。而在目前大数据生态中,国内应用最为广泛的资源管理平台就是 YARN 了。所以接下来我们就将学习,在强大的 YARN 平台上 Flink 是如何集成部署的。
整体来说,YARN 上部署的过程是:客户端把 Flink 应用提交给 Yarn 的ResourceManager, Yarn 的 ResourceManager 会向 Yarn 的 NodeManager 申请容器。在这些容器上,Flink 会部署JobManager 和 TaskManager 的实例,从而启动集群。Flink 会根据运行在 JobManger 上的作 ...
Doris中的索引
不同于传统的数据库设计,Doris 不支持在任意列上创建索引。Doris 这类 MPP 架构的 OLAP 数据库,通常都是通过提高并发,来处理大量数据的。
Doris 支持比较丰富的索引结构,来减少数据的扫描:
Sorted Compound Key Index,可以最多指定三个列组成复合排序键,通过该索引,能够有效进行数据裁剪,从而能够更好支持高并发的报表场景
Z-order Index :使用 Z-order 索引,可以高效对数据模型中的任意字段组合进行范围查询
Min/Max :有效过滤数值类型的等值和范围查询
Bloom Filter :对高基数列的等值过滤裁剪非常有效
Invert Index :能够对任意字段实现快速检索
前缀索引基本概念不同于传统的数据库设计,Doris 不支持在任意列上创建索引。Doris 这类 MPP 架构的 OLAP 数据库,通常都是通过提高并发,来处理大量数据的。
本质上,Doris 的数据存储在类似 SSTable(Sorted String Table)的数据结构中。该结构是一种有序的数据结构,可以按照指定的列进行排序存储。在 ...
测试Flink Doris Connector
利用Flink Doris Connector将Kafka中的数据实时导入到Doris
该Connector支持Flink SQL和DataStream API
注意:
修改和删除只支持在 Unique Key 模型上
目前的删除是支持 Flink CDC 的方式接入数据实现自动删除,如果是其他数据接入的方式删除需要自己实现。Flink CDC 的数据删除使用方式参照本文档最后一节
Maven1234567891011121314151617181920212223242526272829303132<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>${flink.version}</version> <scope>provided</scope></dependency>< ...
初识Doris
MPP( Massively Parallel Processing - 大规模并行处理)Based高性能、实时的分析型数据库。
在使用接口方面,Doris 采用 MySQ L 协议,高度兼容 MySQL 语法,支持标准 SQL,用户可以通过各类客户端工具来访问 Doris,并支持与 BI 工具的无缝对接。
在存储引擎方面,Doris 采用列式存储,按列进行数据的编码压缩和读取,能够实现极高的压缩比,同时减少大量非相关数据的扫描,从而更加有效利用 IO 和 CPU 资源。
在查询引擎方面,Doris 采用 MPP 的模型,节点间和节点内都并行执行,也支持多个大表的分布式 Shuffle Join,从而能够更好应对复杂查询。
Doris 查询引擎是向量化的查询引擎,所有的内存结构能够按照列式布局,能够达到大幅减少虚函数调用、提升 Cache 命中率,高效利用 SIMD 指令的效果。在宽表聚合场景下性能是非向量化引擎的 5-10 倍。
Doris 采用了 Adaptive Query Execution 技术, 可以根据 Runtime Statistics 来 ...
初入用户画像
用户画像
应用场景
精准营销
数据化运营
推荐系统
广告投放
产品布局
行业报告
场景间的共性
平台用户画像(用户群体画像)
统计整个平台的用户画像,更了解我们的用户
性别比例
年龄分布
城市分布
手机系统、型号分布
用户个体画像
标签的存储
用户画像标签表
1、存储到HBase - 根据UserID查询标签,用于个性化广告、推荐系统
列族:user、item(商品标签列族)
RowKey:userID
Cloumn:标签名 + 标签值
2、存储到Elasticsearch - 倒排索引,根据标签,圈定人群
标签信息表(标签元数据)- 存储到MySQL
TagId, TagName, TagDesc
384 男 用户的性别为男性
385 女 用户的性别为女性
Yarn容量调度器和公平调度器的异同
理想情况下,我们应用对Yarn资源的请求应该立刻得到满足,但现实情况资源往往是有限的,特别是在一个很繁忙的集群,一个应用资源的请求经常需要等待一段时间才能的到相应的资源。在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择。
Capacity Scheduler(容量调度器)对于Capacity调度器,有一个专门的队列用来运行小任务,但是为小任务专门设置一个队列会预先占用一定的集群资源,这就导致大任务的执行时间会落后于使用FIFO调度器时的时间。用这个资源调度器,就可以配置yarn资源队列,这个后面后介绍用到。
Fair Scheduler(公平调度器)Fair调度器的设计目标是为所有的应用分配公平的资源(对公平的定义可以通过参数来设置)。当然,公平调度在也可以在多个队列间工作。
举个例子,假设有两个用户A和B,他们分别拥有一个队列。当A启动一个job而B没有任务时,A会获得全部集群资源;当B启动一个job后,A的job会继续运行,不过一会儿之后两个任务 ...
HBase如何实现MVCC?
HBase的事务一致性保证HBase 是一个强一致性数据库,不是“最终一致性”数据库,官网给出的介绍
每个值只出现在一个 Region
同一时间一个 Region 只分配给一个 RS
行内的 mutation 操作都是原子的
HBase 降低可用性提高了一致性。
当某台 RS fail 的时候,它管理的 Region failover 到其他 RS 时,需要根据 WAL(Write-Ahead Logging)来 redo (redolog,有一种日志文件叫做重做日志文件),这时候进行 redo 的 Region 应该是不可用的,所以 HBase 降低了可用性,提高了一致性。
设想一下,如果 redo 的 Region 能够响应请求,那么可用性提高了,则必然返回不一致的数据(因为 redo 可能还没完成),那么 HBase 就降低一致性来提高可用性了。
HBase MVCC实现流程数据库为了保证一致性,在执行读写操作时往往会对数据做一些锁操作,比如两个client同时修改一条数据,我们无法确定最终的数据到底是哪一个client执行的结果,所以需要通过加锁来保证数据的一致性。
...
hexo不显示语雀图床CDN图片的解决办法
前言在语雀中写了一点东西,于是想着一起发到hexo上面,本地Typora显示完全没有问题,但是打开博客一看,图片全挂了!!!
于是复制图片链接到浏览器上,竟然是直接下载,什么情况,直接懵逼。又试了试正常显示的图片,是在浏览器打开的。Google了半天,原来是语雀的防盗链搞得。
解决方法1、在Hexo的.md文件加上<meta name="referrer" content="no-referrer" />
可以在post模板中直接加上,就像下面这样,每次hexo new post创建都会自动加上,就不用每次都添加了。
123456789101112131415---title: tags: - ''categories: - []top_img: date: updated: cover:description:keywords:--- <meta name="referrer" content="no-referrer" />
2、以<img ...