From 4883e0a564c0015e40bc06b6663429bcc0f2ae53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=BD=97=E7=A5=A5?= <1366971433@qq.com>
Date: Tue, 16 Apr 2019 09:03:09 +0800
Subject: [PATCH] =?UTF-8?q?storm=E5=92=8C=E6=B5=81=E5=A4=84=E7=90=86?=
=?UTF-8?q?=E7=AE=80=E4=BB=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
notes/Storm和流处理简介.md | 73 ++++++++++++++++++++++++++------
notes/流处理.md | 39 -----------------
2 files changed, 61 insertions(+), 51 deletions(-)
delete mode 100644 notes/流处理.md
diff --git a/notes/Storm和流处理简介.md b/notes/Storm和流处理简介.md
index e77bcb4..88c9427 100644
--- a/notes/Storm和流处理简介.md
+++ b/notes/Storm和流处理简介.md
@@ -1,10 +1,22 @@
-Storm和流处理简介
+# Storm和流处理简介
-一、storm简介
+
-1.1 简介
-storm 是一个开源的分布式实时计算系统,可以简单、可靠进行大数据流的处理。通常用于实时分析,在线机器学习、持续计算、分布式RPC、ETL等场景。其具有以下特点:
+## 一、Storm
+
+#### 1.1 简介
+
+storm 是一个开源的分布式实时计算系统,可以简单、可靠进行大数据流的处理。通常用于实时分析,在线机器学习、持续计算、分布式RPC、ETL等场景。storm具有以下特点:
+ 支持水平横向扩展;
+ 具有高容错性,通过ACK机制每个消息都不丢失;
@@ -15,17 +27,19 @@ storm 是一个开源的分布式实时计算系统,可以简单、可靠进
-1.2 Storm与Hadoop对比
+#### 1.2 Storm 与 Hadoop对比
Hadoop采用HDFS存储数据,采用MapReduce处理数据。MapReduce主要是进行数据的批处理,这使得Hadoop更适合于海量数据的离线处理,却不适合于实时性要求比较高的场景。而Strom的设计目标就是就是对数据进行实时计算,这使得其更适合实时数据分析等场景。
-1.3 Strom与spark Streaming对比
+
+
+#### 1.3 Storm 与 spark Streaming对比
严格意义上说spark Streaming并不是实时计算框架。 Spark Streaming接收实时输入的数据流,并将数据拆分为批处理,由Spark引擎处理后批量生成结果流。只不过 Spark Streaming 能够将数据流按秒级进行拆分,使得其能够得到接近于流处理的效果,但其本质上还是批处理(或微批处理)。
-
+
-1.4 Strom 与 Flink对比
+#### 1.4 Strom 与 Flink对比
storm和Flink都是真正意义上的实时计算框架。其对比如下:
@@ -37,17 +51,52 @@ storm和Flink都是真正意义上的实时计算框架。其对比如下:
| 容错方式 | ACK机制:对每个消息进行全链路跟踪,失败或者超时时候进行重发 | 检查点机制:通过分布式一致性快照机制,对数据流和算子状态进行保存。在发生错误时,使系统能够进行回滚。 |
-> 注 : 一般来说,对于消息投递,一般有以下三种方案:
+> 注 : 一般来说,对于消息投递,一般有以下三种方案:
> + At Most Once : 投递保证每个消息会被投递0次或者1次,在这种机制下消息很有可能会丢失;
> + At Least Once :投递保证了每个消息会被默认投递多次,至少保证有一次被成功接收,信息可能有重复,但是不会丢失;
> + Exactly Once : 每个消息对于接收者而言正好被接收一次,保证即不会丢失也不会重复。
-二、流计算
+
+
+## 二、流处理
+
+#### 2.1 静态数据处理
+
+在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中。应用程序根据需要查询数据或计算数据。这就是传统的静态数据处理架构。Hadoop采用HDFS进行数据存储,采用MapReduce进行数据查询或分析,这就是典型的静态数据处理架构。
+
+
+
+
+
+#### 2.2 流处理
+
+而流处理则是直接对运动中的数据的处理,在接收数据时直接计算数据。
+
+大多数数据都是连续的流:传感器事件,网站上的用户活动,金融交易等等 ,所有这些数据都是随着时间的推移而创建的。
+
+接收和发送数据流并执行应用程序或分析逻辑的系统称为**流处理器**。流处理器的基本职责是确保数据有效流动,同时具备可扩展性和容错能力,Storm和Flink就是其代表性的实现。
+
+
+
+
+
+流处理带来了静态数据处理所不具备的众多优点:
+
+
+
+- **应用程序立即对数据做出反应**:降低了数据的滞后性,使得数据更具有时效性,更能反映对未来的预期;
+
+- **流处理可以处理更大的数据量:**直接处理数据流,并且只保留数据中有意义的子集,并将其传送到下一个处理单元,逐级过滤数据,降低需要处理的数据量,从而能够承受更大的数据量;
+
+- **流处理更贴近现实的数据模型**:在实际的环境中,一切数据都是持续变化的,要想能够通过过去的数据推断未来的趋势,必须保证数据的不断输入和模型的不断修正,典型的就是金融市场、股票市场,流处理能更好的应对这些数据的连续性的特征和及时性的需求;
+
+- **流处理分散和分离基础设施:**流式处理减少了对大型数据库的需求。相反,每个流处理程序通过流处理框架维护了自己的数据和状态,这使得流处理程序更适合微服务架构。
-参考资料
+## 参考资料
-1. [流计算框架Flink与Storm的性能对比](http://bigdata.51cto.com/art/201711/558416.htm)
\ No newline at end of file
+1. [What is stream processing?](https://www.ververica.com/what-is-stream-processing)
+2. [流计算框架Flink与Storm的性能对比](http://bigdata.51cto.com/art/201711/558416.htm)
\ No newline at end of file
diff --git a/notes/流处理.md b/notes/流处理.md
deleted file mode 100644
index ec7a1c2..0000000
--- a/notes/流处理.md
+++ /dev/null
@@ -1,39 +0,0 @@
-## 二、流处理
-
-### 2.1 静态数据架构
-
-在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中。应用程序根据需要查询数据或计算数据。这就是传统的静态数据处理架构。Hadoop采用HDFS进行数据存储,采用MapReduce进行数据查询或分析,这就是典型的静态数据处理架构。
-
-
-
-
-
-### 2.2 流处理
-
-而流处理则是直接对运动中的数据的处理,在接收数据时直接计算数据。
-
-大多数数据都是连续的流:传感器事件,网站上的用户活动,金融交易等等 ,所有这些数据都是随着时间的推移而创建的。
-
-接收和发送数据流并执行应用程序或分析逻辑的系统称为**流处理器**。流处理器的基本职责是确保数据有效流动,同时具备可扩展性和容错能力,Storm和Flink就是其代表性的实现。
-
-
-
-
-
-流处理带来了静态数据处理所不具备的众多优点:
-
-
-
-- **应用程序立即对数据做出反应**:降低了数据的滞后性,使得数据更具有时效性,更能反映对未来的预期;
-
-- **流处理可以处理更大的数据量:**直接处理数据流,并且只保留数据中有意义的子集,并将其传送到下一个处理单元,逐级过滤数据,降低需要处理的数据量,从而能够承受更大的数据量;
-
-- **流处理更贴近现实的数据模型**:在实际的环境中,一切数据都是持续变化的,要想能够通过过去的数据推断未来的趋势,必须保证数据的不断输入和模型的不断修正,典型的就是金融市场、股票市场,流处理能更好的应对这些数据的连续性的特征和及时性的需求;
-
-- **流处理分散和分离基础设施:**流式处理减少了对大型数据库的需求。相反,每个流处理程序通过流处理框架维护了自己的数据和状态,这使得流处理程序更适合微服务架构。
-
-
-
-## 参考资料
-
-1. [What is stream processing?](https://www.ververica.com/what-is-stream-processing)
\ No newline at end of file