Storm叢集搭建
Storm是什麼?
Storm是Twitter開源的一個分散式的實時計算系統
使用場景:
資料的實時分析,持續計算,分散式RPC等等.
Storm特點:
Storm特點:
(Storm類似手扶電梯,不出故障就會一直執行. hadoop類似升降電梯,到達一定程度會停止)
常用的類:
- 分散式
- 可擴充套件
- 高可靠性
- 程式設計模型簡單
-
高效實時
常用的類:
BaseRichSpout(訊息生產者)
BaseBasicBolt(訊息處理者)
TopologyBuilder(拓撲的構建器)
Config(配置)
StormSubmitter/LocalCluster(拓撲提交器)
BaseBasicBolt(訊息處理者)
TopologyBuilder(拓撲的構建器)
Config(配置)
StormSubmitter/LocalCluster(拓撲提交器)
Storm叢集部署
Storm叢集架構:
如圖:
在Storm的叢集裡面有兩種節點:
控制節點和工作節點。
控制節點上面執行一個叫Nimbus程式,Nimbus負責在叢集裡面分發程式碼,分配計算任務,並且監控狀態。
每一個工作節點上面執行一個叫做Supervisor程式。
Supervisor負責監聽從Nimbus分配給它執行的任務,據此啟動或停止執行任務的工作程式
Supervisor負責監聽從Nimbus分配給它執行的任務,據此啟動或停止執行任務的工作程式
Nimbus和Supervisor之間的所有協調工作都是通過Zookeeper叢集完成。
叢集規劃:(根據具體需求規劃)
叢集規劃:(根據具體需求規劃)
linux主機名 Storm角色 Zookeeper
master Nimubus 單節點zk
slave01 Supervisor
slave02 Supervisor
準備工作:
環境:
master Nimubus 單節點zk
slave01 Supervisor
slave02 Supervisor
準備工作:
環境:
centos6.4
軟體:
zmq-master
storm-0.8.2
zeromq-2.1.7
zookeeper-3.4.5
環境配置:
linux基本配置:
修改主機名
修改IP
修改主機和IP的對映關係
關閉防火牆
安裝步驟:
1.安裝jdk
2.搭建Zookeeper叢集(這裡我們只安裝一個zk在主節點上)
解壓
進入zk的conf目錄下,cp zoo_sample.cfg zoo.cfg(修改一下名字)
其它的暫時都不變
3.安裝Storm依賴(zeromq、jzmq、python)
3.1安裝zeromq,然後進入到zeromq-2.1.7/目錄下
檢測環境:./configure
cd zeromq-2.1.7
./configure
#編譯可能會出錯:
configure: error: Unable to find a working C++ compiler
#安裝一下依賴的rpm包:libstdc++-devel gcc-c++
虛擬機器可以上網的情況下:(建議使用此方法)
yum install gcc-c++
虛擬機器不能上網情況:
#安裝一下依賴的rpm包:libstdc++-devel gcc-c++
虛擬機器可以上網的情況下:(建議使用此方法)
yum install gcc-c++
虛擬機器不能上網情況:
方法2:
首先到
http://mirrors.163.com/centos/6.4/os/x86_64/Packages/
(下載的版本一定要和系統對應)
rpm -i libstdc++-devel-4.4.7-3.el6.x86_64.rpm
rpm -i gcc-c++-4.4.7-3.el6.x86_64.rpm
rpm -i libuuid-devel-2.17.2-12.9.el6.x86_64.rpm
然後執行./configure
make(編譯)
make install(這個才徹底安裝)
3.2.編譯安裝JZMQ:
cd jzmq
執行./autogen.sh
(下載的版本一定要和系統對應)
rpm -i libstdc++-devel-4.4.7-3.el6.x86_64.rpm
rpm -i gcc-c++-4.4.7-3.el6.x86_64.rpm
rpm -i libuuid-devel-2.17.2-12.9.el6.x86_64.rpm
然後執行./configure
make(編譯)
make install(這個才徹底安裝)
3.2.編譯安裝JZMQ:
cd jzmq
執行./autogen.sh
(是為了讓它產生配置檔案,預設沒有配置檔案的)
#報錯:autogen.sh: error: could not find libtool.
libtool is required to run autogen.sh.
#報錯:autogen.sh: error: could not find libtool.
libtool is required to run autogen.sh.
缺少libtool
同樣,可上網情況下
yum install libtool(readhat企業版不會出現這些報錯)
或者手動安裝
rpm -i autoconf-2.63-5.1.el6.noarch.rpm
rpm -i automake-1.11.1-4.el6.noarch.rpm
rpm -i libtool-2.2.6-15.5.el6.x86_64.rpm
./configure
make
make install
3.33.編譯安裝Python
同樣,可上網情況下
yum install libtool(readhat企業版不會出現這些報錯)
或者手動安裝
rpm -i autoconf-2.63-5.1.el6.noarch.rpm
rpm -i automake-1.11.1-4.el6.noarch.rpm
rpm -i libtool-2.2.6-15.5.el6.x86_64.rpm
./configure
make
make install
3.33.編譯安裝Python
(先確定你係統自帶的版本,如果是2.6.6或者之上的不需要安裝)
tar –zxvf Python-2.6.6.tgz
cd Python-2.6.6
./configure
make
make install
3.4安裝storm
修改storm.yaml配置檔案(子節點上也得修改)
修改zk對應的主機名
修改主節點對應的主機名
PS:
tar –zxvf Python-2.6.6.tgz
cd Python-2.6.6
./configure
make
make install
3.4安裝storm
修改storm.yaml配置檔案(子節點上也得修改)
修改zk對應的主機名
修改主節點對應的主機名
PS:
3.41.Storm發行版本解壓目錄下有一個
conf/storm.yaml檔案:
用於配置Storm。預設配置在這裡可以檢視
用於配置Storm。預設配置在這裡可以檢視
conf/storm.yaml中的
配置選項將覆蓋defaults.yaml中的預設配置。
配置選項將覆蓋defaults.yaml中的預設配置。
以下配置選項是必須在
conf/storm.yaml中進行配置的:
storm.zookeeper.servers:
storm.zookeeper.servers:
Storm叢集使用的Zookeeper叢集地址,
其格式如下:
storm.zookeeper.servers:
- "111.222.333.444"
- "555.666.777.888"
如果Zookeeper叢集使用的不是預設埠,
storm.zookeeper.servers:
- "111.222.333.444"
- "555.666.777.888"
如果Zookeeper叢集使用的不是預設埠,
那麼還需要storm.zookeeper.port選項。
3.42storm.local.dir: Nimbus和Supervisor程式
用於儲存少量狀態, 如jars、confs等的本地磁碟目錄,需要提前建立該目錄並給以足夠的訪問許可權。
然後在storm.yaml中配置該目錄,如: storm.local.dir: "/usr/storm/workdir"
分別啟動三臺機器
master:到storm的bin目錄下
分別啟動三臺機器
master:到storm的bin目錄下
./storm nimbus > /dev/null 2>&1 & slave01:到storm的bin目錄下
./storm supervisor > ../logs/su.log 2>&1 & slave02:到storm的bin目錄下
./storm supervisor > ../logs/su.log 2>&1 &
(啟動後臺程式,並把正確和錯誤的資訊輸出到該檔案中)
在master上啟動UI管理介面
(啟動後臺程式,並把正確和錯誤的資訊輸出到該檔案中)
在master上啟動UI管理介面
./storm ui > /dev/null 2>&1 &
通過瀏覽器觀察:(主節點的ip:8080)
觀察叢集的worker資源使用情況、
通過瀏覽器觀察:(主節點的ip:8080)
觀察叢集的worker資源使用情況、
Topologies的執行狀態等資訊。
至此,Storm叢集已經部署、配置完畢,可以向叢集提交拓撲執行了
轉載: http://www.aboutyun.com/thread-7271-1-1.html
相關文章
- storm叢集啟動停止指令碼ORM指令碼
- CentOS6.5 安裝Storm叢集CentOSORM
- DevOpsSOP 基於阿里雲VPC搭建Storm+Kafka+Zookeeper叢集dev阿里ORMKafka
- 搭建zookeeper叢集(偽叢集)
- 叢集搭建
- zookeeper叢集及kafka叢集搭建Kafka
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- redis叢集搭建Redis
- nacos 叢集搭建
- kafka叢集搭建Kafka
- Ambari叢集搭建
- 搭建ELK叢集
- RabbitMQ叢集搭建MQ
- HBASE叢集搭建
- zookeeper 叢集搭建
- mysql叢集搭建MySql
- Zookeeper叢集搭建
- 搭建 Redis 叢集Redis
- 搭建 zookeeper 叢集
- Elasticsearch 叢集搭建Elasticsearch
- mysql 叢集搭建MySql
- 從0到1搭建spark叢集---企業叢集搭建Spark
- linux下搭建ZooKeeper叢集(偽叢集)Linux
- Kafka學習之(五)搭建kafka叢集之Zookeeper叢集搭建Kafka
- 【環境搭建】RocketMQ叢集搭建MQ
- 結合Ansible技術監控Storm叢集ORM
- 【greenplum】greenplum叢集搭建
- ElasticSearch 7.8.1叢集搭建Elasticsearch
- MongoDB 分片叢集搭建MongoDB
- Docker Swarm 叢集搭建DockerSwarm
- Redis(5.0) 叢集搭建Redis
- MySQL MGR 叢集搭建MySql
- nacos叢集開箱搭建
- redis叢集的搭建Redis
- Docker搭建ELK叢集Docker
- docker搭建mysql叢集DockerMySql
- 搭建Redis原生叢集Redis
- MySQL 5.7 叢集搭建MySql