本地模式運行
本地模式類似storm集群是一個進程,用來編寫和測試topology。在本地模式上運行topology類似在一個集群上運行topology。創建一個本地集群:
import backtype.storm.LocalCluster;
LocalCluster cluster = new LocalCluster();
提交集群使用submitTopology,
殺死集群使用killTopology
關閉一個本地集群使用cluster.shutdown();
本地模式下的公共配置:
Config.TOPOLOGY_MAX_TASK_PARALLELISM
Config.TOPOLOGY_DEBUG:
生產集群運行
一、步驟
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包使用storm 客戶端命令,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或者集群上的工作日志
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。