分类: 大数据
2018-07-07 17:11:16
1)下载安装Java JDK,JDK版本为JDK 6或以上。
2)根据Zookeeper集群的负载情况,合理设置Java堆大小,尽可能避免发生swap,导致Zookeeper性能下降。保守期间,4GB内存的机器可以为Zookeeper分配3GB最大堆空间。
3)下载后解压安装Zookeeper包,官方下载链接为。
4)根据Zookeeper集群节点情况,创建如下格式的Zookeeper配置文件zoo.cfg:
tickTime=2000
dataDir=/var/zookeeper/ // dataDir指定Zookeeper的数据文件目录
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
其中, server.id=host:port:port,
id是为每个Zookeeper节点的编号,保存在dataDir目录下的myid文件中,
zoo1~zoo3表示各个Zookeeper节点的hostname,
第一个port是用于连接leader的端口,
第二个port是用于leader选举的端口。
5)在dataDir目录下创建myid文件,文件中只包含一行,且内容为该节点对应的server.id中的id编号。
6)启动Zookeeper服务:
bin/zkServer.sh脚本启动Zookeeper服务。
7)通过Zookeeper客户端测试服务是否可用:
bin/zkCli.sh脚本启动Zookeeper
Java客户端
1. 下载Storm发行版本,推荐使用Storm0.9.3:
wget
2. 解压到安装目录下:
unzip storm-0.9.3.zip
3、修改配置文件
Storm发行版本解压目录下有一个conf/storm.yaml文件,用于配置Storm。conf/storm.yaml中的配置选项将覆盖defaults.yaml中的默认配置。以下配置选项是必须在conf/storm.yaml中进行配置的:
1) storm.zookeeper.servers:
Storm集群使用的Zookeeper集群地址,其格式如下:
storm.zookeeper.servers:
- "111.222.333.444"
- "555.666.777.888"
如果Zookeeper集群使用的不是默认端口,那么还需要storm.zookeeper.port选项。
2) storm.local.dir:
Nimbus和Supervisor进程用于存储少量状态,如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。然后在storm.yaml中配置该目录,如:
storm.local.dir: "/home/admin/storm/workdir"
3) nimbus.host:
Storm集群Nimbus机器地址,各个Supervisor工作节点需要知道哪个机器是Nimbus,以便下载Topologies的jars、confs等文件,如:
nimbus.host: "111.222.333.444"
4) supervisor.slots.ports:
对于每个Supervisor工作节点,需要配置该工作节点可以运行的worker数量。每个worker占用一个单独的端口用于接收消息,该配置选项即用于定义哪些端口是可被worker使用的。默认情况下,每个节点上可运行4个workers,分别在6700、6701、6702和6703端口,如:
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703storm守护进程的命令
storm nimbus
storm ui
storm supervisor
storm管理命令
jar 命令提交topology 到nimbus
杀死一个拓扑,可以使用kill命令。它会以一种安全的方式销毁一个拓扑
停用拓扑时,所有已分发的元组都会得到处理,spouts的nextTuple方法将不会被调用
activate 启动一个停用的拓扑
rebalance使你重新分配集群任务。比如,你向一个运行中的集群增加了节点。rebalance命令将会停用拓扑,然后在相应超时时间之后重分配worker,并重启拓扑
例:storm rebalance wordcount-topology -w 15 -n 5 -e sentence-spout=4 -e split-bolt=8