From 24e351c7dc14342df57a6d03e88474c85945dd2e Mon Sep 17 00:00:00 2001 From: heibaiying <31504331+heibaiying@users.noreply.github.com> Date: Wed, 30 Oct 2019 14:12:21 +0800 Subject: [PATCH] =?UTF-8?q?Update=20Storm=E7=BC=96=E7=A8=8B=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E8=AF=A6=E8=A7=A3.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/Storm编程模型详解.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/notes/Storm编程模型详解.md b/notes/Storm编程模型详解.md index e2eff5c..cbd8673 100644 --- a/notes/Storm编程模型详解.md +++ b/notes/Storm编程模型详解.md @@ -23,6 +23,7 @@ 下图为 Strom 的运行流程图,在开发 Storm 流处理程序时,我们需要采用内置或自定义实现 `spout`(数据源) 和 `bolt`(处理单元),并通过 `TopologyBuilder` 将它们之间进行关联,形成 `Topology`。
+ ## 二、IComponent接口 `IComponent` 接口定义了 Topology 中所有组件 (spout/bolt) 的公共方法,自定义的 spout 或 bolt 必须直接或间接实现这个接口。 @@ -101,6 +102,7 @@ public interface ISpout extends Serializable { **通常情况下,我们实现自定义的 Spout 时不会直接去实现 `ISpout` 接口,而是继承 `BaseRichSpout`。**`BaseRichSpout` 继承自 `BaseCompont`,同时实现了 `IRichSpout` 接口。
+ `IRichSpout` 接口继承自 `ISpout` 和 `IComponent`,自身并没有定义任何方法: ```java @@ -191,6 +193,7 @@ public interface IBolt extends Serializable { 同样的,在实现自定义 bolt 时,通常是继承 `BaseRichBolt` 抽象类来实现。`BaseRichBolt` 继承自 `BaseComponent` 抽象类并实现了 `IRichBolt` 接口。
+ `IRichBolt` 接口继承自 `IBolt` 和 `IComponent`,自身并没有定义任何方法: ``` @@ -214,6 +217,7 @@ public interface IRichBolt extends IBolt, IComponent { 这里我们使用自定义的 `DataSourceSpout` 产生词频数据,然后使用自定义的 `SplitBolt` 和 `CountBolt` 来进行词频统计。
+ > 案例源码下载地址:[storm-word-count](https://github.com/heibaiying/BigData-Notes/tree/master/code/Storm/storm-word-count) ### 5.2 代码实现 @@ -434,6 +438,7 @@ storm jar /usr/appjar/storm-word-count-1.0.jar com.heibaiying.wordcount.Cluster 出现 `successfully` 则代表提交成功:
+ ### 6.4 查看Topology与停止Topology(命令行方式) ```shell @@ -445,6 +450,7 @@ storm kill ClusterWordCountApp -w 3 ```
+ ### 6.5 查看Topology与停止Topology(界面方式) 使用 UI 界面同样也可进行停止操作,进入 WEB UI 界面(8080 端口),在 `Topology Summary` 中点击对应 Topology 即可进入详情页面进行操作。