欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

storm的基本概念安裝測試-創(chuàng)新互聯(lián)

strom簡介
官方網(wǎng)址:http://storm.apache.org/
是一個免費,開源的分布式實時計算系統(tǒng),使用它可以輕松實現(xiàn)數(shù)據(jù)流的實時處理,Strom很簡單,可以用任何編程語言

站在用戶的角度思考問題,與客戶深入溝通,找到荔波網(wǎng)站設計與荔波網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿營銷網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋荔波地區(qū)。

storm用例:實時在線分析 機器學習,連續(xù)計算,分布式RPC,ETL等。
Strom的特點:快速:基準時鐘在超過一百萬元組(可以理解為數(shù)據(jù)包)每秒處理的每個節(jié)點
簡單的設置:有可擴展性,容錯性,保證了數(shù)據(jù)的處理能力,并且易于設置和操作

storm實時流式計算系統(tǒng)

storm集群與hadoop集群(MapReduce)對比
MapReduce是批處理流程 //hadoop處理海量歷史任務,不能做到實時
storm沒有緩沖區(qū)原數(shù)據(jù)源源不斷的進入處理系統(tǒng),這是流處理 //實時流計算,一直運行直到停止。

Topology(拓撲)與 Mapreduce
一個關鍵的區(qū)別是: 一個MapReduce job 最終會結束, 而一個topology 永遠會運行(除非你手動kill 掉)

Nimbus(作業(yè)控制和資源管理 master進程) 與ResourManager
在Storm 的集群里面有兩種節(jié)點: 控制節(jié)點(master node)和工作節(jié)點(worker node)??刂乒?jié)點上面運行一個叫Nimbus 后臺程序,它的作用類似Hadoop 里面的JobTracker //JobTracker是整個集群中唯一的全局管理者,涉及的功能包括作業(yè)控制和資源管理。
Nimbus 負責在集群里面分發(fā)代碼,分配計算任務給機器, 并且監(jiān)控狀態(tài)。

Supervisor (worker 進程)與NodeManager(YarnChild)
每一個工作節(jié)點上面運行一個叫做Supervisor 的節(jié)點。Supervisor 會監(jiān)聽分配給它那臺機器的工作,根據(jù)需要啟動/關閉工作進程。每一個工作進程執(zhí)行一個topology 的一個子集;一個運行的topology 由運行在很多機器上的很多工作進程組成。


storm實時流式計算的工作機制
2個角色
nimbus是集群的主節(jié)點:負責在集群里面分發(fā)代碼,分配計算任務給機器, 并且監(jiān)控狀態(tài)。//作業(yè)控制和資源管理
supervisor是集群的從節(jié)點:每一個工作節(jié)點上面運行一個叫做Supervisor 的節(jié)點,每一個supervisor里面會有worker進程在服務器上運行著,這些worker是真正干活的。
nimbus和supervisor直接并沒有直接的聯(lián)系,而是需要第三方工具zookeeper實現(xiàn)的
第一個supervisor里面的worker會調用我們寫的一個類比如叫(采集水這個類),處理好了之后,會再次在這個worker里面封裝成一定的數(shù)據(jù)包的格式發(fā)出去,發(fā)給下一個worker,下一個worker會去處理上一個worker傳給他的結果,去調用我們寫的另一個邏輯(調用我們寫的類 過濾邏輯)然后,就是在第二個worker里面去處理,然后再封裝成一定的數(shù)據(jù)包的格式發(fā)出去,發(fā)給下一個worker。
下一個worker也是不知道自己怎么辦,而是調用我們程序自己寫的邏輯(比如調用沉淀這個類),處理完的數(shù)據(jù)再次的封裝成一個數(shù)據(jù)包傳給下一個worker。
最后一個處理步驟,會把處理的結果我們源源不斷的放在一個內存數(shù)據(jù)庫中,(處理結果的使用者)誰要用就可以直接的去使用數(shù)據(jù)。

小結:
整個處理流程的組織協(xié)調不用用戶去關系,用戶只需要去定義每一個步驟中的具體的業(yè)務處理邏輯
具體執(zhí)行任務的角色是worker,worker執(zhí)行任務時具體的行為則由我們定義的業(yè)務邏輯決定。

