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”

猜你喜欢

转载自www.cnblogs.com/zhangshitong/p/10454795.html