一,概述

  Storm用来实时计算源源不断产生的数据,如同流水线生产。
  Storm用来实时处理数据,特点:低延迟、高可用、分布式、可扩展、数据不丢失。提供简单容易理解的接口,便于开发。

二,storm和hadoop的区别

Storm可以和Hadoop有效集成 storm和hadoop的区别_大数据

  Storm用于实时计算,Hadoop用于离线计算。

  Storm处理的数据保存在内存中--redis,源源不断;Hadoop处理的数据保存在hdfs文件系统中,一批一批。

  Storm的数据通过网络传输进来;Hadoop的数据保存在磁盘中。

  Storm与Hadoop的编程模型相似。

 三,storm的核心组件

Storm可以和Hadoop有效集成 storm和hadoop的区别_数据_02

  Nimbus:负责资源分配和任务调度。

  Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。---通过配置文件设置当前supervisor上启动多少个worker。

  Worker:运行具体处理组件逻辑的进程。Worker运行的任务类型只有两种,一种是Spout任务,一种是Bolt任务。

    Task:worker中每一个spout/bolt的线程称为一个task. 在storm0.8之后,task不再与物理线程对应,不同spout/bolt的task可能会共享一个物理线程,该线程称为executor。

  executor:线程管理器

四,storm编程模型

Storm可以和Hadoop有效集成 storm和hadoop的区别_ui_03

  Topology:Storm中运行的一个实时应用程序的名称。(拓扑)

  Spout:在一个topology中获取源数据流的组件。通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。

  Bolt:接受数据然后执行处理的组件,用户可以在其中执行自己想要的操作。

    数据清洗--》去掉垃圾数据、数据格式化--》把数据格式设置为我们想要的格式--》数据分析

  Tuple:一次消息传递的基本单元,理解为一组消息就是一个Tuple。

  Stream:表示数据的流向。

  五,集群环境搭建

  1,下载解压安装包,关闭防火墙。

  2,修改配置文件 

vi /home/storm/conf/storm.yaml


########### These MUST be filled in for a storm configura
tion
 storm.zookeeper.servers:
     - "server1"
#     - "server2"
 nimbus.host: "192.168.184.131"
 storm.local.dir: "/home/storm"
 ui.port: 10086
 supervisor.slots.ports:
 - 6700
 - 6701
 - 6702
#
# nimbus.seeds: ["host1", "host2", "host3"]集群配置

    3,分发安装包

scp -r /export/servers/apache-storm-0.9.5 storm02:/export/servers
然后分别在各机器上创建软连接
cd /export/servers/
ln -s apache-storm-0.9.5 storm

   4,启动集群

在nimbus.host所属的机器上启动 nimbus服务
cd /export/servers/storm/bin/
nohup ./storm nimbus &
在nimbus.host所属的机器上启动ui服务
cd /export/servers/storm/bin/
nohup ./storm ui &
在其它个点击上启动supervisor服务
cd /export/servers/storm/bin/
nohup ./storm supervisor &

  5,查看集群

  访问nimbus.host:/8080,即可看到storm的ui界面。

Storm可以和Hadoop有效集成 storm和hadoop的区别_大数据_04

 

六,storm常用操作命令

  1,提交任务命令格式:storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】

storm jar /home/data.jar com.main wordCount

杀死任务命令格式:storm kill 【拓扑名称】 -w 10(执行kill命令时可以通过-w [等待秒数]指定拓扑停用以后的等待时间)

storm kill  wordCount -w 10

停用任务命令格式:storm deactivte  【拓扑名称】

storm deactivte wordCount

启用任务命令格式:storm activate【拓扑名称】

storm activate topology-name

重新部署任务命令格式:storm rebalance  【拓扑名称】

storm rebalance topology-name

七,storm日志及进程的熟悉

  查看supervisor上worker运行日志信息,运行的jar包在logs目录下会有输出的结果。

 

八,storm任务提交过程

Storm可以和Hadoop有效集成 storm和hadoop的区别_数据_05

 

 九,storm的并发机制

Storm可以和Hadoop有效集成 storm和hadoop的区别_ui_06