storm處理數(shù)據(jù)流程小結
1、客戶端client把任務(topology)提交給nimbus
2、nimbus會把任務分配的一些信息放在zookeeper上面;
3、supervisor會通過zookeeper領取到任務
4、supervisor再分配給worker去運行我們的任務
官方解釋如下://這里的基本概念不懂的見下文
也可以叫做Topology運行機制
(1)Storm 提交后,會把代碼首先存放到Nimbus 節(jié)點的inbox 目錄下,之后,會把當前Storm運行的配置生成一個stormconf.ser 文件放到Nimbus 節(jié)點的stormdist 目錄中,在此目錄中同時還有序列化之后的Topology 代碼文件;
(2)在設定Topology 所關聯(lián)的Spouts 和Bolts 時,可以同時設置當前Spout 和Bolt 的executor數(shù)目和task 數(shù)目,默認情況下,一個Topology 的task 的總和是和executor 的總和一致的。之后,系統(tǒng)根據(jù)worker 的數(shù)目,盡量平均的分配這些task 的執(zhí)行。worker 在哪個supervisor節(jié)點上運行是由storm 本身決定的;
(3)任務分配好之后,Nimbes 節(jié)點會將任務的信息提交到zookeeper 集群,同時在zookeeper集群中會有workerbeats 節(jié)點,這里存儲了當前Topology 的所有worker 進程的心跳信息;
(4)Supervisor 節(jié)點會不斷的輪詢zookeeper 集群,在zookeeper 的assignments 節(jié)點中保存了所有Topology 的任務分配信息、代碼存儲目錄、任務之間的關聯(lián)關系等,Supervisor 通過輪詢此節(jié)點的內容,來領取自己的任務,啟動worker 進程運行;
(5)一個Topology 運行之后,就會不斷的通過Spouts 來發(fā)送Stream 流,通過Bolts 來不斷的處理接收到的Stream 流,Stream 流是×××的。
最后一步會不間斷的執(zhí)行,除非手動結束Topology。

有幾點需要說明的地方:
(1)每個組件(Spout 或者Bolt)的構造方法和declareOutputFields 方法都只被調用一次。
(2)open 方法、prepare 方法的調用是多次的。入口函數(shù)中設定的setSpout 或者setBolt 里的并行度參數(shù)指的是executor 的數(shù)目,是負責運行組件中的task 的線程的數(shù)目,此數(shù)目是多少,上述的兩個方法就會被調用多少次,在每個executor 運行的時候調用一次。相當于一個線程的構造方法。
(3)nextTuple 方法、execute 方法是一直被運行的,nextTuple 方法不斷的發(fā)射Tuple,Bolt的execute 不斷的接收Tuple 進行處理。只有這樣不斷地運行,才會產(chǎn)生×××的Tuple 流,體現(xiàn)實時性。相當于線程的run 方法。
(4)在提交了一個topology 之后,Storm 就會創(chuàng)建spout/bolt 實例并進行序列化。之后,將序列化的component 發(fā)送給所有的任務所在的機器(即Supervisor 節(jié)點),在每一個任務上反序列化component。
(5)Spout 和Bolt 之間、Bolt 和Bolt 之間的通信,是通過zeroMQ 的消息隊列實現(xiàn)的。
(6)上圖沒有列出ack 方法和fail 方法,在一個Tuple 被成功處理之后,需要調用ack 方法來標記成功,否則調用fail 方法標記失敗,重新處理這個Tuple。

終止Topology
通過在Nimbus 節(jié)點利用如下命令來終止一個Topology 的運行:
bin/storm kill topologyName
kill 之后,可以通過UI 界面查看topology 狀態(tài),會首先變成KILLED 狀態(tài),在清理完本地目錄和zookeeper 集群中的和當前Topology 相關的信息之后,此Topology 就會徹底消失。

小結zookeeper在storm中的作用
1、nimbus會把任務分配的一些信息放在zookeeper上面;
2、supervisor會通過zookeeper領取到任務
3、numbus需要通過zookeeper去感知supervisor的健康狀態(tài)

Topology的概念類似于MapReduce中提交的一個任務 job
每臺supervisor上會有多個worker進程
每個worker進程中運行著若干個executor線程
每個executor中運行著若干個相同的task

部署storm集群

strom里面處了Nimbus Supervisor 還需要依賴zookeeper,所以在安裝Strom的時候確保zookeeper安裝了
storm的配置與部署
下載storm,然后上傳到linux中
我們解壓后到conf目錄下修改配置
cd conf/
vi storm.yaml
告訴zookeeper在那幾臺機器上部署了
storm.zookeeper.servers:

  • "hadoop-server-00"
  • "hadoop-server-01"
  • "hadoop-server-02"
    告訴Strom nimbus在那臺主機上
    nimbus.host: "hadoop-server-00"
    保存退出

supervisor是不需要去指定的,他的數(shù)量是可以動態(tài)的去增減

