小编给大家分享一下ubuntu多机版搭建storm环境的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
http://my.oschina.net/u/2285247/blog/546608
http://www.cnblogs.com/kemaswill/archive/2012/10/24/2737833.html
http://blog.csdn.net/rzhzhz/article/details/7448894
http://blog.csdn.net/shirdrn/article/details/7183503#t0
分布式Storm安装,在单机版安装基础上进行。单机版安装参见(http://my.oschina.net/u/2285247/blog/546608)
Storm集群包含一个中心节点Nimbus,多个从节点Supervisor。
ZooKeeper集群中具有两个关键的角色:Leader和Follower。集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结 点之间都互相连接,所以,在配置的ZooKeeper集群的时候,每一个结点的host到IP地址的映射都要配置上集群中其它结点的映射信息。
例如,我的ZooKeeper集群中每个结点的配置,以mem1为例,/etc/hosts内容如下所示:
192.168.100.206 mem1 192.168.100.207 mem2 192.168.100.208 mem3
首先我们需要搭建一个Zookeeper集群,搭建过程如下:
同单机版,不单机版不同之处如下:
分别解压至zookeepr集群机器(一般为基数台机器)相应目录(此处为/usr/local/),集群为mem1,mem2,mem3(hosts对应)。
分别在zookeepr集群机器上配置/usr/local/zookeeper/conf/zoo.cfg(默认是没有此文件的,可以由zoo_sample.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. dataDir=/usr/local/zookeeper/zookeeperdir/zookeeper-data dataLogDir=/usr/local/zookeeper/zookeeperdir/logs # the port at which the clients will connect clientPort=2181 server.1=mem1:2888:3888 server.2=mem2:2888:3888 server.3=mem3:2888:3888
注:dataDir是zookeeper的数据目录,需要手动创建;dataLogDir也需要手动创建
2. 配置myid文件,在dataDir目录下新建myid文件并设置id号(id号直接写入myid文件)
id号即为zoo.cfg文件中server.后的数字,如server.1=mem1:2888:3888即表示mem1机器中的myid号为1,server.2=mem2:2888:3888即表示mem2器中的myid号为2。
启动
分别在zookeepr集群机执行下面命令:
cd /usr/local/zookeeper/ bin/zkServer.sh start
注:一开始启动的时候会报错,提示连不上集群其他成员。此时是正常信息,等所有集群成员都启动后,该错误信息便会消失。
2. 查看集群状态
/usr/local/zookeeper/bin/zkServer.sh status
如果正常启动会提示如下信息:
[root@mem1 zookeeper]$ bin/zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower |
如果报错如下信息:
JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running. |
执行
root@mem1:/usr/local/zookeeper/bin# tail -f zookeeper.out 查看日志
解决办法:
Sudo vi /etc/hosts
注释掉:127.0.0.1 开始的行,重启zookeeper 搞定!
或者jps查看是否有QuorumPeerMain服务,如存在则已经启动。
我们在Storm的每个节点上安装Python,ZeroMQ,jzmq,Storm(安装过程同单机相同)。
配置每个节点的Storm(zookeeper节点不需要,根据前人经验,每行要以空格开始,冒号后要有空格!):
配置conf/storm.yaml文件,如下:
nimbus.host: "nimbus" storm.local.dir: "/usr/local/apache-storm-0.10.0/local/dir" storm.zookeeper.servers: - "mem1" - "mem2" - "mem3" storm.zookeeper.port: 2181
备注:
其中nimbus.host为Nimbus节点的主机名或IP地址。
storm.local.dir为存储相关信息比如jar,topology等的目录,需要手动创建。
storm.zookeeper.servers为zookeeper集群的主机名或IP地址。
storm.zookeeper.port为Zookeeper服务的端口号,要和你的Zookeeper服务的端口号一致(2181是默认的)。
以上配置需要在每个节点,包括Nimbus和Supervisor上配置,且前三项是必须的,第二项如果不设置会报Connection Refused错误。
在Nimbus节点上的~/.storm/storm.yaml配置(没有该文件的话创建之):
nimbus.host: "nimbus"
到这里Storm集群就配置完毕了。
在Nimbus节点上启动Nimbus服务:
cd /usr/local/apache-storm-0.10.0 bin/storm nimbus &
加&是为了在后台运行,否则当前的终端就不能再输入命令了
在Nimbus节点上启动UI,这样就可以通过浏览器在http://nimbus-host:8080上观察整个Storm集群以及Topology的运行情况
bin/storm ui &
在Supervisor节点上启动Supervisor:
bin/storm supervisor &
这样整个Storm集群便启动了。
Storm集群的测试依然可以使用我们单机版之前用过的StormStarter.jar,在Nimbus节点上执行:
storm jar StormStarter.jar storm.starter.ExclamationTopology exclamation
注意,与单机版Storm不同的是,我们在主类ExclamationTopology后面加了一个字符串 exclamation,该字符串是任意的,用来在集群中标示这个Topology,如果不填加这个字符串则该Topology会在单机环境下运行。
以上是“ubuntu多机版搭建storm环境的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。