- 博客(278)
- 资源 (5)
- 收藏
- 关注
原创 MySQL对时间的处理总结
1、to_days函数查询今天的数据:select * from 表名 where to_days(时间字段名) = to_days(now()); to_days函数:返回从0000年(公元1年)至当前日期的总天数2、DAYOFWEEK(date) ,返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。3、WEEKDAY(date) ,返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。4、DAYOFMONTH(date)
2020-07-22 22:46:45
302
原创 MySQL5.7:of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘userinfo.
only_full_group_by说明:only_full_group_by : 使用这个就是使用和oracle一样的group 规则, select的列都要在group中,或者本身是聚合列(SUM,AVG,MAX,MIN) 才行,其实这个配置目前个人感觉和distinct差不多的,所以去掉就好...
2020-07-22 20:19:27
167
原创 通过SparkListener监控spark应用
监控spark应用的方式比较多,比如spark on yarn可以通过yarnClient api监控。这里介绍的是spark内置的一种监控方式如果是sparkStreaming,对应的则是streamingListenerpackage cn.com.kong;import org.apache.spark.SparkConf;import org.apache.spark.scheduler.*;import org.apache.spark.sql.SaveMode;impor
2020-07-22 00:53:26
1404
原创 Spark 自定义外部数据源2
Data Source APIBasic InterfacesBaseRelation:展示从DataFrame中产生的底层数据源的关系或者表。定义如何产生schema信息。或者说是数据源的关系。 RelationProvider:获取参数列表,返回一个BaseRelation对象。 TableScan:对数据的schame信息,进行完整扫描,返回一个没有过滤的RDD。 DataSourceRegister:定义数据源的简写。ProvidersSchemaRelationProv
2020-07-21 23:17:01
651
原创 spark自定义RDD
一、为什么需要自定义RDD1. spark提供了很多方法读数据源,比如我们当前可以从hdfs文件、jdbc、mongo、hbase等等将数据包装成RDD供我们后续进行处理。如果我们想要读memcache中的数据恐怕就没有现成的了,需要我们自己实现自己的RDD。2. RDD是一种弹性分布式数据集,本质就是对数据的封装与抽象。讲道理我们可以将任何我们想要的数据按照我们的业务情况将数据进行分片,而不是对spark的API深度依赖。二、搭建项目本demo完成功能:...
2020-07-21 17:32:05
599
原创 Spark SQL自定义外部数据源
1 涉及到的API 1 2 BaseRelation: In a simple way, we can say it represents the collection of tuples with known schema TableScan: provides a way to scan the data and generates the RDD[Row] from the data<br> RelationProvider: takes .
2020-07-21 17:28:52
373
原创 Prometheus 问题
问题一 :context deadline exceededGet http://192.168.90.177:9100/metrics: context deadline exceeded解决办法:有可能端口未开放,指定其他端口[root@localhost ~]#./node_exporter--web.listen-address=":8080" &问题二:read: connection reset by peerGet http://192.168.110.85:...
2020-07-21 17:21:45
6066
原创 spark 处理avro
<dependency><groupId>io.confluent</groupId><artifactId>kafka-avro-serializer</artifactId><version>3.0.0</version></dependency>
2020-07-20 17:43:45
254
原创 spark代码执行过程(Driver , Execute)
我们自己编写了spark代码后;放到集群中一执行,就会出现问题,没有序列化、指定的配置文件不存在、classnotfound等等。这其实很多时候就是因为我们对自己编写的spark代码执行流程的不熟悉导致的,源码阅读可以解决,但源码不是每个人都能看懂或能看进去的,下面我们就来讲一下,我们自己写的spark代码究竟是这么执行的。从执行的过程可分为三个部分来分析main方法,RDD处理方法,DStream处理方法,从执行的JVM虚拟机可以分为两个部分driver端,worker端一、main方法mai
2020-07-16 02:05:30
944
原创 Flink与Spark Streaming在与kafka结合的区别!
本文主要是想聊聊flink与kafka结合。当然,单纯的介绍flink与kafka的结合呢,比较单调,也没有可对比性,所以的准备顺便帮大家简单回顾一下Spark Streaming与kafka的结合。看懂本文的前提是首先要熟悉kafka,然后了解spark Streaming的运行原理及与kafka结合的两种形式,然后了解flink实时流的原理及与kafka结合的方式。kafkakafka作为一个消息队列,在企业中主要用于缓存数据,当然,也有人用kafka做存储系统,比如存最近七天的数据。kaf
2020-07-16 01:28:55
1196
原创 自定义 Data Source
准备工作我们先来看下 Flink 从 Kafka topic 中获取数据的 demo,首先你需要安装好了 FLink 和 Kafka 。运行启动 Flink、Zookepeer、Kafka,好了,都启动了!maven 依赖 1234567891011121314151617181920212223242526272829303132333435363738 <!--f
2020-07-15 23:30:12
416
原创 flink自定义 sink
准备工作我们先来看下 Flink 从 Kafka topic 中获取数据的 demo,首先你需要安装好了 FLink 和 Kafka 。运行启动 Flink、Zookepeer、Kafka,好了,都启动了!数据库建表 12345678 DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `id` int(11) unsigned NOT NULL AUTO_INCRE
2020-07-15 23:28:18
1397
原创 Flink 1.11 新特性详解:【非对齐】Unaligned Checkpoint 优化高反压
问题导读1.Barrier 对齐会造成什么问题?2.Barrier 对齐是否会造成反压?3.如何理解Unaligned Checkpoint ?作为 Flink 最基础也是最关键的容错机制,Checkpoint 快照机制很好地保证了 Flink 应用从异常状态恢复后的数据准确性。同时 Checkpoint 相关的 metrics 也是诊断 Flink 应用健康状态最为重要的指标,成功且耗时较短的 Checkpoint 表明作业运行状况良好,没有异常或反压。然而,由于 Checkpoint 与反压的耦
2020-07-15 23:18:37
1072
原创 《设计数据密集型应用》第三章(1) 存储索引:LSM-tree
本章主要解决的是如何为应用选择一个合适的数据库,使之能够正确地进行数据的存储和检索。不同的数据库的工作方式可能会差异很大,因此我们作为开发者需要对每个数据库的特性了然于胸,才能选择到适合应用的数据库。本节内容先介绍数据结构和索引的相关知识。数据库的数据结构先从一个世界上最简单的数据库来引起话题,这两个bash函数就实现了一个数据库:#!/bin/bashdb_set () { echo "$1,$2" >> database}db_get () { .
2020-07-13 13:39:29
296
2
原创 Scala之 闭包
定义 函数在变量不处于其有效作用域时,还能够对变量进行访问,即为闭包;也就是说,变量超出了其作用域,还可以使用,就是闭包现象。 可能针对的使用场景之一? 比方说,年底了,公司针对每个部门的奖金是不同。比方说,销售部门奖金为10000,研发部门是15000,测试部门12000等,就可以使用闭包来实现例子,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14..
2020-07-12 00:30:26
503
原创 flink table parse模块中,LPAREN RPAREM
在看 flink table parse模块的时候出现一些常量词,词典也搜不到
2020-07-09 18:21:02
234
原创 查找两个链表相同部分
给定两个有序单向链表,链表的头指针分别为head1和head2,请您找出两个链表的公共部分并输出。参考答案:思路这道理其实挺简单的,因为两个链表都是有序的,所以咱们不放可以从两个链表的头开始,步骤如下:如果head1的值小于head2,则head1往下移动;如果head2的值小于head1,则head2往下移动;如果head1和head2的值相等,则打印这个值,然后head1和head2都往下移动;head1或者head2有任何一个节点移动到null,则整个过程就结束了。...
2020-07-06 17:38:17
1556
原创 python notebook 在加载ipynb文件 报错NotJSONError(‘Notebook does not appear to be JSON: \‘\\ufeff{“nbformat“
使用json格式化工具格式化,将特殊 空格 换行 符号替换。sublime打开ipynb,将文件改为 utf8格式。
2020-07-04 00:38:56
9584
原创 idea 看源码关系uml插件推荐 code iris
最近看源码就想找个uml的类图工具,网上看了一些,发现都是一些单个类的继承关系图,如果不知道的朋友,可以用uml插件工具搜索uml即可(uml support),然后每次点击右键后在菜单下面找Diagrams,但是我们今天介绍的不是这个,而是另外一个不错的插件,叫code iris。这个是可以显示整个工程所有类关系图的插件。插件中心查找我的是已经安装过了,没有安装的可以浏览所有的,并查找用法:这个工具用法比较独特,在点击右键中找不到对应的菜单进行操作。而是在右边有一个菜单,如下.
2020-07-02 16:32:43
3628
原创 Flink架构,源码及debug
工作中用Flink做批量和流式处理有段时间了,感觉只看Flink文档是对Flink ProgramRuntime的细节描述不是很多, 程序员还是看代码最简单和有效。所以想写点东西,记录一下,如果能对别人有所帮助,善莫大焉。 说一下我的工作,在一个项目里我们在Flink-SQL基础上构建了一个SQL Engine, 使懂SQL非技术人员能够使用SQL代替程序员直接实现Application, 然后在此基础上在加上一些拖拽的界面,使不懂SQL非技术人员利用拖拽实现批量或流式数据处理的Appl...
2020-07-02 01:12:16
1911
1
原创 Flink的窗口算子 WindowOperator的实现原理
窗口算子WindowOperator是窗口机制的底层实现,它几乎会牵扯到所有窗口相关的知识点,因此相对复杂。本文将以由面及点的方式来分析WindowOperator的实现。首先,我们来看一下对于最常见的时间窗口(包含处理时间和事件时间)其执行示意图:上图中,左侧从左往右为事件流的方向。方框代表事件,事件流中夹杂着的竖直虚线代表水印,Flink通过水印分配器(TimestampsAndPeriodicWatermarksOperator和TimestampsAndPunctuatedWatermark
2020-07-02 01:11:00
485
转载 Flink WindowOperator 源码分析
0x1 摘要WindowOperator可以说是Flink窗口功能非常核心核心的类,是窗口功能源码的一条主线,延着这条主线去慢慢看源码会轻松很多。注:此文基于Flink 1.4.2 版本源码。0x2 WindowOperator 类结构分析先来看一下类结构图,可以使用idea来生成类图,下图经过稍微加工,去掉一些不重要类的结构图:我们核心重点关注以下一个接口:OneInputStreamOperatorpublic interface OneInputStreamOperator<
2020-07-02 01:10:14
295
原创 Flink 原理与实现:Window 机制
Flink 认为 Batch 是 Streaming 的一个特例,所以 Flink 底层引擎是一个流式引擎,在上面实现了流处理和批处理。而窗口(window)就是从 Streaming 到 Batch 的一个桥梁。Flink 提供了非常完善的窗口机制,这是我认为的 Flink 最大的亮点之一(其他的亮点包括消息乱序处理,和 checkpoint 机制)。本文我们将介绍流式处理中的窗口概念,介绍 Flink 内建的一些窗口和 Window API,最后讨论下窗口在底层是如何实现的。什么是 Window
2020-07-02 01:09:27
180
原创 Flink 之 KeyedState 的使用
场景:不使用 Flink 提供的 sum() 方法,使用 KeyedState 完成对单词分组求和计算操作。代码:/*** TODO 不使用 Flink 提供的sum()方法,对单词进行分组求和计算。** @author liuzebiao* @Date 2020-2-17 11:42*/public class KeyedStateDemo { public static void main(String[] args) throws Excepti...
2020-07-02 01:08:29
1031
原创 【数据仓库】元数据血缘分析
现在数据仓库基本上采用Hadoop平台了,那么数据仓库里面元数据的血缘分析的思路有哪些呢基本上有下面这两种思路:1、解析hql脚本,通过正则表达式去匹配每一行字符串2、采用Hadoop自带的语法分析类解析这里比较建议采用第二种,比较直接简单,因为第一种方式比较复杂,需要考虑场景比较多,容易出现遗漏Hadoop 自带的类 org.apache.hadoop.hive.ql.tools.LineageInfo将hql语句通过解析语法tree,获取hive表的源表和目标表,达到血缘.
2020-07-02 01:07:01
2602
原创 【源码解析】Flink 滑动窗口数据分配到多个窗口
之前一直用翻滚窗口,每条数据都只属于一个窗口,所有不需要考虑数据需要在多个窗口存的事情。刚好有个需求,要用到滑动窗口,来翻翻 flink 在滑动窗口中,数据是怎么分配到多个窗口的一段简单的测试代码:val input = env.addSource(kafkaSource) val stream = input .map(node => { Event(node.get("id").asText(), node.get("createTime").
2020-07-02 01:05:18
810
1
原创 分类和聚类的区别
前言机器学习中有两类的大问题,一个是分类,一个是聚类。在我们的生活中,我们常常没有过多的去区分这两个概念,觉得聚类就是分类,分类也差不多就是聚类,下面,我们就具体来研究下分类与聚类之间在数据挖掘中本质的区别。一、分类分类有如下几种说法,但表达的意思是相同的。分类(classification):分类任务就是通过学习得到一个目标函数f,把每个属性集x映射到一个预先定义的类标号y中。分类是根据一些给定的已知类别标号的样本,训练某种学习机器(即得到某种目标函数),使它能够对未知类别的...
2020-07-02 01:03:12
7409
原创 Flink自定义Window----自定义Evictor(驱逐者)
在看flink Window 机制的相关博客时,看到有个同学的需求很有趣,"如何让一个DataStream中的某个字段与21天前的该字段做比较?"该同学给定了一个大小21天,每一天滑动一次的window解决方案:在其TimeWindow上进行修改,挖空中间不需要的20天,整出来一个门字形的TimeWindow,这样只剩下第一天和最后一天的两个门脚数据,以进行后续的操作,如比较具体实现依靠自定义Evictor实现,这样只需要应用该GantryTimeEvictor 即可keyed
2020-07-02 01:01:15
856
原创 【数据仓库】元数据血缘分析
现在数据仓库基本上采用Hadoop平台了,那么数据仓库里面元数据的血缘分析的思路有哪些呢基本上有下面这两种思路:1、解析hql脚本,通过正则表达式去匹配每一行字符串2、采用Hadoop自带的语法分析类解析这里比较建议采用第二种,比较直接简单,因为第一种方式比较复杂,需要考虑场景比较多,容易出现遗漏Hadoop 自带的类 org.apache.hadoop.hive.ql.tools.LineageInfo将hql语句通过解析语法tree,获取hive表的源表和目标表,达到血缘.
2020-07-01 17:37:51
1973
原创 Neo4j 数据血缘分析可视化
用工具获取数据的血缘关系 用Neo4j可视化添加节点 CREATE (PRODUCT:TABLES {title:'PRODUCT', tagline:'once upon a time'}) CREATE (PROFIT_RATE_89:TABLE1 {name:'PRODUCT', id_:89,column_name:'PROFIT_RATE'}) CREATE (PROFIT_RATE_75:TABLE2 {name:'TMP_TABLE', id_:75,c..
2020-07-01 17:36:24
3483
原创 深入理解Flink中的状态实现
state的层次结构 keyedState => windowState OperatorState => kafkaOffset stateBackend snapshot/restore internalTimerService RocksDB操作的初探 state ttL state local recovery QueryableState increamental checkpoint state redistribution broadcasting stat
2020-07-01 17:35:20
346
1
原创 Flink原理与实现:Flink中的状态管理,keygroup,namespace
namespace维护每个subtask的状态上面Flink原理与实现的文章中,有引用word count的例子,但是都没有包含状态管理。也就是说,如果一个task在处理过程中挂掉了,那么它在内存中的状态都会丢失,所有的数据都需要重新计算。从容错和消息处理的语义上(at least once, exactly once),Flink引入了state和checkpoint。首先区分一下两个概念,state一般指一个具体的task/operator的状态。而checkpoint则表示了一个Flin.
2020-07-01 17:34:23
2109
1
转载 flink维表关联系列之Hbase维表关联:LRU策略
维表关联系列目录:一、维表服务与Flink异步IO二、Mysql维表关联:全量加载三、Hbase维表关联:LRU策略四、Redis维表关联:实时查询五、kafka维表关联:广播方式六、自定义异步查询LRULRU(Least Recently Used),最近最少使用缓存淘汰算法,认为最近访问过的数据在将来被访问的概率也比较大,当内存达到上限去淘汰那些最近访问较少的数据。在Flink中做维表关联时,如果维表的数据比较大,无法一次性全部加载到内存中,而在业务上也允许一定数据的延时,那么就可以
2020-06-30 01:45:39
1764
原创 Flink通过异步IO实现redis维表join
使用flink做实时数仓的公司越来越多了,浪尖这边也是很早就开发了一个flink 全sql平台来实现实时数仓的功能。说到实时数仓,两个表的概念大家一定会知道的:事实表和维表。在实时数仓中,事实表就是flink消费的kafka的topic数据流,而维表和离线数仓一样,就是mysql等外部存储的维表。当flink 事实表需要 使用维表来进行染色的时候,就需要flink 与维表进行join,这是需要注意与外部系统的通信延迟不会影响流应用程序的整体工作。直接访问外部数据库中的数据,例如在MapFunct
2020-06-30 01:41:57
1663
原创 Flink基于RocksDB的增量检查点机制
Flink之所以能够做到高效而准确的有状态流式处理,核心是依赖于检查点(checkpoint)机制。当流式程序运行出现异常时,能够从最近的一个检查点恢复,从而最大限度地保证数据不丢失也不重复。Flink检查点本质上是通过异步屏障快照(asychronous barrier snapshot, ABS)算法产生的全局状态快照,一般是存储在分布式文件系统(如HDFS)上。但是,如果状态空间超大(比如key非常多或者窗口区间很长),检查点数据可能会达到GB甚至TB级别,每次做checkpoint都会非常耗时。
2020-06-30 01:39:43
1088
原创 RocksDB介绍
RocksDB简介RocksDB是基于C++语言编写的嵌入式KV存储引擎,它不是一个分布式的DB,而是一个高效、高性能、单点的数据库引擎。它是由Facebook基于Google开源的kv存储LevelDB开发开发。RocksDB使用LSM存储引擎。它针对不同的生产环境进行调优,可以直接使用内存、也可以使用Flash、或者用硬盘或者HDFS。而且支持不同的压缩算法,有一整套的工具用于生产、调试使用。RocksDB是一种嵌入式、KV型、持久化的存储。使用嵌入式的数据存储原因有很多,当数据频繁访问内存、或
2020-06-30 01:33:25
3309
3
原创 Flink - RocksDBStateBackend
如果要考虑易用性和效率,使用rocksDB来替代普通内存的kv是有必要的有了rocksdb,可以range查询,可以支持columnfamily,可以各种压缩但是rocksdb本身是一个库,是跑在RocksDBStateBackend中的所以taskmanager挂掉后,数据还是没了,所以RocksDBStateBackend仍然需要类似HDFS这样的分布式存储来存储snapshotkv state需要由rockdb来管理,这是和内存或file backend最大的不同Abs.
2020-06-30 01:32:09
484
原创 「Flink」RocksDB介绍以及Flink对RocksDB的支持
RocksDB介绍RocksDB简介RocksDB是基于C++语言编写的嵌入式KV存储引擎,它不是一个分布式的DB,而是一个高效、高性能、单点的数据库引擎。它是由Facebook基于Google开源的kv存储LevelDB开发开发。RocksDB使用LSM存储引擎。它针对不同的生产环境进行调优,可以直接使用内存、也可以使用Flash、或者用硬盘或者HDFS。而且支持不同的压缩算法,有一整套的工具用于生产、调试使用。RocksDB是一种嵌入式、KV型、持久化的存储。使用嵌入式的数据存储原因有很多,
2020-06-30 01:30:12
4153
1
原创 Flink调度
从提交来一步一步分析,本文源码基于Apache社区 1.8-release 版本REST提交作业流程:1.集群启动后 通过 /jars/upload 向集群提交可执行jar文件2.通过 /jars/:jarid/run 来启动一个job1.构建并提交JobGraph我们直接找到WebSubmissionExtension这个类,在StandaloneSession 集群模式下集群初始化DispatcherRestEndpoint的时候会从WebSubmissionExtension里加载
2020-06-30 01:28:35
869
1
原创 Flink分区策略
目前Flink支持8种分区策略:GlobalPartitioner:数据会被分发到下游算子的第一个实例中进行处理。ShufflePartitioner :数据会被随机分发到下游算子的每一个实例中进行。RebalancePartitioner:数据会被循环发送到下游的每一个实例中进行处理。RescalePartitioner :这种分区器会根据上下游算子的并行度,循环的方式输出到下游算子的每个实例。这里有点难以理解,假设上游并行度为 2,编号为 A 和 B。下游并行度为 4,编号为 1,2,3,4..
2020-06-30 01:03:26
4517
动手学深度学习.pdf
2019-11-22
基于SSH 教务管理系统
2017-03-21
基于SSH的教务管理系统源码-简易版
2017-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