然后把他分發(fā)到每臺機器上去
scp -r apache-storm-0.9.2-incubating/ hadoop-server-01:/usr/local/apps/
scp -r apache-storm-0.9.2-incubating/ hadoop-server-02:/usr/local/apps/

啟動storm要先啟動zookeeper
進入zookeeper的bin目錄下去啟動zookeeper
./zkCli.sh start
./zkCli.sh status(查看他的狀態(tài))

啟動Strom
bin目錄上
./storm nimbus(那臺機器上配置了nimbus就在那臺機器上啟動nimbus)

在另外的兩臺機器上去啟動Supervisor
01機器上的bin目錄上
./storm Supervisor
02機器上的bin目錄上
./storm Supervisor

可以通過jps來看進程數(shù)
storm也是可以通過網(wǎng)頁來看的,但是必須要啟動打開網(wǎng)頁的外部服務的進程命令,也必須在啟動nimbus的這臺機器上去啟動這個進程
啟動外部服務的進程命令是cd app/(strom安裝包)/bin/storm ui //直接執(zhí)行這個命令

jps查看進程 ./strom ui
ui的進程叫core
這樣我們就可以通過網(wǎng)頁來看Strom的狀態(tài)
HTTP://hadoop-server-00:8080

小結: //這里是后臺啟動
在nimbus 主機上
//啟動協(xié)調管理nimbus
./storm nimbus 1>/dev/null 2>&1 &
//啟動web 管理界面啟動后可以通過nimbus 主機名:8080 端口進行仿問
./storm ui 1>/dev/null 2>&1 &

在supervisor 主機上
./storm supervisor 1>/dev/null 2>&1 &

slots 代表:槽位,也就是work進程,supervisor內啟動的進程,默認啟動4個。當你的機器的內核非常好的時候,可以修改配置來增加槽位數(shù)
可以知道那個worker的數(shù)量 如果不指點默認為4個

(在配置之前需要把進程都停掉,按ctrl+c就可以停掉進程了)
在配置項vi storm.yaml 里面最后增加(要頂格寫)
supervisor.slots.ports:
-6701
-6702
-6703
-6704
-6705
-6706

//這些數(shù)字表示worker顯示的端口

保存退出
完后,我們要把這個配置文件分發(fā)到另外兩臺機器上去
scp storm.yaml hadoop-server-01:/usr/local/apps/strom(安裝包)/conf/
scp storm.yaml hadoop-server-02:/usr/local/apps/strom(安裝包)/conf/
這樣每個大的worker數(shù)量為6

啟動Strom為后臺進程
在00機器上
bin/storm nimbus 1>/dev/null 2>&1 & (就是啟動nimbus 1到dev下的null目錄中【標準輸出從定性到這個文件中】 把2也從定性到1所去的地方,最后&表示為啟動一個后臺進程)
在00機器上
bin/storm supervisor 1>/dev/null 2>&1 &
注意:如果有錯誤退出,我們可以看看日志文件
cd logs/
ll
less supervisor.log
在00機器上
bin/storm ui 1>/dev/null 2>&1 &
(為了在網(wǎng)頁中可以觀察,我們必須在啟動nimbus的這臺機器上去啟動ui)

我們切換到zookeeper下去打開zookeeper的客戶端
cd /apps/zookeeper(安裝包)/bin
./zkCli.sh
就會發(fā)現(xiàn)一個storm的節(jié)點
ls /strom
就會看到Strom下的節(jié)點
ls /strom/supervisor
就會看到supervisor下的節(jié)點,每個supervisor就會有一個相應的id和網(wǎng)頁上的id是一一對應的

配置小結:
Storm 相關配置項
在storm.yaml 中常用的幾個選項
storm.zookeeper.root
Storm 在zookeeper 集群中的根目錄,默認是“/”

topology.workers
每個Topology 運行時的worker 的默認數(shù)目,若在代碼中設置,則此選項值被覆蓋

storm.zookeeper.servers
zookeeper 集群的節(jié)點列表

storm.local.dir
Storm 用于存儲jar 包和臨時文件的本地存儲目錄

ui.port
Storm 集群的UI 地址端口號,默認是8080

nimbus.host:
Nimbus 節(jié)點的host

supervisor.slots.ports
Supervisor 節(jié)點的worker 占位槽,集群中的所有Topology 公用這些槽位數(shù),即使提交時設置了較大數(shù)值的槽位數(shù),系統(tǒng)也會按照當前集群中實際剩余的槽位數(shù)來進行分配,當所有的槽位數(shù)都分配完時,新提交的Topology 只能等待,系統(tǒng)會一直監(jiān)測是否有空余的槽位空出來,如果有,就再次給新提交的Topology 分配。

