实时大数据分析Storm 集群安装配置

 Storm是一个免费并开源的分布式实时计算系统。用于实时大数据分析。本文只介绍storm集群安装和配置,storm原理请自行查阅资料。storm官网:http://storm.apache.org/

三机拓扑:

A: 192.168.15.128, master 

B: 192.168.15.129, slave

C: 192.168.15.131, slave

安装必要的依赖组件

接下来你需要在集群中的所有机器上安装必要的依赖组件,包括:

  1. Java 8
  2. Python 2.7

安装 ZooKeeper 集群

Storm 使用 ZooKeeper 来保证集群的一致性。集群中 ZooKeeper 并不是用来进行消息传递的,所以 Storm 对 ZooKeeper 的负载相当低。虽然在大部分场景下单点 ZooKeeper 也勉强够用,但是如果你需要更可靠的 HA 机制或者需要部署大规模 Storm 集群,你最好配置一个 ZooKeeper 集群。zooKeeper集群通过选举产生master,其他为follow。

分别在A、B、C三台机器中安装zooKeeper,安装方法参考zooKeeper官网:http://zookeeper.apache.org/doc/current/zookeeperStarted.html

编辑config目录下zoo.cfg文件:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/xinghan/zookeeper/data
clientPort=2181
server.1=192.168.15.128:2888:3888
server.2=192.168.15.129:2888:3888
server.3=192.168.15.131:2888:3888

  • initLimit 
    ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。 
    当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。
  • syncLimit 
    配置follower和leader之间发送消息,请求和应答的最大时间长度。
  • tickTime 
    tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。
  • server.id=host:port1:port2 
    其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。 
    host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
  • dataDir 
    其配置的含义跟单机模式下的含义类似,不同的是集群模式下还有一个myid文件。myid文件的内容只有一行,且内容只能为1 - 255之间的数字,这个数字亦即上面介绍server.id中的id,表示zk进程的id。
  • clientPort 
    zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。

在三台机器zooKeeper dataDir目录下,分别生成一个myid文件,其内容分别为1,2,3

启动zooKeeper ./bin/zkServer.sh start

查看zooKeeper 状态  ./bin/zkServer.sh status

 

安装 storm集群

下载,解压storm安装文件。配置config/storm.yaml。三机配置相同。

storm.zookeeper.servers:
    - "192.168.15.128"
    - "192.168.15.129"
    - "192.168.15.131"
storm.local.dir: "/home/xinghan/storm"
nimbus.seeds: ["192.168.15.128"]
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

1)storm.zookeeper.servers: Storm 关联的 ZooKeeper 集群的地址列表。注意,如果你使用的 ZooKeeper 集群的端口不是默认端口,你还需要相应地配置 storm.zookeeper.port

2)storm.local.dir:Nimbus 和 Supervisor 后台进程都需要一个用于存放一些状态数据(比如 jar 包、配置文件等等)的目录。你可以在每个机器上创建好这个目录,赋予相应的读写权限,并将该目录写入配置文件中。

 3)nimbus.seeds:集群的工作节点需要知道集群中的哪台机器是主机,以便从主机上下载拓扑以及配置文件。

4) supervisor.slots.ports:你需要通过此配置项配置每个 Supervisor 机器能够运行的工作进程(worker)数。每个 worker 都需要一个单独的端口来接收消息,这个配置项就定义了 worker 可以使用的端口列表。如果你在这里定义了 5 个端口,那么 Storm 就会在该机器上分配最多 5 个worker。如果定义 3 个端口,那 Storm 至多只会运行三个 worker。此项的默认值是 6700、6701、6702、6703 四个端口。

使用 “storm” 脚本启动后台进程

  1. Nimbus:在 master 机器上,在监控下执行 ./bin/storm nimbus & 命令。
  2. Supervisor:在每个工作节点上,在监控下执行 ./bin/storm supervisor & 命令。Supervisor 的后台进程主要负责启动/停止该机器上的 worker 进程。
  3. UI:在 master 机器上,在监控下执行  ./bin/storm ui & 命令启动 Storm UI(Storm UI 是一个可以在浏览器中方便地监控集群与拓扑运行状况的站点)后台进程。可以通过 http://{nimbus.host}:8080 来访问 UI 站点。

访问storm Ui

 

done. 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值