摘要: import java.util.Propertiesimport org.apache.flink.api.common.serialization.SimpleStringSchemaimport org.apache.flink.streaming.api.scala.{StreamExecutionEnvironment, _}import org.apache.flink.streami... 阅读全文
posted @ 2019-05-23 14:55 春江师兄 阅读(792) 评论(0) 推荐(0) 编辑
摘要: 架构要了解一个系统,一般都是从架构开始。我们关心的问题是:系统部署成功后各个节点都启动了哪些服务,各个服务之间又是怎么交互和协调的。下方是 Flink 集群启动后架构图。当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager,JobManager 再调度任务到各个 TaskManager 去执行,然... 阅读全文
posted @ 2019-05-10 17:37 春江师兄 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 流处理系统需要能优雅地处理反压(backpressure)问题。反压通常产生于这样的场景:短时负载高峰导致系统接收数据的速率远高于它处理数据的速率。许多日常问题都会导致反压,例如,垃圾回收停顿可能会导致流入的数据快速堆积,或者遇到大促或秒杀活动导致流量陡增。反压如果不能得到正确的处理,可能会导致资源耗尽甚至系统崩溃。目前主流的流处理系统 Storm/JStorm/Spark Streaming/F... 阅读全文
posted @ 2019-05-10 17:07 春江师兄 阅读(2290) 评论(0) 推荐(0) 编辑
摘要: link有三种时间模型:ProcessingTime,EventTime和IngestionTime。关于时间模型看这张图:从这张图里可以很清楚的看到三种Time模型的区别。EventTime是数据被生产出来的时间,可以是比如传感器发出信号的时间等(此时数据还没有被传输给flink)。IngestionTime是数据进入flink的时间,也就是从Source进入flink流的时间(此时数据刚刚被传... 阅读全文
posted @ 2019-05-10 16:58 春江师兄 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 在流模型中,我们期待数据是像水流一样平滑的流过我们的引擎,但现实生活不会这么美好。数据的上游可能因为各种原因数据量暴增,远远超出了下游的瞬时处理能力(回忆一下98年大洪水),导致系统崩溃。那么框架应该怎么应对呢?和人类处理自然灾害的方式类似,我们修建了三峡大坝,当洪水来临时把大量的水囤积在大坝里;对于Flink来说,就是在数据的接收端和发送端放置了缓存池,用以缓冲数据,并且设置闸门阻止数据向下流。... 阅读全文
posted @ 2019-05-10 16:56 春江师兄 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 对于7×24小时不间断运行的流程序来说,要保证fault tolerant是很难的,这不像是离线任务,如果失败了只需要清空已有结果,重新跑一次就可以了。对于流任务,如果要保证能够重新处理已处理过的数据,就要把数据保存下来;而这就面临着几个问题:比如一是保存多久的数据?二是重复计算的数据应该怎么处理,怎么保证幂等性?对于一个流系统,我们有以下希望:最好能做到exactly-once处理延迟越低越好吞... 阅读全文
posted @ 2019-05-10 16:31 春江师兄 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 概述这张图表明了flink是如何看待用户的处理流程的:抽象化为一系列operator,以source开始,以sink结尾,中间的operator做的操作叫做transform,并且可以把几个操作串在一起执行。什么是operator?在源码中,我们可以看到一个flatMap算子,最终会被转化成一个operator,下图是flatMap被转化成一个 operator。下图是map转化成一个 opera... 阅读全文
posted @ 2019-05-08 10:55 春江师兄 阅读(5553) 评论(0) 推荐(0) 编辑
摘要: import org.apache.flink.streaming.api.scala.StreamExecutionEnvironmentimport org.apache.flink.streaming.api.scala._object WordCount { def main(args: Array[String]): Unit = { //设置环境 val env: Str... 阅读全文
posted @ 2019-05-08 10:23 春江师兄 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 回归算法是一种通过最小化预测值与实际结果值之间的差距,而得到输入特征之间的最佳组合方式的一类算法。对于连续值预测有线性回归等,而对于离散值/类别预测,我们也可以把逻辑回归等也视作回归算法的一种。 线性回归与逻辑回归是机器学习中比较基础又很常用的内容。线性回归主要用来解决连续值预测的问题,逻辑回归用来解决分类的问题,输出的属于某个类别的概率,工业界经常会用逻辑回归来做排序。在SVM、... 阅读全文
posted @ 2019-05-07 21:15 春江师兄 阅读(5025) 评论(0) 推荐(0) 编辑
摘要: 关键词:proxy_intercept_errors、fastcgi_intercept_errors 在网上搜索404配置,有很多配置文章,但都是关于fastcgi_intercept_errors的,不过对我们的项目不起作用。我们的项目使用nginx做反向代理,通过域名区分不同的网站,配置fastcgi_intercept_errors不生效,需要配置proxy_intercept_error... 阅读全文
posted @ 2017-04-21 19:28 春江师兄 阅读(21801) 评论(0) 推荐(0) 编辑