日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Storm篇】--Storm并发机制

發布時間:2025/3/18 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Storm篇】--Storm并发机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前述

為了提高Storm的并行能力,通常需要設置并行。

二、具體原理

1. Storm并行分為幾個方面:

Worker – 進程
一個Topology拓撲會包含一個或多個Worker(每個Worker進程只能從屬于一個特定的Topology)
這些Worker進程會并行跑在集群中不同的服務器上,即一個Topology拓撲其實是由并行運行在Storm集群中多臺服務器上的進程所組成

Executor – 線程
Executor是由Worker進程中生成的一個線程
每個Worker進程中會運行拓撲當中的一個或多個Executor線程
一個Executor線程中可以執行一個或多個Task任務(默認每個Executor只執行一個Task任務),但是這些Task任務都是對應著同一個組件(Spout、Bolt)。

Task
實際執行數據處理的最小單元
每個task即為一個Spout或者一個Bolt

注意:

Task數量在整個Topology生命周期中保持不變,Executor數量可以變化或手動調整
(默認情況下,Task數量和Executor是相同的,即每個Executor線程中默認運行一個Task任務)


2.在程序中具體設置:

設置Worker進程數
Config.setNumWorkers(int workers)

設置Executor線程數
TopologyBuilder.setSpout(String id, IRichSpout spout, Number parallelism_hint)
TopologyBuilder.setBolt(String id, IRichBolt bolt, Number parallelism_hint)
:其中, parallelism_hint即為executor線程數

設置Task數量
ComponentConfigurationDeclarer.setNumTasks(Number val)

例:
Config conf = new Config() ;
conf.setNumWorkers(2);//設置worker數

TopologyBuilder topologyBuilder = new TopologyBuilder();
topologyBuilder.setSpout("spout", new MySpout(), 1);//設置線程數
topologyBuilder.setBolt("green-bolt", new GreenBolt(), 2)
?????????????? .setNumTasks(4)//設置總共的task數這個Bolt任務的
?????????????? .shuffleGrouping("blue-spout);

3.案例詳解

?

4.Rebalance – 再平衡
即,動態調整Topology拓撲的Worker進程數量、以及Executor線程數量

支持兩種調整方式:
1、通過Storm UI
2、通過Storm CLI(一般用這個!!!)

通過Storm CLI動態調整:
例:storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
將mytopology拓撲worker進程數量調整為5個
“ blue-spout ” 所使用的線程數量調整為3個
“ yellow-bolt ”所使用的線程數量調整為10個

PS:當調整的task或者worker進程超過集群配置時,還是按集群最大配置運行。

?

?

轉載于:https://www.cnblogs.com/LHWorldBlog/p/8353278.html

總結

以上是生活随笔為你收集整理的【Storm篇】--Storm并发机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。