Storm学习笔记三

1 storm的安装部署

1.1下载安装包

http://storm.apache.org/

1.2解压安装包

tar -zxvf apache-storm-0.9.5.tar.gz
建立软连接:ln -s apache-storm-0.9.5 storm

1.3修改配置

#指定storm使用的zk集群
storm.zookeeper.servers:
     - "hdp01"
     - "hdp02"
     - "hdp03"
#指定storm集群中的nimbus节点所在的服务器
nimbus.host: "hdp01"
#指定nimbus启动JVM最大可用内存大小
nimbus.childopts: "-Xmx1024m"
#指定supervisor启动JVM最大可用内存大小
supervisor.childopts: "-Xmx1024m"
#指定supervisor节点上,每个worker启动JVM最大可用内存大小
worker.childopts: "-Xmx768m"
#指定ui启动JVM最大可用内存大小,ui服务一般与nimbus同在一个节点上
ui.childopts: "-Xmx768m"
#指定supervisor节点上,启动worker时对应的端口号,每个端口对应槽,每个槽位对应一个worker
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703

1.4分发安装包

scp -r /root/apps/apache-storm-0.9.6 hdp01:$PWD
分别在各机器上创建软连接
ln -s apache-storm-0.9.5 storm
配置环境变量

1.5启动集群

1、在nimbus所属的机器上启动nimbus服务
  nohup storm nimbus &
2、在nimbus所属的机器上启动ui服务
  nohup storm ui &
3、在其他机器上启动supervisor的服务
  nohup storm supervisor &

2 storm的启动流程分析

说明:storm是一个分布式计算框架,并没有存储

2.1分析storm集群中的三个角色

storm集群中的三个角色:
	1、nimbus:主节点,管理节点(相当于Yarn ResourceManager,Hadoop JobTracker)
	2、supervisor:每个机器上的管理者(相当于Yarn NodeManager,Hadoop TaskTracker)
	3、ui界面展示

3 小结

1)storm的编程模型:
	a、获取数据通过spout的组件(数据源有很多种,例如:mysql、redis、消息对				  立等),数据最好是实时产生;
	b、业务逻辑通过bolt组件来实现,复杂的业务逻辑可将多个bolt进行连接,数据的连接方式有几种策略可选(ShuffleGrouping、LocalOrShuffleGrouping、FieldGrouping);
	c、数据在spout与bolt以及bolt与bolt之间的传输通过Tuple为消息传输的基本单元,Tuple的属于List数据结构,提供getValueByFields()、get(index)等方法来获取消息。
2)并行度、worker的概念:
	一个worker运行多少个线程(task),取决于所有的组件的并行度/worker数
3)集群的概念:
	a、nimbus:主节点,管理任务的分配;
	b、supervisor:每个物理服务器上的管理者,负责启动和停止属于自己的worker;
	c、woker:负责运行用户的topology的程序,包含具体的线程(task)
	d、task包括spout task和bolt task.
posted @ 2017-01-12 13:44  我亦在  阅读(392)  评论(0编辑  收藏  举报