自律给我自由

积累 自驱 自制 坚持

0%

本文主要从使用层面介绍Flink独树一帜的设计, 帮助大家理解并更好的利用这些特性

Apache Flink的定义

Apache Flink是在无边界和有边界的数据流上进行有状态计算的框架.

同行对比

面对已经在实时领域耕耘了许久的两位老前辈: Storm和Spark Streaming, Flink有什么优势能够脱颖而出呢?

  • Spark Streaming 攒一段数据再计算, 本质还是批处理, 涉及到shuffle还是会有落盘, fetch和merge等操作. API用起来很流畅, 但是不适合维护State. Spark Streaming更适合做etl.
  • Storm Flink API跟Spark Streaming很像,但编程模型跟Storm更为接近。Storm自身不支持State,需要用户自己来维护,为了高可用和故障恢复, 用户通常会选择Redis做缓存,不过也由此也增加了对外部系统的依赖,同时也带来了额外的开销。

由此可见, Storm和Spark Streaming在State的处理上都有些力不从心, Flink与之相比最大的优势就是提供了完善的State的支持.

State

每个重要的流应用程序都是有状态的, 只有少数仅对事件做转换, 并且事件彼此独立的应用程序不需要状态. 任何运行基本业务逻辑的程序都需要记住事件或中间结果, 以便在后续的处理中访问它们.

状态

Read more »

前言

为了保证服务的高可用, 我们通常会将其部署到多个节点(或者多个容器). 但是某些异步任务我们希望只交给一个实例来处理, 或者说, 要在这些服务中选出一个leader.

zookeeper的菜谱里有一道招牌菜就是leader election, 不过今天我们不打算点这道菜, 看看用随手可得的MySQL能否满足我们的需求.

Read more »

翻译自Column-oriented DBMS

Column-oriented DBMS

面向列的DBMS(或列式数据库管理系统)是按列而不是按行存储数据表的数据库管理系统。在关系型数据库管理系统领域,使用列式存储和行式存储并没有什么区别。列和行数据库都可以使用传统的数据库查询语言(如sql)来加载数据并执行查询。列和行数据库都可以成为系统的支柱,为通用extract-transform-load(ETL)和数据可视化系统提供数据。然而,将数据存储在列中而不是行中,数据库可以更精确的访问到某个查询请求需要的数据,而不是扫描并丢弃行中不需要的数据。查询性能由此而提高,尤其是在非常大的数据集中。

Read more »

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment