在单节点环境下,运行我们的第一个Storm程序,ui界面分析并行度

我们还是先看下官网的介绍:

http://storm.apache.org/releases/1.1.2/Running-topologies-on-a-production-cluster.html

一、改写我们之前的Strom程序

代码下载地址:https://gitee.com/jikeh/JiKeHCN-RELEASE.git

项目名:spring-boot-storm

1、pom依赖更改

  • storm依赖改为provided
<dependency>
<groupid>org.apache.storm/<groupid>
<artifactid>storm-core/<artifactid>
<version>1.1.3/<version>
<scope>provided/<scope>
<exclusions>
<exclusion>
<groupid>org.apache.logging.log4j/<groupid>
<artifactid>log4j-slf4j-impl/<artifactid>
/<exclusion>
/<exclusions>
/<dependency>
  • 打包我们的程序
<build>
<plugins>
<plugin>
<groupid>org.apache.maven.plugins/<groupid>
<artifactid>maven-compiler-plugin/<artifactid>
<version>${maven-compiler-plugin.version}/<version>
<configuration>
<source>${maven.compiler.source}/<source>
<target>${maven.compiler.target}/<target>
/<configuration>
/<plugin>
<plugin>
<groupid>org.apache.maven.plugins/<groupid>
<artifactid>maven-assembly-plugin/<artifactid>
<configuration>
<descriptorrefs>

<descriptorref>jar-with-dependencies/<descriptorref>
/<descriptorrefs>
<archive>
<manifest>
<mainclass>com.jikeh.SpringBootMain/<mainclass>
/<manifest>
/<archive>
/<configuration>
<executions>
<execution>
make-assembly
<phase>package/<phase>
<goals>
<goal>single/<goal>
/<goals>
/<execution>
/<executions>
/<plugin>
/<plugins>
/<build>

2 拓扑提交更改

String topoName = NumberSumTopology.class.getSimpleName();
try {
StormSubmitter.submitTopology(topoName, new Config(), topologyBuilder.createTopology());
} catch (Exception e) {
e.printStackTrace();
}

3 启动Storm环境

nohup sh $STORM_HOME/bin/storm dev-zookeeper &
nohup sh $STORM_HOME/bin/storm nimbus &
nohup sh $STORM_HOME/bin/storm supervisor &
nohup sh $STORM_HOME/bin/storm ui &
nohup sh $STORM_HOME/bin/storm logviewer &

4 部署我们的代码

$STORM_HOME/bin/storm jar /usr/local/src/spring-boot-storm-0.0.1-SNAPSHOT.jar com.jikeh.Topology.NumberSumTopology

在单节点环境下,运行我们的第一个Storm程序,ui界面分析并行度

提交了作业之后,我们再次观察当前的进程,发现多了一个work进程,一个logwrite进程,因为我们提交的作业是由worker来完成的

[root@jikeh src]# jps
1329 nimbus
1986 Jps
1843 LogWriter
1398 Supervisor
1451 core
1279 dev_zookeeper
1855 worker
1519 logviewer

二、再探Storm UI界面参数

http://192.168.199.147:8080/

1)集群概要:

在单节点环境下,运行我们的第一个Storm程序,ui界面分析并行度

  • Used slots现在变成1了

因为我们提交了一个作业,使用了一个worker

2)拓扑概要:

在单节点环境下,运行我们的第一个Storm程序,ui界面分析并行度

  • Status:ACTIVE
  • Num workers:1
  • Num executors:3
  • Num tasks:3

这其实就是默认的并行度,因为我们在代码里没有进行任何设置:默认情况下1个topology作业占用1个worker,一个new spout一个executor,一个bolt一个executor,一个executor一个task;

  • 问:3个executor,spout占用1个和bolt占用1个,那么还有一个去哪了?

有一个acker进程,我们后面会详细讲解。

3)并行度初探:我们下篇会详细讲解

我们再提交一个作业:

先新建一个测试文件:

mkdir storm_test

vim 1.txt

welcome to visit our website jikeh and take a look at our premium courses
welcome to visit our/>welcome to visit our toutiao and take a look at our articles

$STORM_HOME/bin/storm jar /usr/local/src/spring-boot-storm-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.jikeh.Topology.WordCountTopology

  • 查看日志
在单节点环境下,运行我们的第一个Storm程序,ui界面分析并行度

发现有错误提示,我们根据提示,很容易知道哪里出错了,也不用进入服务器查看错误信息了

  • 更改后我们再次提交,再次查看下日志
在单节点环境下,运行我们的第一个Storm程序,ui界面分析并行度

  • 并行度分析
在单节点环境下,运行我们的第一个Storm程序,ui界面分析并行度

在单节点环境下,运行我们的第一个Storm程序,ui界面分析并行度

注释:自己分析下worker数,executor数,task数,如果不明白,期待视频教程吧!!!

4)如何杀死我们的作业

$STORM_HOME/bin/storm kill NumberSumTopology

在单节点环境下,运行我们的第一个Storm程序,ui界面分析并行度

下篇,我们将分享三节点storm集群环境的搭建,并深入分析storm并行度,实战演示storm并行度调优……


分享到:


相關文章: