Storm入門,看這篇就夠了

部分一:Srorm 簡介

1.1 Storm是實時的數(shù)據(jù)流,Hadoop是批量離線數(shù)據(jù)

起源背景

  • Twitter 開源的一個類似于Hadoop的實時數(shù)據(jù)處理框架
  • Storm是由Nathan Marz 在BackType公司【做社交數(shù)據(jù)分析馆纳,數(shù)據(jù)量大】工作中實現(xiàn)的,這家公司后來被Twitter收購昌腰。

Ps:·Hadoop分布式存儲和分布式計算兩個難題全部解決了盹愚。但是缺點就是不能實時處理數(shù)據(jù)煌珊,Storm的作者就像寫一個這樣實時數(shù)據(jù)處理場景的框架出來

1.2 Storm應用場景【實時處理數(shù)據(jù)】
  • 推薦系統(tǒng):實時推薦,根據(jù)下單或加入購物車等操作
  • 網(wǎng)站統(tǒng)計:實時銷量蚕键,流量統(tǒng)計
  • 監(jiān)控預警系統(tǒng)救欧,金融系統(tǒng)
1.3Storm特性
  • 擴展性強,當計算能力不足時锣光,可以進行橫向擴展機器
  • 保證數(shù)據(jù)不丟失笆怠,且數(shù)據(jù)可以消費一次或多次
  • 容錯性好,消息處理過程出現(xiàn)異常誊爹,會進行重試
  • 語言無關性:storm程序可以使用各種語言進行編寫

部分2 Storm原理

2.1拓展:大數(shù)據(jù)框架都有哪些架構類型蹬刷?

主從架構:簡單高效,單主節(jié)點存在單點問題
HDFS\YARN\Storm\Hbase\Spark\Flink

對稱架構:復雜频丘,效率較低办成,無單點問題,更加可靠
Zookeeper\Kafka [會進行主節(jié)點的選舉]

Storm的主從架構

  • Nimbus 主節(jié)點
  • Sipervisor 從節(jié)點

Nimbus—zookeeper--supervisor

Storm組件:Nimbus

  • 接收客戶端的topo代碼搂漠,拆分成多個task,將task信息存入zk迂卢,并將task分配給Supervisor,將映射關系存入ZK,并進行故障檢測

  • 類比:部門經(jīng)理將需求拆分為 多個任務(每個任務有多個模塊) 將這些任務寫入項目文檔中去桐汤,而克,并將每個任務與每一程序員進行對應

Storm組件:Supervisor

  • 從Nimbus目錄讀取代碼,從zk上讀取Nimbus分配的task
  • 啟動工作進程Worker
  • 監(jiān)控每一個工作進程Worker

Storm 組件:Worker

  • 從zk上讀取分配的task,并計算出task需要給哪些task發(fā)信息
  • 啟動一個或多個Execucor線程執(zhí)行任務Task

Storm組件:Zookeeper

  • Nimbus與Supervisor進行通信(分配任務與心跳)
  • Supervisor與Worker進行通信(分配任務和心跳)
  • Nimbus高可用(HA機制)

動手實踐

  • Zookeeper簡介與集群配置【Storm的各個組件間是通過這個組件進行通信】
  • Zookeeper 的核心怔毛,單機和集群的配置方法
  • Storm的單機和集群環(huán)境的搭建

部分3.Zookeeper簡介與集群配置【Storm的各個組件間是通過這個組件進行通信】

簡介:
Zookeeper是一個開源的分布式協(xié)調服務的框架拍摇,使各個機器進行之間進行通信

3.1核心功能:
  • 文件系統(tǒng)
  • 通知機制

文件系統(tǒng):
類似于linux的文件系統(tǒng)目錄結構,從根目錄(/)開始

1.每一個目錄都是一個znode節(jié)點

2.每一個znode節(jié)點可直接存儲數(shù)據(jù)

3.類型:持久化馆截,持久化順序充活,臨時蜂莉,臨時順序

通知機制:

  • 客戶端監(jiān)聽關心的znode節(jié)點
  • Znode節(jié)點有變化(數(shù)據(jù)改變、刪除混卵、子目錄添加刪除)映穗,通知客戶端處理
