This commit is contained in:
罗祥
2019-03-29 16:21:28 +08:00
parent f190eea0a3
commit fe27837614
3 changed files with 255 additions and 263 deletions

View File

@ -1,4 +1,5 @@
# storm 核心概念核心概念详解 # storm 核心概念核心概念详解
<nav> <nav>
<a href="#一storm核心概念">一、storm核心概念</a><br/> <a href="#一storm核心概念">一、storm核心概念</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#11--Topologies拓扑">1.1 Topologies拓扑</a><br/> &nbsp;&nbsp;&nbsp;&nbsp;<a href="#11--Topologies拓扑">1.1 Topologies拓扑</a><br/>
@ -19,7 +20,7 @@
## 一、storm核心概念 ## 一、storm核心概念
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/spout-bolt.png"/> </div>
### 1.1 Topologies拓扑 ### 1.1 Topologies拓扑
@ -164,7 +165,7 @@ Bolt 中最主要的方法是 `execute` 方法, 当有一个新 Tuple 输入的
### 1.5 Stream groupings分组策略 ### 1.5 Stream groupings分组策略
<div align="center"> <img width="400px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/topology-tasks.png"/> </div>
spouts和bolts在集群上执行任务时是由多个Task并行执行如上图每一个圆圈代表一个Task。当一个tuple需要从Bolt A发送给Bolt B执行的时候我们怎么知道需要发送给Bolt B的哪一个Task执行这是由Stream groupings 分组策略来决定的。 spouts和bolts在集群上执行任务时是由多个Task并行执行如上图每一个圆圈代表一个Task。当一个tuple需要从Bolt A发送给Bolt B执行的时候我们怎么知道需要发送给Bolt B的哪一个Task执行这是由Stream groupings 分组策略来决定的。
@ -183,7 +184,7 @@ Storm 中一共有8个内置的 Stream Grouping。也可以通过实现 `CustomS
## 二、storm架构详解 ## 二、storm架构详解
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/Internal-Working-of-Apache-Storm.png"/> </div>
### 2.1 nimbus进程 ### 2.1 nimbus进程
@ -233,7 +234,7 @@ storm集群的任务执行者 循环执行task代码。
### 2.6 并行度 ### 2.6 并行度
<div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/relationships-worker-processes-executors-tasks.png"/> </div>
1个worker进程执行的是1个topology的子集不会出现1个worker为多个topology服务。1个worker进程会启动1个或多个executor线程来执行1个topology的component(spout或bolt)。因此1个运行中的topology就是由集群中多台物理机上的多个worker进程组成的。 1个worker进程执行的是1个topology的子集不会出现1个worker为多个topology服务。1个worker进程会启动1个或多个executor线程来执行1个topology的component(spout或bolt)。因此1个运行中的topology就是由集群中多台物理机上的多个worker进程组成的。

View File

@ -6,13 +6,6 @@
<nav>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#1安装环境要求">1.安装环境要求</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#2下载并解压">2.下载并解压</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#3配置环境变量">3.配置环境变量</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#4启动相关进程">4.启动相关进程</a><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="#5验证是否启动成功">5.验证是否启动成功</a><br/>
</nav>
### 1.安装环境要求 ### 1.安装环境要求
按照[官方文档](http://storm.apache.org/releases/1.2.2/Setting-up-a-Storm-cluster.html)的要求: 按照[官方文档](http://storm.apache.org/releases/1.2.2/Setting-up-a-Storm-cluster.html)的要求:
@ -22,9 +15,7 @@
> 1. Java 7+ (Apache Storm 1.x is tested through travis ci against both java 7 and java 8 JDKs) > 1. Java 7+ (Apache Storm 1.x is tested through travis ci against both java 7 and java 8 JDKs)
> 2. Python 2.6.6 (Python 3.x should work too, but is not tested as part of our CI enviornment) > 2. Python 2.6.6 (Python 3.x should work too, but is not tested as part of our CI enviornment)
storm 运行依赖于Java 7+ 和 Python 2.6.6 +,所以需要先安装以上两个软件。 storm 运行依赖于Java 7+ 和 Python 2.6.6 +,所以需要先安装以上两个软件。由于以上两个软件在多个环境中都有依赖,其安装步骤单独整理至:
由于以上两个软件在多个环境中都有依赖,其安装步骤单独整理至:
+ [Linux环境下JDK安装](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux下JDK安装.md) + [Linux环境下JDK安装](https://github.com/heibaiying/BigData-Notes/blob/master/notes/installation/Linux下JDK安装.md)
@ -99,4 +90,4 @@ nohup sh storm logviewer &
验证方式二: 访问8080端口查看Web-UI界面 验证方式二: 访问8080端口查看Web-UI界面
<div align="center"> <img width="600px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/storm-web-ui.png"/> </div> <div align="center"> <img src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/storm-web-ui.png"/> </div>