自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 Flink中Java开发的必要辅助(一)——Scala

Flink中Java开发的必要辅助(一)——Scala主要是一些基本的语法点两者还是很像的,都是基于JVM运行的,因为看很多论文中的实现部分都是通过Scala实现的,所以大致根据官网的文档和自己查的一些资料,总结一下Scala和Java相同和一些不同之处。一、类和主函数声明方式Java中class 类名 public static void main(String[] args)Scala中object 名 def main(args:Array[String])Scala中所

2020-08-01 11:05:38 438

原创 操作系统的一些回顾

操作系统进程间的通信的几种方式管道/匿名管道(Pipes) :用于具有亲缘关系的父子进程间或者兄弟进程之间的通信。——半双工,文件是内存中的特殊文件有名管道(Names Pipes) : 匿名管道由于没有名字,只能用于亲缘关系的进程间通信。为了克服这个缺点,提出了有名管道。有名管道严格遵循先进先出(first in first out)。有名管道以磁盘文件的方式存在,可以实现本机任意两个进程通信。——全双工信号(Signal) :信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生;

2020-07-28 23:49:17 296

原创 常见算法要点思路——贪心与搜索问题

常见算法要点思路——贪心与搜索问题贪心算法需要满足的条件:问题具有贪心选择性,并且具有优化子结构(就是在选择完之后的子问题,和总的问题达到最优解是一致的);证明贪心选择性,就是证明某一个最优解中包含了贪心选择的内容和动态规划相比,二者都需要描述清除问题的优化子结构;但是贪心算法重点是证明贪心选择的合理性,DP重点是找到子问题和合理的递推关系式二者和分治相比,前两者面对最优化问题,分治不考虑而他的重点是拆分递归和合并树搜索将问题求解的步骤转换为树的搜索过程,每一步的多种选择作为树的分支

2020-07-23 20:17:42 628

原创 常见算法要点思路小总结