3.2 zookeeper的安裝

下載:直接去官網(wǎng):zookeeper.apache.org或CDH5進行下載
/opt/soft [下載位置]
/opt/module 【解壓位置】
下載 *.tar.gz
解壓 tar –zxvf *tar.gz –C /apps

解壓后的主要目錄結構:
bin:包含

  • zkCli.sh 【命令行客戶端,可以去連接到這個文件系統(tǒng)幕随,類似于hadoop fs】
  • zkCleanup.sh [zk是一個小型文件系統(tǒng)蚁滋,用于清理數(shù)據(jù)信息,保證各個節(jié)點的數(shù)據(jù)一致]
  • zkEnv.sh [環(huán)境變量的一些東西]
  • zkServer.sh 【zk服務器的啟動停止等操作】

conf:包含

  • log4j.properties 日志輸出級別
  • zoo_sample.cfg mv zoo_sample.cfg zoo.cfg
  • [tickTime:客戶端與zk服務器的心跳時間赘淮,各個znode節(jié)點也要保持心跳]
  • InitLimit 啟動集群時候辕录,選舉Nimbus節(jié)點的最大時間 tickTime* InitLimit
  • SyncLimit 集群中各個znode節(jié)點進行數(shù)據(jù)同步時候,保持數(shù)據(jù)一致性梢卸,進行數(shù)據(jù)同步的最大時間走诞,超過這個時間,數(shù)據(jù)會同步失敗
  • dataDir zookeeper是一個小型的文件系統(tǒng)蛤高,將數(shù)據(jù)存放在哪里配置
  • clientPort 客戶端訪問zk服務器的端口號2181去連接到這個服務器

在解壓后的目錄新建一個data的目錄用于存放zk的數(shù)據(jù)
將$ZK_HOME/data 替換conf/zoo.cfg 中的dataDir

啟動bin/zkServer.sh start
Jps
Or
bin/zkServer.sh status

  • standalone狀態(tài)
3.3 zk的命令行客戶端

去連接zk服務器
bin/zkCli.sh
這樣會連接本地的zk服務器‘
里面的操作類似于linux的操作
輸入ls
查看根目錄有什么 ls /
查看目錄下面的數(shù)據(jù) get /
創(chuàng)建目錄 create /test 111
查看數(shù)據(jù) get /test 得到111
修改數(shù)據(jù) set /test 222
再次查看: get /test 得到222
刪除數(shù)據(jù)rmr /test
再次查看 ls / 無test目錄

3.4 zookeeper的集群搭建(推薦1,3,5這樣的節(jié)點數(shù)蚣旱,在進行節(jié)點選舉的時候,保證能選舉一個主節(jié)點出來)

啟動三個機器
配置第一臺
步驟一:在單機的基礎(解壓后修改dataDir的目錄)上戴陡,添加配置項
server.<id> 這個id是唯一的
2888端口 服務器之間是需要進行數(shù)據(jù)的同步的
3888端口 集群在啟動的時候進行選舉Nimbus節(jié)點

server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
步驟二:<id> 在什么地方進行存儲塞绿,當前機器是哪一個ID
ZK_HOME/data 目錄下 新建文件myid 用于存儲這個id VimZK_HOME/data/myid 寫入1 :wq即可
步驟三:拷貝第一臺服務器到其余兩臺服務器上面去

Scp –r zookeeper-3.4.5/ root@192.168.1.2:/opt/module
即可
在這之前可以配置ssh的免密碼登錄

拓展:
1.HOSTNAME主機名:vim /etc/sysconfig/network

2.配置ip與主機名之間的映射關系
Vim /etc/hosts
192.168.1.1 hadoop001
192.168.1.2 hadoop002
192.168.1.3 hadoop003

啟動zk集群
在每一臺上面都要進行啟動,bin/zkServer.sh start
Bin/zkServer.sh status 狀態(tài)為:leader 主節(jié)點
Bin/zkServer.sh status 狀態(tài)為:follower 從節(jié)點

ZKcli從1-2-3
192.168.1.1可以使用bin/zkCli.sh -server 192.168.1.2:2181
進入之后恤批,connect 192.168.1.3:2181