storm的編程基本概念
topology:拓撲也叫一個任務,只不過一旦啟動起來就永不停歇,和mapreduce里的job類似只不過job處理完一個任務后就自動停止了

topology內部還分為spouts和bolts
spouts:拓撲的消息源,類似于mapreduce中的map,為后續(xù)的處理流程讀取數(shù)據(jù)源(拿數(shù)據(jù))
bolts:拓撲的處理邏輯單元(在spouts之后的組件叫bolts),bolts可以有很多級,分別處理不同的功能,類似于mapreduce的reduce只不過bolts組件可以有任意多級(處理數(shù)據(jù))

tuple:消息元組//是作為spouts往bolts之間傳遞數(shù)據(jù),封裝數(shù)據(jù)之后叫做tuple,tuple框架來實現(xiàn)spouts往bolts之間的數(shù)據(jù)傳遞
tuple里面可以傳遞多個filed,每個filed可以定義一個名稱。
//spouts、bolts組件之間傳遞數(shù)據(jù)必須封裝在tuple中,tuple可以哦實現(xiàn)定義schema,規(guī)定有哪些字段。

組件與組件之間數(shù)據(jù)傳遞的路線//叫做streaming

stream:流 //數(shù)據(jù)的流向
stream grouping:流里面的分組策略也可以叫做數(shù)據(jù)流向的策略,可以理解為MapReduce中的shuffle階段,指的是在stream中兩頭的運行實例之間數(shù)據(jù)的分發(fā)規(guī)則,
類比mapreduce中的maptask-->reduce task之間的partition(劃分)策略(有很多策略)

tasks:任務處理單元
executor:工作進程(是在workers的線程)
workers:工作進程(是一個多線程的程序)
tasks在executor里面 executor在workers里面

configuration:topology的配置


編程的時候要導入storm的jar包 我們在用集群區(qū)工作的時候,每一個集群機器都應該創(chuàng)建一個storm分析之后的目錄
3臺機器,就應該在3臺機器上去創(chuàng)建
我們編好java程序后打成jar包,長傳到linux機器上面去,
其實storm和mapreduce程序的編寫差不多
執(zhí)行storm的命令為
在bin目錄下
./storm jar ~/phonetopo.jar 客戶端主類 參數(shù)
~/phonetopo.jar:表示,用戶主目錄下的phonetopo.jar
參數(shù)為:集群提交的時候,給他的名稱

啟動后我們可以通過命令來查看
bin/strom list
程序會一直運行下去,實時在線分析

我們用命令去關閉程序
bin/storm kill phone-topo(phone-topo:客戶端給的名字)

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

本文題目:storm的基本概念安裝測試-創(chuàng)新互聯(lián)
文章URL:http://aaarwkj.com/article24/gjoje.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站網(wǎng)站改版、軟件開發(fā)、網(wǎng)站維護、域名注冊、品牌網(wǎng)站設計

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
欧美日韩精品亚洲成人精品| 囗交囗爆吞精在线视频| 日本一二不卡高清在线视频| 国产中文字幕有码视频| 91精品国产老熟女在线| 日韩人妖视频在线观看| 日本人妻系列在线播放| 青青草原一区在线观看| 欧美日韩专区一区二区三区| 四虎免费在线视频观看| 久久久久久亚洲av黄床| 成人深夜福利视频观看| 色一区欧美一区亚洲一区| 国产精品综合av一区二区国产馆| 成人福利在线观看免费视频| 亚洲精品入口一区二区| 亚洲av少妇高潮流白浆在线| 亚洲综合久久国产一区二区| 日本av免费观看一区二区| 日本高清一区二区不卡视频| 日韩二区三区在线视频| 日木av中文字幕女女同性| 国产丝袜美腿诱惑久久| 国产欧美日韩在线高清| 熟女少妇久久中文字幕| 亚洲免费视频区一区二| 日本在线人妻一区二区| 亚洲午夜精品美女写真| 亚洲精品一区二区三区三州| 动漫美女视频在线看黄| 91极品气质女神长腿翘臀| 国产日韩欧美老年人激情| 美女高潮久久久777| 欧美日本午夜福利在线观看| 久久激情日本人妻av免费| 男人的天堂av免费看看| 中午字幕人妻少妇久久| 日本人妻精品一区二区| 中文字幕人妻秘书社长| 日韩av高清不卡一区二区三区| 国产第一页第二页在线|