Home

浅谈 Flink - StreamGraph

上一篇笔记介绍由 API 生成StreamExecutionEnvironment.transformations,接下来就是生成 StreamGraph. StreamExecutionEnvironment.execute里包含了诸如 StreamGraph、JobGraph、?等流程。 具体在StreamGraphGenerator.generate: StreamGraph generate() { streamGraph = new StreamGraph(executionConfig, checkpointConfig); ... alreadyTransformed = new HashMap<>(); for (Transformat...

Read more

浅谈 Flink - Transformations

年前开始接触 flink,到现在已经有三个月的时间了,除了最开始简单看了下 flink 的启动过程,最近一直被其 scala 及 SQL API 搞的很虚。这个假期得空,终于开始盘点下。 这篇笔记介绍下 transformations 的生成过程。 其实 flink 相关介绍网上比比皆是,为了避免拾人牙慧,本文主要介绍下自己的理解,参考文章附录在文末。 1. 开篇 以 flink 里的 Hello World 为例: val text = env.socketTextStream("127.0.0.1", 8011) text.flatMap(new FlatMapFunction[String, (String, Int)] { override def flatMa...

Read more

2019书单总结

19年看完的书单📖: 西游八十一案-大唐泥犁狱 半小时漫画中国史 半小时漫画世界史 半小时漫画经济学-生活常识篇 Scala谜题 图解HTTP 长安古意 追风筝的人 小岛经济学 殉罪者 Scala实用指南 四时之诗:蒙曼品最美唐诗 无所畏 网络是怎样连接的 路上通勤的时间,看完了《大唐泥犁狱》、《追风筝的人》,这两本都比预期要好看很多,非常推荐。 技术类的几本书籍收获一般,如果要学习 Scala 的话,还是推荐《快学Scala》这本。 19年想要了解下经济学,因此看了本《小岛经济学》,还不错,当然感觉对于我们来讲,初期通过视频学习可能更加通俗易懂。 《蒙曼品最美唐诗》是最出乎意料的一本,诗本身以及解读都很美,读完了赏心悦目。...

Read more

监控系统之度量系统:Dropwizard Metrics

Dropwizard Metrics Library 是一个 java 的监控工具包,Spark 将其作为 monitor 系统的基础实现。借助 Dropwizard Metrics 我们可以通过仅仅几行代码,就可以实现诸如数据分布、延时统计、计数等统计需求,将内部状态暴露出来。对应的,Metrics 实际上包含了两部分,监控的指标(Metric)以及指标如何导出(Reporter)。 1. Metric 1.1. Meter Meter 是一个与时间有关的统计值,例如我们可以这么使用: val requests = metrics.meter("requests") new Thread { ... requests.mark() } 底层...

Read more

《Scala谜题》读书笔记

有些问题还没有完全搞懂,不过先记录下来。 先放一张 scala 的类图: 笔记按照题目顺序整理。 //scalaVersion:2.12 package numericOps import scala.collection.mutable object ScalaPuzzlers extends App { /* // 1. 占位符 // Hi // Hi // List(2, 3) // 常规匿名函数是从 => 一直到代码块结束的所有代码 println(List(1, 2).map{i => println("Hi"); i + 1}) // Hi // List(2, 3) // 占位符_语法定义的匿名函数,只包括含有_的表达式 ...

Read more

度厂回忆录

W 说,“当你不能够再拥有的时候,你唯一可以做的,就是令自己不要忘记。” 我想起来成才从 A 大队走的时候,他问许三多,“咱们当兵三年了,你能想起其中的每一天吗?我想念七连,又臭又硬的钢七连,我使劲想,可我想不起一件事,一个人……” 不久后的某天,我也会离开百度,就像成才当年对 A 大队的向往,我也曾经那么向往在百度工作。不同的是,当离开的时候,我开始怀念在这里的每一天。我突然想要记录这里的每一件事情,这种感觉在我提了离职之后愈加强烈,以至于那么一瞬间有后悔的冲动。 当说出了告别,才意识到有多么不舍。当意识到不能够再拥有的时候,我告诉自己,记录下来不要忘记,这就是我的度厂回忆录。 1. 新兵报到 工位最底层的抽屉里,至今保留着一张纸,上面是入职的流程。工位来回搬了几次,这张纸...

Read more

《Functional Programming Principles in Scala》

最近借着几个周末在 Coursera 上完成了 《Functional Programming Principles in Scala 》,算是终于把之前立的上一门 Coursera 课程的 flag 给做到了。 1. 课程之外 这门课是 Scala 的作者 Martin Odersky, Professor 开的,相比看书,从中能看到更多原汁原味的设计思想,例如为什么会有 Call-By-Name 和 Call-By-Value、Curring 函数等。 学习这门课的时候我脑海里不断的浮现出这条曲线 感觉自己刚看了一个月 scala,就敢写《scala 30分钟极简入门》也是自信心爆棚了。 严格来讲,这门课程不算难,看过《Scala 编程》这本书的话,估计会觉得更轻松一...

Read more

《Scala实用指南》读书笔记八:创建应用程序

1. XML作为一等公民 Scala提供了一种类似于XPath的查询能力,它和XPath只有一点细微的差别。Scala不使用熟悉的XPath正斜杠(/或者//)来查询,而是使用反斜杠(\和\\)来作为分析和提取内容的方法。这种差别是必要的,因为Scala遵循Java的传统,使用两个正斜杠来进行注释,而单个正斜杠则是除法操作符。 val xmlFragment = <symbols> <symbol ticker="AAPL"><units>200</units></symbol> <symbol ticker="IBM"><units>215</unit...

Read more