起源背景html
Ps:·Hadoop分佈式存儲和分佈式計算兩個難題所有解決了。可是缺點就是不能實時處理數據,Storm的做者就像寫一個這樣實時數據處理場景的框架出來java
主從架構:簡單高效,單主節點存在單點問題
HDFS\YARN\Storm\Hbase\Spark\Flinknode
對稱架構:複雜,效率較低,無單點問題,更加可靠
Zookeeper\Kafka [會進行主節點的選舉]python
Storm的主從架構linux
Nimbus—zookeeper--supervisor程序員
Storm組件:Nimbusapache
接收客戶端的topo代碼,拆分紅多個task,將task信息存入zk,並將task分配給Supervisor,將映射關係存入ZK,並進行故障檢測vim
類比:部門經理將需求拆分爲 多個任務(每一個任務有多個模塊) 將這些任務寫入項目文檔中去,,並將每一個任務與每一程序員進行對應服務器
Storm組件:Supervisor架構
Storm 組件:Worker
Storm組件:Zookeeper
動手實踐
簡介:
Zookeeper是一個開源的分佈式協調服務的框架,使各個機器進行之間進行通訊
文件系統:
相似於linux的文件系統目錄結構,從根目錄(/)開始
1.每個目錄都是一個znode節點
2.每個znode節點可直接存儲數據
3.類型:持久化,持久化順序,臨時,臨時順序
通知機制:
下載:直接去官網:zookeeper.apache.org或CDH5進行下載
/opt/soft [下載位置]
/opt/module 【解壓位置】
下載 .tar.gz
解壓 tar –zxvf tar.gz –C /apps
解壓後的主要目錄結構:
bin:包含
conf:包含
在解壓後的目錄新建一個data的目錄用於存放zk的數據
將$ZK_HOME/data 替換conf/zoo.cfg 中的dataDir
啓動bin/zkServer.sh start
Jps
Or
bin/zkServer.sh status
去鏈接zk服務器
bin/zkCli.sh
這樣會鏈接本地的zk服務器‘
裏面的操做相似於linux的操做
輸入ls
查看根目錄有什麼 ls /
查看目錄下面的數據 get /
建立目錄 create /test 111
查看數據 get /test 獲得111
修改數據 set /test 222
再次查看: get /test 獲得222
刪除數據rmr /test
再次查看 ls / 無test目錄
啓動三個機器
配置第一臺
步驟一:在單機的基礎(解壓後修改dataDir的目錄)上,添加配置項
server.
2888端口 服務器之間是須要進行數據的同步的
3888端口 集羣在啓動的時候進行選舉Nimbus節點
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
步驟二:
在$ZK_HOME/data 目錄下 新建文件myid 用於存儲這個id
Vim $ZK_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 狀態爲:leader 主節點
Bin/zkServer.sh status 狀態爲:follower 從節點
ZKcli從1-2-3
192.168.1.1可使用bin/zkCli.sh -server 192.168.1.2:2181
進入以後,connect 192.168.1.3:2181
單機環境的安裝配置
下載啊storm.apache.org 或CDH5 1.1.0 ,1.2.1等版本
解壓 tar –zxvf storm.tar.gz –C /opt/module
Storm的啓動是須要依賴於zookeeper服務的
在這以前,先使用單個zk服務(單節點)
Storm解壓後的目錄
bin 包含
Conf 包含
啓動主節點
bin/storm nimbus &
啓動從節點
bin/storm supervisor &
啓動UI
bin/storm ui &
啓動日誌
bin/storm logviewer &
ps:nohup java –jar hh.jar &
nohup + & 客戶端和虛擬機是不須要保持鏈接的,即當前輸入的命令界面是能夠進行關閉的
Storm性能調優
爲了解決數據不一致的問題,咱們先把zookeeper的data目錄下先刪除,保持一致
每一個機器上執行
rm –rf $ZK_HOME/data
mkdir $ZK_HOME/data
vim $ZK_HOME/data/myid 寫入相應的
每一個機器上啓動zookeeper
bin/zkServer.sh start
開始配置storm的單機環境爲集羣環境配置
Vim #STORM_HOME/conf/storm.yaml
storm.zookeeper.servers:
就簡單作這樣的操做就 能夠了
接着 拷貝storm文件到其他的機器上面去
就能夠啓動storm了
啓動主節點【第一臺機器上】
Nohup bin/storm nimbus &
啓動從節點【第二臺機器上】
Nohup bin/storm supervisor &
啓動UI
能夠在第一臺 也能夠在第二臺上面
nohup bin/storm ui
WebUI查看:
192.168.1.2:8080/index.html
這裏能夠作節點故障轉義的實驗
更多文章 Storm構建實時流處理 https://blog.csdn.net/liuge36/article/category/8004011