👨🏻🎓博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家🌟
🌈擅长领域:Java、大数据、运维、电子
🙏🏻如果本文章各位小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏,相应的有空了我也会回访,互助!!!
🤝另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!
@[TOC]
Storm简介
1.官网
2.strom的两种形式
2.strom的特性
3.使用场景
4.集群架构
各个节点快速失败,无状态。
快速失败的意思是,节点挂掉后,马上重启后,就可以正常工作,不需要很长的时间初始化,状态恢复等过程。
无状态:节点本身不存储自己的状态信息,将状态信息由第三方存储。、
可以实现高可靠性。
5.集群架构进程
6.组件 Nimbus
7.从节点Supervisor
8.组件worker
9.组件Executor
10.组件zookeeper
11.组件UI
12.组件Logviewer
13.组件Netty
Storm集群部署
集群规划
一、storm集群整体部署
集群总共使用了6台机器:
storm使用3个节点(nimbus在node01, supervisor在node02、node03)
zookeeper使用3个节点(node04、node05、node06)
Zookeeper高可用安装
二、zookeeper安装
1、使用最新的稳定版本3.4.6,下载地址http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper-3.4.6.tar.gz
tar zxvf zookeeper-3.4.6.tar.gz
ln -s zookeeper-3.4.6 zookeeper
rm zookeeper-3.4.6.tar.gzcp zookeeper/conf/zoo_sample.cfg zookeeper/conf/zoo.cf`
2、修改配置文件zoo.cfg , 根据自己的实际情况修改红色部分即可,其余配置可以使用默认的。
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=node06:2888:3888
server.2=node05:2888:3888
server.3=node04:2888:3888
3、zookeeper的所有节点上执行1、2步骤后,在zoo.cfg中配置的dataDir目录下添加myid文件,内容为server.1=node06:2888:3888配置中server后面的id(node06的myid文件内容为1)
`echo "1" > zookeeper/data/myid (node06)
echo "2" > zookeeper/data/myid (node05)
echo "3" > zookeeper/data/myid (node04)`
4、在所有节点上启动zookeeper
bin/zkServer.sh start
jps命令验证QuorumPeerMain进程是否启动成功
启动客户端连接测试: bin/zkCli.sh -server node06:2181
至此,Zookerper安装成功
Storm安装
三、storm安装
选用最新的0.9.2版本进行安装部署,下载地址http://mirror.bit.edu.cn/apache/incubator/storm/apache-storm-0.9.2-incubating/apache-storm-0.9.2-incubating.tar.gz
1、安装前提(自行先安装java、python)
Java 6及以上 Python 2.6.6及以上
2、安装storm包
tar zxvf apache-storm-0.9.2-incubating.tar.gz
ln -s apache-storm-0.9.2-incubating storm
rm apache-storm-0.9.2-incubating.tar.gz`
3、修改conf/storm.yaml配置文件,根据自己的实际情况修改红色部分即可,其余配置可以使用默认的。(配置文件采用yaml格式,可以百度下它的具体语法,
以免格式使用错误,造成启动失败)
storm.zookeeper.servers:
- "node06"
- "node05"
- "node04"
#nimbus.host: "node01"
#1.2版本之后使用nimbus.seeds,代替了nimbus.host
storm.local.dir: "/usr/local/storm/data"
supervisor.slots.ports:
- 6700
- 6701
ui.port: 6066
4、修改storm_env.sh,配置JDK的home
启动并测试Storm
1、在storm的所有节点上执行1、2、3步骤后
node01启动nimbus:bin/storm nimbus >/dev/null 2>&1 &
node02、node03启动supervisor:bin/storm supervisor >/dev/null 2>&1 & ,bin/storm logviewer > /dev/null 2>&1 &
node01启动ui: bin/storm ui >/dev/null 2>&1 &
2、访问node01:6066查看storm ui页面
3、测试Storm的实时分布式计算框架的搭建的成功与否
storm jar examples/storm-starter/storm-starter-topologies-0.9.2-incubating.jar storm.starter.WordCountTopology wordcount
注意:storm停止需要kill掉,没有专属的stop命令