- 博客(157)
- 资源 (1)
- 收藏
- 关注
原创 java stream 多个集合去重取交集
原因是需要从表里查多个集合list,然后取多个集合得交集,并且元素是对象,所以使用了下面的方式,当然方式有很多种,仅供参考。下面提供了一段多个集合join取交集的例子,代码中,采用List为集合,Teacher为元素。
2023-07-01 22:00:40
1294
原创 trino 之异常问题io.jsonwebtoken.ExpiredJwtException: JWT expired at
结果显示,正好报错的节点的调度节点时间差的太多,导致其他worker节点页报错,那么现在我把调度节点1停掉,只保留调度节点2和其他worker节点,重新部署trino集群,没有报错,现在知道哪里错了。通过网上查的原因都是时间或者jwt的认证问题,小编想了既然是时间问题,那就先看下trino集群各个节点的时间吧,通过下面的命令,挨个看下各个节点的时间是否大致相同。之前的trino版本已经很低了,最近想要升级一下集群,先在测试环境重新部署。可以见到集群所有节点正常。
2023-05-17 13:00:46
1191
原创 es报错:request contains unrecognized parameter [ignore_throttled]
使用DeleteIndexRequest api删除过期数据。在使用 Springboot2.2.0 整合 ES集群5.4.0 的时候,使用 Springboot 时,使用的是 Springboot data 提供的工具,具体依赖如下:测试代码在新建的 Springboot 项目中,添加上面的那个依赖后,配置 yml 文件如下:在 SpringbootTest 中添加测试内容如下:注意,运行 testCreate 那种方法测试没有报错,但是 testDelete 报错了。ignore_thrott
2023-05-06 13:13:58
3097
1
原创 五、Trino406系列 之 管理员
它有许多潜在的原因:内存不足或分割、磁盘或网络I/O瓶颈、数据倾斜(所有数据都流向少数几个worker)、缺乏并行性(只有少数几个worker可用),或者在给定阶段之后的查询阶段的计算成本很高。如果用户要求不需要认证就可以访问Web界面,可以通过配置认证类型为“固定”,并在 web-ui.user 中配置用户名,设置一个固定用户名,用于所有Web界面的访问。通常,用户使用运行查询时使用的用户名登录。主页面有一个查询列表,以及诸如惟一查询ID、查询文本、查询状态、完成百分比、用户名和查询来源等信息。
2023-04-26 14:12:59
1009
原创 四、Trino406系列 之 问题集锦
io.trino.jdbc.internal.client.FailureInfointernal.client.FailureInfointernal.client.FailureInfoFailureException: Connection Timeout这个问题可以在这里找到答案 Set query client timeout (Like Presto’s query.client.timeout)
2023-04-26 13:00:41
500
原创 三、Trino406系列 之 客户端
客户端是向trino server提交sql查询语句和返回结果的,或以其他方式与Trino和连接的数据源交互。一些客户端,例如命令行界面,可以直接提供用户界面。像JDBC驱动程序这样的客户端为其他工具提供了连接到Trino的机制。此外,社区还为Python等平台提供了许多其他客户端,这些客户端可以反过来用于连接使用这些平台的应用程序。Trino CLI提供了一个基于终端的交互式shell来运行查询。CLI是一个自动执行的JAR文件,这意味着它像普通的UNIX可执行文件一样工作。
2023-03-25 19:16:46
1389
原创 二、Trino406系列 之 集群部署
Trino服务可以安装和部署在许多不同的平台上。通常,您使用一个coordinator和许多worker运行一个机器集群。您可以在以下部分中找到部署这样一个集群的说明和相关信息:一旦您完成了部署,或者您已经访问了一个正在运行的集群,您就可以继续配置您的客户端应用程序。
2023-03-24 08:37:15
836
原创 一、trino406系列 之 trino不是什么?trino是什么?
flink文章暂且放一放(视需求决定是否在继续更新,因为现在工作中暂时没有用到flink,纯粹是业务时间搞,正好最近生活压力也比较大,暂时放一放),最近在搞trino(trino之前叫presto),欢迎大家一起交流。Trino是一个分布式SQL查询引擎,用于查询分布在一个或多个异构数据源上的大型数据集。
2023-03-22 13:06:34
798
原创 oraclejdk1.8 换成 openjdk1.8之后,mysql连不上了
openjdk1.8.0_291开始,默认禁用了tls1.0和tls1.1版本,导致jdbc和mysql的连接无法正确建立,从而报错:详细release地址:https://www.java.com/en/download/helprelease_changes.html。加useSSL=false。解决二、指定tls1.2。
2023-03-15 13:02:54
1187
原创 Flink从入门到放弃—Stream API—clean()方法
大家都知道Flink中算子都是通过序列化分发到各节点上,所以要确保算子对象是可以被序列化的,很多时候大家比较喜欢直接用匿名内部类实现算子,而匿名内部类就会带来闭包问题,当匿名内部类引用的外部对象没有实现序列化接口时,就会导致内部类无法被序列化,因此Flink框架底层必须做好清除工作,直接调用到环境类,这个clean方法,几乎所有的算子都是从这里调用clean方法的,当然除了一些框架本身的调用哈。在咱们看上面文章的时候,看到的那些算子源码里面总会用到clean(),业界称为闭包清除。
2022-12-15 08:00:00
627
原创 Flink从入门到放弃—Stream API—常用算子(window和windowAll)
先说一下两者的最大区别,window可以设置并行度,windowAll reduce始终并行度为1,且不能更改。上来就进入到KeyedStream类,然后再new WindowedStream(this,assigner).将上面的程序运行起来之后,可以看到print出来的数据,windowAll的reduce 任务始终为1。调用WindowedStream构造器。
2022-12-14 08:00:00
492
原创 Flink从入门到放弃—Stream API—常用算子(reduce)
reduce对键控数据流的“滚动”统计或者计算。将当前元素与最后减少的值合并并发出新值。普通reduce窗口reduce1、keyBy() -> reduce 算子组合,会计算历史以来所有数据的和,每过来一条数据,就输出一次结果;2、window()->reduce 算子组合,计算的是window窗口内的数据和(也就是一定时间内的数据统计),每次窗口触发的时候,才会输出一次结果。
2022-11-15 08:00:00
804
原创 Flink从入门到放弃—Stream API—常用算子(filter 和 keyBy)
我们可以看到KeyedStream和filter、map、flatMap算子有差异了,keyBy算子没有使用DataStream,而是另起了一个继承于DataStream的类 KeyedStream。值得一提的是,有些同学说源码生涩难懂,其实不是,你看上面if判断里的东西其实都是咱们学过的继承多态等基础知识,filter调的其实也是用户代码实现的filter。同时,KeySelector选择器也不一样,它返回的是一个KEY。上面代码没有实际业务含义,就是最简单的应用,目的是为了看其源码。
2022-11-14 08:00:00
849
原创 Flink从入门到放弃—Stream API—Join实现(即多流操作)
Flink DataStream API 为用户提供了3个算子来实现双流 join,分别是:1、join();3、intervalJoin(), 另外其实还有两个算子,connect()和union()
2022-11-12 10:43:56
1509
原创 Flink从入门到放弃——开篇
鉴于之前已经有粗略的看过,大量知识点可能是复习一下,并且下钻深度,所以给自己规划做完下面脑图中的工作量的时间截止日期为2023年的1月1日,如果中途有不可抗力因素阻碍,时间按照耽误的时间往后推,但是最晚时间截止到春节。之前也写了很多关于Flink的文章,但是总是“瞎写”,为了更加充分的利用好业余时间,花了一晚上的时间,专门整理了一份关于Flink的知识点脑图,图中写到的知识点,计划着深入理解一下。凛冬散尽,星河长明。凡是过往,皆为序章。以梦为马,不负韶华。文章难免会有纰漏,若发现问题,欢迎指正与批评!
2022-10-26 21:35:37
730
原创 Flink1.15 DataSream 连接器 —— FileSystem源码阅读及代码示例
最后,提醒一下看源码的小伙伴们,最好看下test目录下的测试类,flink源码中提供了很多测试类,可以细节到具体的方法,所以值得一看。
2022-10-26 17:55:53
436
原创 netstat命令你真的理解吗?
虽然草稿箱堆满了很大篇,就是没有动力继续写 ,回想起前几天被问到的问题《关于netstat的原理》,我确实未能回答到点子上,原来一直在用的命令仅仅就是适用,它的底层实现原理是什么,没有认真全面的想过。早上都想到这里了,捻转反侧,不会就学,来吧,让我一起重新认识一下netstat这个命令的巨大威力。
2022-10-24 08:51:01
843
原创 Flink1.16 发布新特性
广义的概念上,能够捕获数据变更的技术,我们都可以称为CDC (Change Data Capture)。通常我们说的CDC技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术。其实我觉得数仓分为实时和离线最好的状态(个人想法)。meetup看了两遍,第一遍感觉听着讲change log那节,比较晦涩,今天又全部听了一遍,感觉对checkpoint的历史节点上优化又有了更深一步的理解。
2022-09-30 18:09:36
5500
原创 设计模式——原型模式
原型模式也被称为克隆模式,顾名思义,克隆分为浅克隆和深克隆浅克隆:我理解浅克隆就如同上图中的左边赋值一样,堆里面的内容只有一份,但是却被两个对象的引用指向;换句话说浅克隆只是拷贝本对象,它对象内部的日期、数组、引用对象都不拷贝,还是指向原生对象的内部元素地址。深克隆:和浅克隆的深层次克隆,不仅仅对象的本身会克隆一份,对象中的属性值也会拷贝一份,就如同上图中的右侧图一样。实现java浅克隆和深克隆的最关键的就是要实现Object中的clone()方法,并且两者对clone()的实现是不一样的。...
2022-08-31 23:56:23
418
原创 设计模式——建造者模式
建造者模式又被称呼为生成器模式,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。使用多个简单的对象一步一步构建成一个复杂的对象,有点像造房子一样一步步从地基做起到万丈高楼。1、定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示2、主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。...
2022-08-29 22:49:31
516
原创 RPC学习——入门体验
看了flink-rpc之后,感觉rpc框架真的是太强大了,比如netty、akka,之前基于akka写过一个能够处理千万级实时数据量的处理系统,netyy的话之前也是了解一点,但是对于rpc思想理解上总是感觉差点什么,于是决定跟着老师们,详细的学习下rpc是什么,怎么用,如何能够用好,开始一步一步的手撸吧。...
2022-08-28 22:10:29
625
原创 设计模式——单例
首先介绍一下单例模式。也是最长用的。通常加载配置啊都会用到。源码地址:https://github.com/DeveloperZJQ/scalavsjava/tree/master/src/main/java/designpatterns/singleton。
2022-08-28 00:07:06
141
转载 Apache Flink 1.15.2发布公告
如果1.15.0/1的行为是可以接受的,因为它是一个稳定的环境。参见[FLINK-28861]https://issues.apache.org/jira/browse/FLINK-28861了解更多信息。有关所有更改的完整列表,请参见:[JIRA] https://issues.apache.org/jira/secure/ReleaseNote.jspa?您可以在更新的下载页面上找到[二进制文件]https://flink.apache.org/downloads.html。.........
2022-08-26 12:57:18
435
原创 Flink1.15源码阅读——执行图executiongraph
执行图是在JobManager生成的,且在创建JobMaster的过程中创建的。本篇是基于per job模式client生成JobGraph之后,就通过submitJob提交给JobManager,JobManager会根据JobGraph生成对应的ExecutionGraph。ExecutionGraph 是Flink作业调度时使用到的核心数据结构,它包含每一个并行的task,每一个intermediate stream以及它们之间的关系。
2022-08-21 10:49:51
560
原创 Flink1.15源码阅读——StreamGraph流图
StreamGraph 经过优化后生成了JobGraph,提交给Jobmanager的数据结构,主要的优化为,将多个符合条件的节点 chain在一起作为一个节点,这样可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗。JobManager根据Execution对job进行调度后,在各个TaskManager上部署Task后形成的图,并不是一个具体的数据结构。JobManager根据JobGraph生成的。是根据用户代码通过Stream API编写的代码生成的最初的图。用来表示程序的拓扑结构。...
2022-08-07 16:37:59
852
原创 Flink1.15源码阅读——PER_JOB vs APPLICATION执行流程
根据官网和源码中可知,目前PER_JOB模式已经被官悬弃用,后面可能会被完全剔除,替代的是APPLICATION模式两种模式好处都是资源隔离,APPLICATION模式把main方法的初始化放到了集群组件的jobmanager,这样有对于客户端来说,从性能上有了很大的优化。通过比较看两者的源码,才更能体会到APPLICATION模式替代PER_JOB的优点。从execute方法开始读源码。如果想读StreamExecutionEnvironment#execute之前的部分,请参照另一篇Flink1.15
2022-07-30 22:38:14
1273
原创 Flink1.15源码阅读flink-clients——flink命令行帮助命令
上面介绍了flinkrun相关的命令,下面是客户端模式,分为三种GenericCLI、FlinkYarnSessionCLI和DefaultCLI。
2022-07-30 13:09:34
266
原创 Flink1.15源码阅读flink-clients之GenericCLI、flinkYarnSessionCLI和DefaultCLI
for循环中顺序的取出之前存到集合中的三个客户端,根据cli.isActive(commandLine)这个方法检查,第一个活跃的客户端并立即返回,因为默认的客户端active总是true,从下面代码可以看出。configuration.getOptional(DeploymentOptions.TARGET).isPresent()TARGET是否存在。DefaultCLI#isActive总是true,所以默认客户端总是兜底的。从上面注释中,很容易看出该方法是干什么的,获取活跃的命令行客户端;.....
2022-07-29 15:32:05
663
原创 Flink1.15源码阅读flink-clients客户端执行流程(阅读较枯燥)
接上一篇讲到flink-clients调试,接着阅读更详细的源码,很枯燥,慢慢读。参考链接https//blog.51cto.com/u_13870740/5321778,讲解的很好。
2022-07-25 07:20:17
1214
原创 hadoop——突然的想手写一下WordCount程序了,好久没写过了
map端处理逻辑,写了多个mr程序,也写了很多spark、flink程序,基本上套路都是这样的,先是把数据切片,作业的每个task拉取切片,处理一个拉一个,达到缓存设定的临界值,会触发写到磁盘,这个阶段会产生排序,其实就是先把数据进行etl,方便后续的更多类型的操作,一般广义上在reduce阶段就是聚合了。突然的想手写一下WordCount程序了,好久没写过了,就写官网上的那个吧,手写调试最后通过了,但是为了不耽误别人以及传播正确知识点,呈现在大家面前的是能够运行的。看一下reduce程序。...
2022-07-24 14:52:48
368
原创 Flink1.15源码阅读——flink-annotations
本文将详细介绍下flink中的自定义注解模块,了解flink注解的作用与使用。主要围绕flink源码中的 flink-annotations模块,与docs 相关的注解有@ConfigGroup和@ConfigGroups , 通常作用于配置类上;@Documentation.OverrideDefault、@Documentation.Section、@Documentation.TableOption、@Documentation.SuffixOption,@Documentation.ExcludeF
2022-07-19 18:31:58
621
原创 hbase shell启动报错
在客户端执行hbase org.apache.hadoop.hbase.mapreduce.ImportTsv命令的时候报如下错误:尝试直接执行hbase shell命令,依然报上面的错误,找问题吧。起初是以为服务器的jdk版本的问题,因为开发环境和测试环境的jdk版本的确不一样,一顿操作之后不生效,试着调整之后依然报这个错误,不是这个问题所导致的。度娘-直接百度查询,知道是hbase.tmp.dir设置的路径,hbase没有读写权限。具体的配置文件为/etc/hbase/conf/hbase-s
2022-07-12 18:59:25
2100
sbt+scala+idea安装配置创建导入sbt项目
2017-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人