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