自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

踏雪无痕

自律是你超越他人使自己变的重要的前提!

  • 博客(142)
  • 收藏
  • 关注

原创 NumPy基础:数组和矢量计算

一.ndarrayNumPy最重要的一个特点就是其N维数组对象ndarray,该对象是一个快速而灵活的大数据集容器。可以利用这个数组对整块数据执行一些数学运算,其语法跟标量元素之间的运算一样:ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。每个数组都有一个shape【表示各维度大小的元组】和一个dtype【用于说明数组数据类型的对象】:二.创建ndarray创建数组最简单的办法就是使用array函数。它接受一切序列型的对象,然后产生一个新的含有传入数据的Nu

2020-11-18 16:19:25 423

原创 Flink高级特性之检查点

一.概述Flink中的每个函数和运算符都可以是有状态的。有状态功能在处理单个元素/事件的过程中存储数据,使状态成为任何类型的更复杂操作的关键构建块。为了使状态容错,Flink需要检查点状态。检查点允许Flink恢复流中的状态和位置,从而为应用程序提供与无故障执行相同的语义。二.先决条件Flink的检查点机制与流和状态的持久存储交互。通常,它要求:持久(或耐用,可以重放某个时间段内一定量的记录)的数据源。此类消息源是持久消息队列(例如,Apache Kafka,RabbitMQ,Amazon Ki

2020-11-12 11:24:29 797

原创 Spark SQL常用配置及性能优化

一.在内存中缓存数据Spark SQL可以通过调用spark.catalog.cacheTable(“tableName”)或使用dataFrame.cache()内存列式格式缓存表。然后,Spark SQL将仅扫描所需的列,并将自动调整压缩以最大程度地减少内存使用和GC压力。可以调用spark.catalog.uncacheTable(“tableName”)从内存中删除表或dataFrame.unCache()取消缓存。可以在SparkSession上使用setConf方法或使用SQL运行SET k

2020-10-24 19:52:00 2791

原创 系统架构师【数据库系统:数据库模式与范式】

一.数据库管理系统的类型当前,许多商业DBMS中所用的主要数据模型仍是关系型数据模型。有些商业系统中实现了对象数据模型,但未得到广泛使用。近几年随着NoSQL技术的兴起,也产生了一些新的数据模型。目前常见的DBMS按数据模型划分,包括:关系型、文档型、键值型、对象型等等。二.数据库的结构与模式数据库技术中采用分级的方法将数据库划分为多个层次。最著名的是美国ANSI/SPARC数据库系统研究组1975年提出的三级划分法,如下:数据库系统划分为三个抽象级别:用户级、概念级、物理级。用户级数据库。用

2020-10-20 20:31:23 433 2

原创 “中国”一词的由来

“中国”一词最早出现在《诗经》中。如《大雅·民芳》载:“惠此中国”。但《诗经》中的中国实算不得是真正指称国家的“中国”。作为指称国家的“中国”一词,在战国诸之百家书中已屡见不鲜。如《孟子·滕文公上》云:“陈良、楚产地,悦周公仲尼之道,北学于中国”,又“兽蹄鸟迹之道,交于中国。”《庄子·田子方》云:“中国之君子,明乎礼仪而陋于知人心。”这些都说明上古之所谓“中国”者,皆指后世之“中原”也。但又有不同于“中原”的地方,即地域不及后世中原之广,而相当于今山西、山东、河南、河北一带。这一带地区被四周分布的夷、翟

2020-10-20 19:00:43 317

原创 系统架构师【操作系统:作业管理】

一.简介从用户的角度看,作业是系统为完成一个用户的计算任务【或一次事务处理】所做的工作总和。例如,对于用户编写的源程序,需要经过对源程序的编译、连接编译或连接装入及运行产生计算结果。这其中的每一个步骤,常称为作业步,作业步的顺序执行即完成了一个作业。从系统的角度看,作业则是一个比程序更广泛的概念。它由程序、数据和作业说明书组成。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。而且,在批处理系统中,作业是占据内存的基本单位。用户的作业可以通过直接的方式,由用户自己按照作业步顺序操作;也可以通

2020-10-20 15:07:46 259

原创 国学【书法技巧】

一.横画横画在字中起平衡作用,横不平则字不稳。但由于人的视觉习惯,一般写成左低右高之势,这样看起来才显得平稳。起笔稍顿,向右上方行笔,顿笔而收。二.竖画竖画宜写垂直,于字中往往起着关键的支撑作用。需劲挺有力。一般分垂露、悬针两种形式。起笔向右下方顿笔,由种到轻顺势而行,多数竖画写得较长。三.撇画撇画变化较丰富,有斜撇、竖撇、平撇、短撇等。撇有一定弧度,但不可过弯,否则无力,且撇画末端多为出尖,向右稍顿回笔往左下行,由重至轻快速出锋。四.捺画捺画转折微妙,有一波三折之姿。一般为整字的主笔,宜书写

2020-10-18 12:10:09 269 2

原创 Flink之广播状态模式

一.提供的API为了展示所提供的API,我们将以一个示例开始,然后介绍其完整功能。作为正在运行的示例,我们将使用这样的情况,其中有一系列不同颜色和形状的对象,并且我们希望找到遵循某种模式的相同颜色的对象对,例如矩形后跟三角形。我们假设这组有趣的模式会随着时间而演变。在此示例中,第一个流将包含Item带有Color和Shape属性的type元素。另一个流将包含Rules。从流开始Items,我们只需要键入它的Color,因为我们要对相同颜色的。这将确保相同颜色的元素最终出现在同一台物理计算机上。//

2020-10-15 20:21:15 1948

原创 系统架构师【操作系统:文件管理】

一.简介操作系统对计算机的管理包括两个方面:硬件资源和软件资源。硬件资源的管理包括CPU管理、存储器管理、设备管理等,主要解决硬件资源的有效和合理利用问题。软件资源包括各种系统程序、各种应用程序、各种用户程序,也包括大量的文档材料、库函数等。每一种软件资源本身都是具有一定逻辑意义的相关信息的集合,在操作系统中它们以文件形式存储。计算机系统的重要作用之一是能快速处理大量信息,因此数据的组织、存取和保护成为一个极重要的内容。文件系统是操作系统中组织、存取和保护数据的一个重要部分。文件管理功能包括:建立、

2020-10-14 19:56:29 394

原创 系统架构师【操作系统:设备管理】

一.简介在计算机系统中,除了处理器和内存外,其他大部分硬件设备统称为外部设备。它包括输入/输出设备,辅存设备及终端设备等。这些设备种类繁多,特性各异,操作方式的差异很大,从而使操作系统的设备管理变得十分复杂。二.数据传输控制方式设备管理的主要任务之一是控制设备和内存或CPU之间的数据传输。选择和衡量控制方式的原则如下:数据传输速度足够快,能满足用户的需要且不丢失数据。系统开销小,所需的处理控制程序少。能充分发挥硬件资源的能力,使得I/O设备尽量处于使用状态中,而CPU等待时间少。外围设备和

2020-10-13 19:17:32 303

原创 系统架构师【操作系统:存储管理】

一.简介存储器是计算机系统中最重要的资源之一。因为任何程序和数据以及各种控制用的数据结构都必须占有一定的存储空间,因此,存储管理直接影响系统性能。存储器由内存和外存组成。内存是由系统实际提供的存储单元组成的一个连续地址空间,处理器可直接存取。外存是指软盘、硬盘、光盘或磁带等一些外部存储部件,常用来存放暂时不执行的程序和数据。处理器不能直接访问外存,需通过启动I/O设备才能进行内存、外存交换,其访问速度慢,但价格便宜。常用作内存的后援设备。内存大小由系统硬件决定,存储容量受到实际存储单元的限制。虚拟存储

2020-10-12 11:36:09 326 1

原创 Spark Streaming整合检查点与累加器/广播变量

一.简介无法从Spark Streaming中的检查点恢复累加器和广播变量。如果启用检查点并同时使用“ 累加器”或“广播变量” ,则必须为“累加器”和“广播变量”创建延迟实例化的单例实例, 以便在驱动程序发生故障重新启动后可以重新实例化它们。二.代码实现package org.apache.spark.examples.streamingimport java.io.Fileimport java.nio.charset.Charsetimport com.google.common.io.

2020-10-09 17:44:24 196

原创 系统架构师【操作系统:进程管理】

一.处理机管理处理机是计算机系统的核心资源。操作系统的功能之一就是处理机管理。随着计算机的迅速发展,处理机管理显得尤为重要。这主要由于计算机的速度越来越快,处理机的充分利用有利于系统效率的整体提升;处理机管理是整个操作系统的重心所在,其管理的好坏直接影响到整个系统的运行效率;而且操作系统中并发活动的管理和控制是在处理机管理下实现的,处理机管理集中了操作系统中最复杂的部分,它设计的好坏关系到整个系统的成败。二.进程进程是处理机管理中最基本、最重要的概念。进程是系统并发执行的体现。由于在多程序系统中,众多

2020-10-07 19:49:57 540 1

原创 系统架构师【操作系统的类型与结构】

一.概述计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的系统软件 ,它既管理计算机系统的软、硬件资源,又控制程序的执行。操作系统随着计算机研究和应用的发展逐步形成并日趋完善,它为用户使用计算机提供了一个良好的环境,从而使用户能充分利用计算机资源,提高系统的效率。操作系统的基本类型有:批处理操作系统、分时操作系统和实时操作系统。从资源管理的角度看,操作系统主要是对处理器、存储器、文件、设备和作业进行管理。二.操作系统的定义操作系统OS是计算机系统中的核心系统软件,负责管理和控制计算

2020-10-07 11:22:16 298

原创 系统架构师【操作系统:流水线】

一.简介流水线技术把一个任务分解为若干顺序执行的字任务,不同的子任务由不同的执行机构负责执行,而这些机构可以同时并行工作,任一任务只占用其中一个执行机构,这样就可以实现多个任务的重叠执行,以提高工作效率。二.流水线周期流水线应用过程中,会将需要处理的工作分为N各阶段,最耗时的那一段所消耗的时间为流水线周期。如:使用流水线技术执行100条指令,每条指令取址2ms,分析4ms,执行1ms,则流水周期为4ms。三.计算流水线执行时间延续上面的场景,将一个任务的执行过程可分为N各阶段,假设每个阶段完成时间

2020-10-01 18:24:29 793

原创 人性的弱点【我要喜欢你】

外交的秘诀仅在5个字:我要喜欢你。只是我们把次序弄错了——我们是希望别人先来喜欢我们,却不曾想到如何才能让人喜欢。当然,为了得到友谊和情爱,我们必须先认清“施比受更有福”,然后把这种认知用实际行为表现出来。我们不能只是把金矿藏在心里,黄金必须使用才能显示其价值,像《圣经》所说的:“由所结的果实,便可认出它们来”。我常听到许多人埋怨:“我性情过于羞怯,很难引起别人的注意”,“没有人会对我感兴趣”,或是“别人并不想认识我”等等。不错,别人为什么要喜欢你呢?这世界并没有义务非要喜欢你或我,或任何一个人.

2020-09-26 19:59:09 687

原创 系统架构师【存储器系统】

一.概述存储器是用来存放程序和数据的部件,它是一个记忆装置,也是计算机能够实现“存储程序控制”的基础。在计算机系统中,规模较大的存储器往往分为若干级,称为存储器系统。传统的存储器系统一般分为高速缓冲存储器、主存、辅存三级。主存可由CPU直接访问,存取速度快,但容量较低,一般用来存放当前正在执行的程序和数据。辅存设置在主机外部,它的存储容量大,价格较低,但存取速度较慢,一般用来存放暂时不参与运行的程序和数据,CPU不可以直接访问辅存,辅存中的程序和数据在需要时才传送到主存,因此它是主存的补充和后援。当CP

2020-09-24 20:21:28 625 1

原创 系统架构师【计算机系统组成】

一.计算机系统组成计算机系统是一个硬件和软件的综合体,可以把它看成按功能划分的多级层次结构。1.计算机硬件的组成硬件通常是指一切看得见,摸得着的设备实体。原始的冯诺依曼计算机在结构上是以运算器为中心的,二发展到现在,已转向以存储器为中心了。如下图:控制器。控制器是分析和执行指令的部件,也是统一指挥并控制计算机各部件协调工作的中心部件,所依存的是机器指令。控制器的组成包含如下:程序计数器PC:存储下一条要执行指令的地址。指令寄存器IR:存储即将执行的指令。指令译码器ID:对指令中的操作码字段

2020-09-18 19:06:07 431

原创 系统架构师考试大纲

2020年计算机软考系统架构设计师考试大纲一.考试目标考试合格人员应能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统架构具有良好的特性;能够对项目睥系统架构进行描述、分析、设计与评估;能够按照相关标准编写相应的设计文档;能够与系统分析师、项目管理师相互协作、配合工作;具有高级工程师的实际工作能力和业务水平。二.考试要求(1)掌握计算机硬软件与网络的基础知识;(2)熟悉信息系统开发过程;(3)理解信息系统开发标准...

2020-09-18 16:43:06 1986 2

原创 TF-IDF词频逆文档频率算法

TF-IDF词频逆文档频率(TF-IDF) 是一种特征向量化方法,广泛用于文本挖掘中,以反映术语对语料库中文档的重要性。用t表示术语,用d表示文档,用D表示语料库。TF(t,d) 表示术语频率是术语在文档中出现的次数,而DF(t,D)文档频率是包含术语的文档在语料库中出现的次数。如果我们仅使用术语频率来衡量重要性,那么很容易过分强调那些经常出现但几乎不包含有关文档信息的术语,例如“a”,“the”和“of”。如果术语经常出现在整个语料库中,则表示该术语不包含有关特定文档的特殊信息。逆文档频率度量的是一个术

2020-09-17 17:05:36 2935

原创 人性的弱点【了解鱼的需求】

了解鱼的需求成功的人际关系在于你能捕捉对方观点的能力;还有,看一件事需兼顾你和对方的不同角度。天底下只有一种方法可以影响他人,那就是提出他们的需要,并让他们知道怎样去获得。能设身处地为他人着想,了解别人心里想些什么的人,永远不用担心未来。每年夏天,我都会去钓鱼,我喜欢吃水果和鱼肉,然而基于某些特殊原因,我发现水里的鱼爱吃水虫。所以在钓鱼的时候,我就不作其它考虑,而专心一致地想着鱼儿们所需要的。我也可以用水果或鱼肉【想来它们不会喜欢同类】来做鱼饵,和一条小虫或一只蚂蚱同时放入水里,然后征询鱼儿的

2020-09-13 11:58:22 1643

原创 Spark MLlib之管道

一.ML管道ML管道提供基于DataFrame的统一高级API集,可帮助用户创建和调整实用的机器学习管道。二.管道中的主要概念MLlib对用于机器学习算法的API进行了标准化,从而使将多种算法组合到单个管道或工作流中变得更加容易。DataFrame:此ML API使用DataFrame作为ML数据集,可以保存各种数据类型。例如,一个DataFrame可能有不同的列,用于存储文本,特征向量,真实标签和预测。Transformer:一个Transformer是一种算法,其可以将一个DataFrame

2020-09-10 19:20:37 421

原创 Flink状态与容错【状态生存时间TTL,清理过期状态】

一.状态生存时间(TTL)任何类型的键控状态都可以配置状态的生存期(TTL)。如果配置了TTL且状态值已过期,则将尽力清除存储的值。所有状态收集类型均支持按条目TTL。这意味着列表元素和映射条目独立过期。为了使用状态TTL,必须首先构建一个StateTtlConfig配置对象。然后可以通过传递配置在任何状态描述符中启用TTL功能:import org.apache.flink.api.common.state.StateTtlConfigimport org.apache.flink.api.co

2020-09-04 15:16:36 2397 2

原创 GraphX图计算之aggregateMessages算子案例详解

一.简介GraphX中的核心聚合操作为aggregateMessages。该运算符将用户定义的sendMsg函数应用于图形中的每个边三元组,然后使用该mergeMsg函数在其目标顶点处聚合这些消息。class Graph[VD, ED] { def aggregateMessages[Msg: ClassTag]( sendMsg: EdgeContext[VD, ED, Msg] => Unit, mergeMsg: (Msg, Msg) => Msg,

2020-09-03 17:39:10 789

原创 Flink最佳实践

一.传递参数几乎所有的Flink应用程序(批处理和流式处理)都依赖于外部配置参数。它们用于指定输入和输出源(如路径或地址),系统参数(并行度,运行时配置)和特定于应用程序的参数(通常在用户功能内使用)。Flink提供了一个简单的实用程序,称为ParameterTool提供解决这些问题的一些基本工具。请注意,使用ParameterTool不是必须的。其他框架(例如Commons CLI和 argparse4j)也可以与Flink一起使用。将配置值放入ParameterTool所述ParameterTo

2020-08-26 20:30:04 518

原创 基于GraphX实现社交网络分析

一.社交网络分析的主要应用在分析复杂的社会、技术以及信息系统时,我们常把这些系统描述成网络的形式。在这样的关系网络中,节点代表一个成员,而边就代表成员之间的关系。在现实生活中,一个人可能从属于不同的团体,比如其工作的部门、生活的小区、同学圈子等等。如果能把这些不同的圈子自动分析出来,大到舆情监控,小到推荐好友以及扩展新用户、精准广告投放等,这些场景都能通过社交网络分析来提升效果。结合目前日益火爆的“大数据”,这就是应用大数据来解决实际问题的一个很好的例子。所谓圈子,就是把人归属到 不同的群体中。落实到算

2020-08-20 15:43:51 1351

原创 Spark GraphX图计算入门

一.什么是图计算图计算,可以简单理解为以图这种数据结构为基础,整合相关算法来实现对应应用的计算模型。社交网络中人与人之间的关系,如果用计算机数据结构表示,最合适的就是图了。其中图的顶点表示社交中的人,边表示人与人之间的关系。所以要做社交网络分析,先要了解图计算,这是整个分析的基础。也正如此,Spark的图计算库叫GraphX。二.图的基本概念图是基础的数据结构,和链表、树不同,它是一种非线性数据结构。其基本结构很简单,如下图:一个图由定点集V和定点间的关系集合E组成,可以用二元组定义为G=(V,E

2020-08-17 19:03:24 2375

原创 基于TensorFlow卷积神经网络实现手写数字识别

一.权重初始化为了创建这个模型,我们需要创建大量的权重和篇置项。这个模型中的权重在初始化时应该加入少量的噪声来打破对称性以及避免0梯度。由于我们使用的是Relu激活函数,因此比较好的做法是用一个较小的正数来初始化偏置项,以避免神经元节点输出恒为0的问题。为了不在建立模型的时候反复做初始化操作,我们定义两个函数用来初始化。def weight_variable(shape): initial = tf.truncated_normal(shape, stddev=0.1) return t

2020-08-14 18:36:13 953

原创 Flink流计算之聚合函数

一.Reduce功能ReduceFunction指定如何将输入中的两个元素组合在一起以产生相同类型的输出元素。Flink使用ReduceFunction来逐步聚合窗口的元素。ReduceFunction可以定义像这样使用:val input: DataStream[(String, Long)] = ...input .keyBy(<key selector>) .window(<window assigner>) .reduce { (v1, v2

2020-08-07 18:18:34 4060

原创 Tensorflow手写数字识别

一.MNIST数据集当我们开始学习编程的时候,第一件事往往是学习打印"Hello World"。就好比编程入门有Hello World,机器学习入门有MNIST。MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片:它也包含每一张图片对应的标签,告诉我们这个是数字几。比如,上面这四张图片的标签分别是5,0,4,1。为了便于下载MNIST数据集,执行下面的python代码【需要提前安装好tensorflow】可以将该数据集下载到本地:from tensorflow.examples.t

2020-08-04 19:16:27 1855 1

原创 Spark Streaming之容错&高可用

一.背景Spark的RDD的基本容错语义:RDD是一个不变的,确定性可重新计算的分布式数据集。每个RDD都会记住在容错输入数据集上用于创建它的确定性操作的血缘关系。如果由于工作节点故障而导致RDD的任何分区丢失,则可以使用操作血缘关系从原始的容错数据集中重新计算该分区。假设所有RDD转换都是确定性的,则最终转换后的RDD中的数据将始终相同,而不管Spark集群中的故障如何。Spark在容错文件系统【例如HDFS或S3】中的数据上运行。因此,从容错数据生成的所有RDD也是容错的。但是,Spark

2020-07-31 18:14:21 228

原创 Flink窗口概述及用法详解

一.简介窗口window是处理无限流的核心。窗口将流分成有限大小的“存储块”,我们可以在其上应用计算。本博客重点介绍如何在Flink中执行窗口化,以及程序员如何从其提供的功能中获得最大收益。窗口式Flink程序的一般结构如下所示。第一个片段指的是键控流,而第二个片段指的是非键控流。正如人们所看到的,唯一的区别是keyBy(…)使用window操作键控流和使用windowAll(…)操作的非键控流。键控窗口stream .keyBy(...) <- k

2020-07-30 17:47:16 2062

原创 Flink常用转换算子及物理分区

一.转换算子

2020-07-29 18:59:10 291

原创 Spark Streaming之内存调优

一.内存调优Spark Streaming应用程序所需的集群内存大小在很大程度上取决于所使用的转换类型。例如,如果要对最后10分钟的数据使用窗口操作,则集群应具有足够的内存以将10分钟的数据保存在内存中。或者,如果想使用updateStateByKey操作大量的kv类型数据,则所需的存储空间会很大。相反,如果想执行一个简单的map-filter-store操作,则所需的内存将很少。通常,由于通过接收器接收的数据存储在StorageLevel.MEMORY_AND_DISK_SER_2中,因此无法容纳在内

2020-07-27 19:10:28 727

原创 Spark内存管理及调优

一.对象存储概述在调整内存使用中有三个方面需要考虑:对象存储所使用的内存【可能希望在内存中存储整个数据集,以方便使用】、访问这些对象的成本及垃圾回收的开销【对象更新频繁】。默认情况下,Java对象的访问速度很快,但是与其字段内的原始数据相比,它们很容易消耗2-5倍的空间。原因如下:每个不同的Java对象都有一个对象头,大约16个字节,其中包含诸如指向其类的指针之类的信息。对于其中数据很少的对象【例如一个Int字段】,该对象头大小可能大于数据本身。Java String类型相对于原始字符串数据有大约

2020-07-24 17:34:34 324

原创 Spark Streaming之性能调优

一.简介要在集群上的Spark Streaming应用程序中获得最佳性能,需要进行一些调整。可以调整以提高应用程序性能的许多参数和配置。从高层次上讲,需要考虑两件事:通过有效地使用群集资源来减少每批数据的处理时间。设置正确的批处理大小,以便可以按接收到的批处理速度处理一批数据【也就是说,数据处理跟上数据摄取的速度】。由于大多数Spark计算的内存性质,Spark程序可能会受到群集中任何资源【CPU,网络带宽或内存】的瓶颈。通常,如果数据适合内存,则瓶颈是网络带宽,但是有时,还需要进行一些调整,例

2020-07-23 19:12:11 271

原创 Spark Streaming应用程序【部署、升级、监控】

一.部署应用要部署运行Spark Streaming应用程序,需要具备以下条件。使用集群管理器进行集群部署,这是任何Spark应用程序的一般要求。将应用程序JAR打包 ,必须将流式应用程序编译为JAR。如果spark-submit用于启动应用程序,则无需在JAR中提供Spark和Spark Streaming。但是,如果应用程序使用高级数据源【例如Kafka】,则必须将它们链接到的额外工件及其依赖项打包在用于部署应用程序的JAR中。例如,使用的应用程序KafkaUtils 必须将spark-stre

2020-07-22 20:29:29 373

原创 Spark Streaming之检查点

一.缓存/持久化与RDD相似,DStream也允许开发人员将流的数据持久存储在内存中。也就是说,在DStream上使用persist()方法将自动对该DStream的每个RDD持久存储在内存中。如果DStream中的数据将被多次计算(例如,对同一数据进行多次操作),这将很有用。对于基于窗口操作reduceByWindow和reduceByKeyAndWindow以及基于状态操作的updateStateByKey而言,这都是隐含的。因此,由基于窗口操作生成的DStream会自动保存在内存中,而无需开发人员调

2020-07-21 17:46:03 438

原创 Scala之闭包

一.简介闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数。如下面这段匿名的函数:val multiplier = (i : Int) => i * 10 函数体内有一个变量 i,它作为函数的一个参数。如下面的另一段代码:val factor = 3.14val multiplier = (i:Int) => i * factor在 multiplier 中有两个变量:i 和 factor。其中

2020-07-17 19:45:55 364 1

原创 Flink流连接器之Kafka【三】【事件时间与水印、分区计划、容错、Kerberos身份验证】

一.Kafka使用者和时间戳提取/水印发射在许多情况下,记录的时间戳(显式或隐式地)嵌入到记录本身。另外,用户可能希望例如基于包含当前事件时间水印的Kafka流中的特殊记录,周期性地或以不规则的方式发出水印。对于这些情况,Flink Kafka Consumer允许指定一个AssignerWithPeriodicWatermarks或一个AssignerWithPunctuatedWatermarks。可以按此处所述指定自定义的时间戳提取器/水印发射器,或使用预定义的提取器/水印发射器 。这样做之后,可

2020-07-15 10:13:31 1389

空空如也

空空如也

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

TA关注的人

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