storm学习总结
1.storm shell端常用指令:
提交Topologies
命令格式:storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】
样例:storm jar /storm-starter.jar storm.starter.WordCountTopology wordcountTop
#提交storm-starter.jar到远程集群,并启动wordcountTop拓扑。
停止Topologies
命令格式:storm kill 【拓扑名称】
样例:storm kill wordcountTop
#杀掉wordcountTop拓扑。
启动nimbus后台程序
命令格式:storm nimbus
启动supervisor后台程序
命令格式:storm supervisor
启动drpc服务
命令格式:storm drpc
启动ui服务
命令格式:storm ui
启动REPL
REPL — read-evaluate-print-loop。
虽然clojure可以作为一种脚本语言内嵌在java里面,但是它的首选编程方式是使用REPL,这是一个简单的命令行接口,使用它你可以输入你的命令,执行,然后查看结果, 你可以以下面这个命令来启动REPL:
命令格式:storm repl
打印本地配置
命令格式:storm localconfvalue 【配置参数关键字】
举例:storm localconfvalue storm.zookeeper.servers
#根据指定参数打印本地配置的值。
打印远程配置
命令格式:storm remoteconfvalue 【配置参数关键字】
举例:storm remoteconfvalue storm.zookeeper.servers
#根据指定参数打印远程配置的值。
执行Shell脚本
命令格式:storm shell resourcesdir command args
打印CLASSPATH
命令格式:storm classpath
2.storm 启动日志查看,即在storm ui中直接查看日志
nohub storm logview &
.查看storm的日志,找到各个节点,的storm的根目录,在根目录下的logs文件夹下会生成一个xxxx-端口号.log的日志文件
3.storm 中 开启drpc功能
在集群中每台机器的storm conf配置文件 storm.yaml中修改
然后 控制台 bin/storm drpc
4.storm rebalance 拓扑名称 -n 12 这个指令是重新设置worker的数量 ,这是在不重启拓扑的前提下,动态的调整worker的数量,同样,每个spout blot的并发数都可以动态的调整
5.如何通过storm ui 来查看,自己topologic中设置的并发度是否可以,是否出现数据在内存中的拥堵?
上图中如果emitted数量和acked的数量差不多,那就是合理,如果 emitted的数量,远远大于acked的数量,那就需要把并发度设置大一些
关于storm吞吐量的问题,可以参考这篇文章:https://blog.csdn.net/WeiJonathan/article/details/38536671?tdsourcetag=s_pcqq_aiomsg
5. storm maven项目的pom.xml 文件,重点看如何打包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zhangshitong</groupId> <artifactId>trident</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.storm/storm-kafka --> <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-kafka</artifactId> <version>1.2.1</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.storm/storm-core --> <dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId> <version>1.2.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.11</artifactId> <version>0.10.0.1</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>0.10.0.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
cd 到 项目pom.xml 文件所在位置 执行命令 mvn clean package
6.storm版本的问题,在storm1之前的版本,是没有被apache基金收购,而在1版本之后storm被Apache基金收购了,所以出现了包名、类名的变更
类包已经从“backtype.storm”更改为“org.apache.storm”