Storm在生产集群上运行Topology

一、步骤
1、定义topology,若用java语言,使用TopologyBuilder来定义
2、使用StormSubmitter来提交topology到集群中,所需参数需要topology名字,topology的参数配置,topology本身
例:
Config conf = new Config();
conf.setNumWorkers(20);
conf.setMaxSpoutPending(5000);
StormSubmitter.submitTopology("mytopology", conf, topology);
3、创建jar包,jar包包含你的所有的代码
4、提交topology,为jar包指定参数
storm jar path/to/allmycode.jar org.me.MyTopology arg1 arg2 arg3
实例:

1 public static void main(String[] args) throws Exception {

2 TopologyBuilder builder = new TopologyBuilder();

3 builder.setSpout("random", new RandomWordSpout(), 2);

4 builder.setBolt("transfer", new TransferBolt(), 4).shuffleGrouping("random");

5 builder.setBolt("writer", new WriterBolt(), 4).fieldsGrouping("transfer", new Fields("word"));

6 Config conf = new Config();

7 conf.setNumWorkers(4);// 设置启动4个Worker

8 conf.setNumAckers(1); // 设置一个ack线程

9 conf.setDebug(true); // 设置打印所有发送的消息及系统消息

10 StormSubmitter.submitTopology("test", conf, builder.createTopology());

11 }

二、公共配置
Config.TOPOLOGY_WORKERS :设置执行topology的worker的数量
Config.TOPOLOGY_ACKER_EXECUTORS:
Config.TOPOLOGY_MAX_SPOUT_PENDING
Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS:默认是30s
Config.TOPOLOGY_SERIALIZATIONS

三、杀死topology
storm kill stormname

四、更新一个正在运行的topology
 杀死一个正在运行的topology,提交一个新的topology,计划使用storm swap命令

五、监控topology使用Storm UI或者集群上的工作日志

时间: 2024-10-12 21:22:50

Storm在生产集群上运行Topology的相关文章

【转】Twitter Storm: 在生产集群上运行topology

Twitter Storm: 在生产集群上运行topology 发表于 2011 年 10 月 07 日 由 xumingming 作者: xumingming | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://xumingming.sinaapp.com/185/twitter-storm-在生产集群上运行topology/ 本文翻译自: https://github.com/nathanmarz/storm/wiki/Running-topologi

storm学习之-在生产集群上运行topology

https://storm.apache.org/documentation/Setting-up-a-Storm-cluster.html -官方文档 http://xumingming.sinaapp.com/185/twitter-storm-在生产集群上运行topology/ --徐明明 http://blog.cheyo.net/84.html   --运行一个

用python + hadoop streaming 编写分布式程序(二) -- 在集群上运行与监控

写在前面 前文:用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 为了方便,这篇文章里的例子均为伪分布式运行,一般来说只要集群配置得当,在伪分布式下能够运行的程序,在真实集群上也不会有什么问题. 为了更好地模拟集群环境,我们可以在mapred-site.xml中增设reducer和mapper的最大数目(默认为2,实际可用数目大约是CPU核数-1). 假设你为Hadoop安装路径添加的环境变量叫$HADOOP_HOME(如果是$HAD

将java开发的wordcount程序部署到spark集群上运行

1 package cn.spark.study.core; 2 3 import java.util.Arrays; 4 5 import org.apache.spark.SparkConf; 6 import org.apache.spark.api.java.JavaPairRDD; 7 import org.apache.spark.api.java.JavaRDD; 8 import org.apache.spark.api.java.JavaSparkContext; 9 impo

将java开发的wordcount程序提交到spark集群上运行

今天来分享下将java开发的wordcount程序提交到spark集群上运行的步骤. 第一个步骤之前,先上传文本文件,spark.txt,然用命令hadoop fs -put spark.txt /spark.txt,即可. 第一:看整个代码视图 打开WordCountCluster.java源文件,修改此处代码: 第二步: 打好jar包,步骤是右击项目文件----RunAs--Run Configurations 照图填写,然后开始拷贝工程下的jar包,如图,注意是拷贝那个依赖jar包,不是第

在集群上运行Spark应用的详细过程

在集群上运行Spark应用的详细过程: (1)用户通过spark-submit脚本提交应用 (2)spark-submit脚本启动驱动器程序,调用用户定义的main()方法 (3)驱动器程序与集群管理器通信,申请资源以启动执行器节点 (4)集群管理器为驱动器程序启动执行器节点 (5)驱动器进程执行用户应用中的操作.根据程序中所定义的对RDD的转换操作和行动操作,驱动器节点把动作以任务的形式发送到执行器进程 (6)任务在执行器程序中进行计算并保存结果 (7)如果驱动器程序的main()方法退出,或

在集群上运行caffe程序时如何避免Out of Memory

不少同学抱怨,在集群的GPU节点上运行caffe程序时,经常出现"Out of Memory"的情况.实际上,如果我们在提交caffe程序到某个GPU节点的同时,指定该节点某个比较空闲的gpu id,便可以避免"Out of Memory"的情况.步骤如下: 1. 在提交任务前,制作一个带有“nvidia-smi”命令的run_gpu.sh文件 #!/bin/bash #$ -V #$ -cwd #$ -j y #$ -S /bin/bash nvidia-smi

06、部署Spark程序到集群上运行

06.部署Spark程序到集群上运行 6.1 修改程序代码 修改文件加载路径 在spark集群上执行程序时,如果加载文件需要确保路径是所有节点能否访问到的路径,因此通常是hdfs路径地址.所以需要修改代码中文件加载路径为hdfs路径: ... //指定hdfs路径 sc.textFile("hdfs://mycluster/user/centos/1.txt") ... ? 修改master地址 SparkConf中需要指定master地址,如果是集群上运行,也可以不指定,运行时可以通

从认证到调度,K8s 集群上运行的小程序到底经历了什么?

作者 | 声东? 阿里云售后技术专家 导读:不知道大家有没有意识到一个现实:大部分时候,我们已经不像以前一样,通过命令行,或者可视窗口来使用一个系统了. 前言 现在我们上微博.或者网购,操作的其实不是眼前这台设备,而是一个又一个集群.通常,这样的集群拥有成百上千个节点,每个节点是一台物理机或虚拟机.集群一般远离用户,坐落在数据中心.为了让这些节点互相协作,对外提供一致且高效的服务,集群需要操作系统.Kubernetes 就是这样的操作系统. 比较 Kubernetes 和单机操作系统,Kuber