部分4 Storm的安裝配置

單機環(huán)境的安裝配置
下載啊storm.apache.org 或CDH5 1.1.0 异吻,1.2.1等版本
解壓 tar –zxvf storm.tar.gz –C /opt/module

Storm的啟動是需要依賴于zookeeper服務的
在這之前,先使用單個zk服務(單節(jié)點)

Storm解壓后的目錄
bin 包含

  • storm 核心腳本喜庞,可以通過這個腳本進行啟動
  • Storm.py 是一個python腳本

Conf 包含

  • Storm.yaml最核心的配置文件
  • storm.zookeeper.servers
  • nimbus.seeds
  • drpc.servers
    暫時不做任何修改

啟動主節(jié)點
bin/storm nimbus &
啟動從節(jié)點
bin/storm supervisor &
啟動UI
bin/storm ui &
啟動日志
bin/storm logviewer &

ps:nohup java –jar hh.jar &
nohup + & 客戶端和虛擬機是不需要保持連接的涧黄,即當前輸入的命令界面是可以進行關閉的

Storm性能調優(yōu)
為了解決數(shù)據(jù)不一致的問題,我們先把zookeeper的data目錄下先刪除,保持一致
每個機器上執(zhí)行
rm –rf ZK_HOME/data mkdirZK_HOME/data
vim $ZK_HOME/data/myid 寫入相應的<id> 1,2,3等 :wq

每個機器上啟動zookeeper
bin/zkServer.sh start

開始配置storm的單機環(huán)境為集群環(huán)境配置

Vim #STORM_HOME/conf/storm.yaml
storm.zookeeper.servers:

  • “192.168.1.1”
  • “192.168.1.2”
  • “192.168.1.3”
    Nimbus.seeds: [“192.168.1.1”,”192.168.1.2”]

就簡單做這樣的操作就 可以了
接著 拷貝storm文件到其余的機器上面去

就可以啟動storm了

啟動主節(jié)點【第一臺機器上】
Nohup bin/storm nimbus &
啟動從節(jié)點【第二臺機器上】
Nohup bin/storm supervisor &
啟動UI
可以在第一臺 也可以在第二臺上面
nohup bin/storm ui
WebUI查看:
192.168.1.2:8080/index.html

這里可以做節(jié)點故障轉義的實驗

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末赋荆,一起剝皮案震驚了整個濱河市笋妥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窄潭,老刑警劉巖春宣,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嫉你,居然都是意外死亡月帝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門幽污,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚷辅,“玉大人,你說我怎么就攤上這事距误◆じ悖” “怎么了扁位?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長趁俊。 經(jīng)常有香客問我域仇,道長,這世上最難降的妖魔是什么寺擂? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任暇务,我火速辦了婚禮,結果婚禮上怔软,老公的妹妹穿的比我還像新娘垦细。我一直安慰自己,他們只是感情好挡逼,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布括改。 她就那樣靜靜地躺著,像睡著了一般挚瘟。 火紅的嫁衣襯著肌膚如雪叹谁。 梳的紋絲不亂的頭發(fā)上饲梭,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天乘盖,我揣著相機與錄音,去河邊找鬼憔涉。 笑死订框,一個胖子當著我的面吹牛,可吹牛的內容都是我干的兜叨。 我是一名探鬼主播穿扳,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼国旷!你這毒婦竟也來了矛物?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤跪但,失蹤者是張志新(化名)和其女友劉穎履羞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屡久,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡忆首,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了被环。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糙及。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖筛欢,靈堂內的尸體忽然破棺而出浸锨,到底是詐尸還是另有隱情唇聘,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布揣钦,位于F島的核電站雳灾,受9級特大地震影響,放射性物質發(fā)生泄漏冯凹。R本人自食惡果不足惜谎亩,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宇姚。 院中可真熱鬧匈庭,春花似錦、人聲如沸浑劳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魔熏。三九已至衷咽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蒜绽,已是汗流浹背镶骗。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躲雅,地道東北人鼎姊。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像相赁,于是被迫代替她去往敵國和親相寇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內容