ubuntu多机版搭建storm环境的示例分析

小编给大家分享一下ubuntu多机版搭建storm环境的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

我们提供的服务有:成都网站设计、做网站、微信公众号开发、网站优化、网站认证、泽库ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的泽库网站制作公司

1 参考博文

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   

2 分布式Storm安装

分布式Storm安装,在单机版安装基础上进行。单机版安装参见(http://my.oschina.net/u/2285247/blog/546608)

Storm集群包含一个中心节点Nimbus,多个从节点Supervisor。

2.1 主机名称到IP地址映射配置

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

2.2 zookeeper集群搭建

首先我们需要搭建一个Zookeeper集群,搭建过程如下:

2.2.1 zookeeper下载

同单机版,不单机版不同之处如下:

分别解压至zookeepr集群机器(一般为基数台机器)相应目录(此处为/usr/local/),集群为mem1,mem2,mem3(hosts对应)。

2.2.2 zookeeper配置

  1. 分别在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。

2.2.3 zookeeper测试

  1. 启动

    分别在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服务,如存在则已经启动。

2.3 安装依赖软件及Storm

我们在Storm的每个节点上安装Python,ZeroMQ,jzmq,Storm(安装过程同单机相同)。

2.4 配置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集群就配置完毕了。

2.5 启动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集群便启动了。

2.6 Storm集群测试

Storm集群的测试依然可以使用我们单机版之前用过的StormStarter.jar,在Nimbus节点上执行:
storm jar StormStarter.jar storm.starter.ExclamationTopology exclamation
注意,与单机版Storm不同的是,我们在主类ExclamationTopology后面加了一个字符串 exclamation,该字符串是任意的,用来在集群中标示这个Topology,如果不填加这个字符串则该Topology会在单机环境下运行。

以上是“ubuntu多机版搭建storm环境的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


新闻名称:ubuntu多机版搭建storm环境的示例分析
新闻来源:http://hbruida.cn/article/gjjecs.html