大数据技术之Stome 概念
Storm 是一個分布式的 ,容錯的實時計算系統(tǒng)
Storm 實時 低延遲 ,主要有兩個原因 :
1 storm 進程是常駐內(nèi)存的,沒有hadoop 里面的不斷的起停
2 storm 的數(shù)據(jù)是不經(jīng)過磁盤的,都是在內(nèi)存里面的,處理完成就沒有了,數(shù)據(jù)的交換經(jīng)過網(wǎng)絡(luò),沒有磁盤IO
Storm 和hadoop的區(qū)別 :
數(shù)據(jù)來源不同,hadoop是hdfs 上某個文件夾下可能是上TB的數(shù)據(jù),storm 是實時的新增的一筆數(shù)據(jù)
處理過程不同,hadoop是分map 和reduce 階段額,storm 是由用戶定義的處理流程,流程中包含多個步驟,每個步驟可以是數(shù)據(jù)源spout 或處理邏輯 bolt
是否結(jié)束,hadoop 最后是要結(jié)束的,storm是沒有結(jié)束狀態(tài),到最后一步時,就停滯,等有新數(shù)據(jù)進入時再喚醒程序
處理速度不同,hadoop 是以處理hdfs 上大數(shù)據(jù)量為目的的,速度慢,storm是只要處理實時的新增的某一筆內(nèi)存中的數(shù)據(jù)即可,速度極快
適用場景不同,hadoop 是以批處理用的,不講時效性,處理一次就提交一個job storm 處理一段時間內(nèi)新增的數(shù)據(jù),有時效性
與mq 相比,hadoop 沒有可比性,storm 可以看作是n 個步驟,每個步驟處理完就向下一個mq 發(fā)送消息,監(jiān)聽這個mq 的消費者繼續(xù)處理
Storm 架構(gòu)
Nimbus?? 集群管理,接受jar包 ,調(diào)度topology
nimbus <---> zk<----> slave(supervisor)
nimbus 處理topology submit kill rebalance 等請求
Supervisor? 起停worker
監(jiān)控worker ,把自己的情況匯報給zk
每臺機器起一個supervisor 進程
worker?? 一個jvm進程資源分配單位? ,可以啟動多個executor
每個機器supervisor啟動多個worker,默認(rèn) 4 個
executor?? 干活的奴隸 ,線程
executor 創(chuàng)建 spout bolt 對象 執(zhí)行spout bolt 里面的nexttuple()? execute()
task
zookeeper
完全分布規(guī)劃? (zk 服務(wù)器 3 臺,一臺nimbus,N臺 supervisor服務(wù)器)
storm 的核心配置是 conf/storm.yaml
storm.zookeeper.servers:
?- "spark001"
?- "spark002"
?- "spark003"
nimbus.host: "spark001"
storm 的ui 默認(rèn)端口是 8080 ?????
編程模型,
DAG? Spout? Bolt
Storm? 啟動
首先啟動zookeeper
依次啟動nimbus ,ui supervisor ,logviewer
提交topology
./bin/storm jar examples/storm-starter/storm-starter-topoloies-0.98.0.jar storm.starter.WordCountTopology wordcount
轉(zhuǎn)載于:https://www.cnblogs.com/TendToBigData/p/10501489.html
總結(jié)
以上是生活随笔為你收集整理的大数据技术之Stome 概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。