常见算法要点思路小总结子问题的构思:对于整体的问题的抽象化理解,不要往分解问题的角度去想,而是想排除某个或者某些元素之后问题规模缩小,然后递归调用。同样注意,分治中按照区块进行分组调用,然后合并。对于初始条件和递归退出条件:分治算法递归的调用是需要退出条件的,而DP算法是需要初始条件去逐层构造分治算法划分子问题+递归求解子问题+合并子问题——自上而下既然是递归解决子问题,那么递归的要求:递归主体,退出条件都要明确例如寻找在大小为n的数组中找到第i大的数,如果不使用分治算法,需要O(n

2020-07-22 21:37:37 206

原创 常用的几种设计模式简略总结

设计模式简略总结首先,设计模式是解决特定问题的一系列套路,目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。软件设计模式重要组成模式的名称问题:描述了该模式的使用场景和解决了什么问题解决方案:提供问题的抽象描述效果分析:使用时利弊的权衡分类创建型模式:描述怎么创建对象。结构型模式:怎么将类按照某种布局组成更大的结构行为模式:怎么将类和对象相互协作完成单独对象无法完成的任务描述设计模式用到的类图类的表示:[可见性]属性名:类型[=默认值] [可见性]名称(参数列

2020-07-17 20:53:21 190

原创 Flink导入IDEA&源码构建Flink

Flink导入IDEA&源码构建Flink因为涉及到可能要更改源码,和最后在集群上跑实验,所以整理一下打包运行和源码编译的过程。根据官网整理导入Flink到IDE中并且编译将Flink源码clone到本地git clone https://github.com/apache/flink.git在windows下需要安装git,并且在cmd使用git命令时,因为国内访问速度慢,如果配置代理的话,可以参考这篇博客配置cmd中代理。在目标文件夹中可以得到flink命名的文件,其中内

2020-07-13 23:58:43 2625 1

原创 Flink中常用的API(二)——内置窗口使用

Flink中常用的API(二)——内置窗口使用续Flink中常用的API一、Flink基本编程框架在主函数中获取当前运行环境:StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();运行环境控制Flink运行——可以设置并行度、设置检查点参数、同时指定数据获取的方式(通过Kafka等connector还是端口或者时文件、手动输入数据等)。通过env获取数据得到DataStream

2020-07-12 23:19:48 233

原创 Java中TCP通信以及多线程通信

回顾Java多线程在Socket通信中的使用一、Java中socket编程socket = IP + 端口号,构成了在网络上唯一能被识别的标识符套接字。通信的client和server双方都要获取对方的socket才能进行通信,socket之间的通信就是网络通信。socket之间就是普通的IO流传输。这篇主要回顾TCP通信,也就是基于字节流的网络传输。二、一般的单线程socket通信建立连接的几个步骤:server 端声明 ServerSocket ,然后调用accept() 方法

2020-07-09 14:00:56 552 1

原创 Flink中Time机制总结

最近做的实验涉及到Flnik的时间戳机制,系统的总结一下Flink的time机制一、Flink中timestamp和watermark使用在数据源中指定时间戳和水位线在这里插入代码片

2020-07-04 23:41:04 253

原创 Java中Random的使用

做数据集实验时需要产生一些随机数据,所以 总结整理一下Random的使用一、Random类构成是java.util包下的一个类class Random implements java.io.Serializable常用的两个构造方法public Random(){...}public Random(long seed){...}常用的方法nextInt() next(int bis) nextInt(int bound)等。。。二、不同构造函数的区别空参构造方法.

2020-07-04 22:11:24 256

原创 分布式计算中一致性Hash函数应用(容错,扩缩容)

应用背景解决分布式环境中数据倾斜和容错问题解决普通Hash方法节点失效的造成的重Hash问题一致性Hash原理普通Hash在分布式环境中应用的问题在数据并行的分布式系统中,上游算子实例的输出怎样分配到下游算子实例就涉及到Hash的应用。以Flink为例,如下图所示,下游算子有两个实例,上游的分发数据策略有——一对一转发、广播、基于键值、随机这四种。其中基于的键值的keyby()方法就是使用hash算法来对同一key值对应的键值对进行分配。//-------segmentpublic s

2020-07-02 20:09:21 434

转载 伪代码书写规范

伪代码书写1在伪代码中,每一条指令占一行(else if 例外),指令后不跟任何符号书写上的缩进表示程序中的分支结构;同一模块中的语句具有相同的缩进量,通常每个算法开始时都要描述它的输入和输出,而且算法中的每一行都给编上行号,在解释算法的过程中会经常使用算法步骤中的行号来指代算法的步骤。1. 变量的声明算法中出现的数组、变量可以是以下类型:整数、实数、字符、位串或指针。定义变量的语句不用写出来,但必须在注释中给出2. 指令的表示指令:在算法中的某些指令或子任务可以用文字来叙述,例如,”设x是A中

2020-07-02 11:09:47 6926

原创 Java多线程编程复习总结(一)

Java中多线程概述一、基本概念进程和线程进程是程序运行的实例,比如Java程序就是一个Java虚拟机进程每个进程中可以包含多个线程,每个线程完成各自不同的任务,在Java平台中一个线程对应一个对象但是这个对象和普通类中声明的对象不一样,不是分配在对空间中的;而是,JVM会给每个线程分配一个栈空间,这个和普通对象还是有区别的Java中线程的使用继承Thread类,重写run()方法(线程实现人任务的入口);主方法中实例化子类后使用start()启用实现Runnable接口,主方法

2020-07-01 12:26:52 292 2

原创 Shell复习

变量命名:只能是字母和下划线的组合,并且只能是字母开头使用的全局变量和位置变量$# 命令行参数个数$? 执行上一个shell的返回值$0 脚本程序的名字$1 或者别的数字,表示不同位置的参数...

2020-06-26 10:28:45 151

原创 Redis基础(一)

Redis——远程字典服务器,全是kv键值对存储数据类型String常用命令set k vsetnx k v 如果不存在k就创建get kdel kmset k v k v …mget k k k …控制失效时间:expire k time等价于 setex k t v对于v是整数的情况,可以自增 incr kincrby k num (num的正负表示增或减)list队列rpush k v v v… v组成队列,k是这个队列的名字llen

2020-06-06 22:36:46 162

原创 Flink中常用的API

Flink中常用的API(一)首先明确,因为Flink会利用Java序列化机制把所有函数对象序列化后发送到对应的工作进程,所以用户自定义的函数的全部内容就必须是可序列化的,所以所有对外的API都封装在类中多数的函数接口设计为SAM(single abstract method),就是一个抽象类中封装了一个抽象方法转换操作定义初始的source数据源用于后面的说明DataStream<Tuple2<String,Integer>> sourcemap操作//对每个输

2020-06-03 12:15:32 304

原创 《基于 Apache Flink 的流处理》阅读笔记(三)

《基于 Apache Flink 的流处理》阅读笔记(二)Apache Flink架构运行时架构:四个JVM进程运行在不同的物理节点上JobManager:主进程控制单个应用程序执行,每个应用程序都有一个JobManager进行控制包括:JobGraph(Dataflow图,执行时转化为物理Dataflow图)+ 类库资源的 JAR 包根据物理 Dataflow 图(Exec...

2020-04-20 21:26:13 1084

原创 TCP连接和释放

TCP的三次握手和四次挥手建立连接过程就是双方确认确认双方Send 和 Receive 正常接收方创建 传输控制块 TCB,然后就开始监听发送发也是创建一个 TCB ,然后发送 SYN = 1 seq = x进入同步已发送状态——第一次握手在服务端,服务端就知道了,发送方发送没问题,自己接收没问题接收方一直在监听,收到信息之后,回馈SYN = 1 ACK = 1 seq = y ack...

2020-04-08 23:49:09 252

原创 Shell编程基础

Shell编程基础编码方式可以在命令行中直接编写,但是某一行出错就会停止执行vim 中先编写,记住bash 代码头部一定要加#!/bin/sh表明用什么程序解释脚本保存的文件名要是.sh结尾运行之前先要赋予权限chmod +x ./test.sh保存之后写绝对路径来运行(别直接运行.sh,要不系统会在PATH中找),如果有参数传递直接空格写在调用命令后面变量命名...

2020-04-08 00:01:43 199

原创 Linux命令(一)

Linux命令(一)Vim的使用不同模式普通模式:i 和 a 进入插入模式插入模式:ESC返回普通模式命令行模式:执行命令(:键),搜索(/和?键)或者过滤命令(!键)常用方式:vim + 文件名字 ,进入vim编辑器——i 之后进入插入模式——输入然后 ESC退回到普通模式——:wq保存并退出(或者 :w 文件名)进入vim之后使用命令 :e 文件路径 也可...

2020-04-06 23:38:43 259

原创 泛型

泛型泛型的定义1泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在**实例化时作为参数指明这些类型**。举个例子:在Java集合类中使用ArrayList声明的时候,如果内部的元素是字符串类型,那么在定义的时候就是用ArrayList<String> arrayLis...

2020-04-03 09:38:39 150

原创 哈夫曼编码

哈夫曼编码扩充二叉树的概念在二叉树的基础上,对于出现空子树的地方插入特殊结点(外节点),原先存在的结点叫做内节点。两种节点的关系是:S(外结点)=n(内结点)+1S(外结点)=n(内结点)+1S(外结点)=n(内结点)+1定义外路长EEE为根节点到外结点的路长之和;内路长III为根节点到内节点的路长之和。两者存在这种关系E=I+2nE=I+2nE=I+2n定义加权路长:∑wjlj\sum ...

2020-04-01 19:21:42 469

原创 查找算法(二)平衡二叉树AVL

查找算法(二)对于二叉查找树BST可能出现的完全偏斜的情况,平衡二叉树解决了这个问题,不仅保持了BST的中序遍历有序的特性,同时因为左右子树的高度差不大于1,这样它的深度就是和lognlognlogn是同数量级的(n是结点的数量),从而平均查找长度也就是lognlognlogn数量级的了平衡二叉树AVL满足下面条件的就是平衡二叉树:首先是一棵二叉查找树,可以是空树左子树和右子树的高...

2020-03-31 22:37:58 322

原创 反射机制

反射机制什么是反射宏观上理解一下:我们对数据操作的时候,都要先知道这个数据是什么类型,是八种基本的数据类型还是引用类型,然后根据数据的类型创建变量或者对象进行操作,编译器就在编译阶段对代码进行检查的;但是对于反射,就不是在编译的时候获取数据的类型,而是在运行时获取不同数据的类型信息,然后根据这些信息创建对象,调用方法等。Class类所有的类都是Class类的实例——每一个运行时加载到内...

2020-03-31 12:47:45 135

原创 《基于 Apache Flink 的流处理》阅读笔记(二)

第二章 流处理基础Dataflow图至少有一个输入源一个输出汇,是一个有向图;算子是Dataflow中基本的功能单元。从不同的抽象层次将Dataflow分为宏观上的逻辑图和实际运行时的物理结构图并行性的体现:数据并行:将输入数据分组,让执行同一操作的不同算子实例作用在不同的数据子集上;均衡负载任务并行:将输入数据复制多份,交给执行不同操作的算子实例处理数据交换策略...

2020-03-29 15:21:01 2630

原创 查找算法(一):二叉查找树BST

最近看Java集合类,底层很多关于高效查找的一些结构,比如哈希,红黑树等,也是有些遗忘了,所以正好系统总结一下查找相关的结构算法查找表:同一种类型的数据元素构成的集合查找:分为静态查找(只是查)和动态查找(还包括了插入元素和删除元素)——静态查找:顺序查找(遍历),折半查找,索引都比较简单,主要分析分析动态查找吧动态查找...

2020-03-27 21:56:56 325

原创 Java集合(三)

Collection接口续 Java集合(二),对Set接口的实现类分析Set接口是Collection接口的子接口public interface Set<E> extends Collection<E>,用到的实现类有:HashSetLinkedHashSetTreeSet和List接口的实现类的区别:首先Set接口的实现类添加元素是无序不可重...

2020-03-22 23:43:00 174

原创 Java集合(四)

Map接口常用实现类的继承关系HashMap继承关系注意:HashMap对于添加进去的键值对,它是不保证顺序的,添加顺序是可能和存储顺序是不一致的HashMap对于元素的添加和查找操作的时间复杂度是常数时间复杂度是线程不安全的public class HashMap<K,V> extends AbstractMap<K,V> implement...

2020-03-21 23:32:07 137

原创 Java基础——比较器应用

比较器对象之间的比较自然排序:public interface Comparable<T>自定义排序:public interface Comparator<T>自然排序对于实现了Comparable接口的类,都会实现public int compareTo(T o)方法(接口中只有这一个类)。不能和null比较,因为相比较的两者必须都是类对象Java的...

2020-03-17 23:18:22 131

原创 Java集合(二)

Collection接口续 Java集合(一)中 2.1 章节的List接口的另几个实现类2.2 LinkedList和ArrayList一样都是List接口的一个实现类,继承结构为:class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, De...

2020-03-17 00:24:00 132

原创 Java基础——正则表达式

正则表达式定义字符串的模式,字符串都能通过正则表达式表达出来,通过正则表达式“指定"筛选满足要求的字符串基本语法每个()中可以包括一个正则表达式,()组成的字符串可以选择某个来进行匹配转义字符“\”,在java正则中“\\”表示“\”,个数一定是偶数,比如匹配“\”字符:声明String s = "\\";对应的正则表达式String pattern = "\\\\"。(第一个斜杠是转义...

2020-03-15 21:30:05 592

原创 《基于 Apache Flink 的流处理》阅读笔记

第一章 :状态化流处理概述数据处理框架把数据处理框架分为两类事物型处理:企业日常运营业务中的各类应用企业资源规划(ERP),客户关系管理(CRM)还有一些基于Web的应用独立的数据处理层:也就是应用程序本身:连接外部用户或者服务,处理操作传入的数据,每次操作都会访问数据库读取或者更新状态数据存储层:事物型数据库,外部操作就会访问这个数据库这种“单点”在扩容更新会有问题,现在...

2020-03-15 00:34:27 1747

原创 Java集合(一)

Collection接口1.继承关系2.实现类及方法2.1 ArrayListArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable,是 List 的一个实现类。和初始化相关的一些变量transie...

2020-03-13 23:42:45 153

原创 Flink基础(一)基本概念

Flink基础(一)基本概念Flink是什么是一个分布式,有状态,流处理引擎(SPE),实现低延时,高吞吐。分布式(Distributed):有多个物理节点来处理数据,各个物理节点之间通过网络相连,用来传输数据或者控制信息。有状态(Stateful):这里引用在一篇论文中看到的来描述状态:“the intermediate value of a specific comput...

2019-10-23 23:09:37 321 2

空空如也

空空如也

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

TA关注的人

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