Strom是什么? storm是Twitter开源的的一个分布式的,容错的实时流计算系统,用来处理大数据系统中一些实时计算业务。strom本身是一个类似Hadoop的MapReduce的计算框架,最大不同在于storm是一个启动后不会停止的服务,除非主动kill掉,而MapReduce则会主动运行结束,storm本身并不负责存储数据,通常互联网的业务场景下strom会从kafka里面读取数据,然后计算完毕后,把计算结果写入redis,mysql或者hbase等一些存储或缓存系统中。 Strom能干什么? Storm 有许多应用领域,包括实时分析、在线机器学习、信息流处理(例如,可以使用Storm 处理新的数据和快速更新数据库)、连续性的计算(例如,使用Storm 连续查询,然后将结果返回给客户端,如将微博上的热门话题转发给用户)、分布式RPC(远过程调用协议,通过网络从远程计算机程序上请求服务)、ETL(Extraction Transformation Loading,数据抽取、转换和加载)等。 Strom的特点: (1)简化了编程模型,降低了开发的难度 (2)支持多语言编程 (3)高容错性 (4)可水平扩展 (5)有ack机制,保证消息可靠快速至少得到一次完整处理 (6)支持local模式,方便快速开发调试 Strom的架构模型
Jstorm是什么? Strom原生是用Clojure开发的,阿里团队在使用过程中,发现了不少了问题,于是使用Java重写了整个storm,使其更稳定,更快,更强大,并兼容原来storm的接口,所以命名为Jstrom,在阿里文档中提到,原storm写的jar,无须改动任何代码即可高效稳定的运行在jstrom的集群中, 如何安装Jstorm? 操作系统: Centos7 节点三个: 192.168.10.38 zk1 jdk8 nimbus+ui+tomcat 192.168.10.39 zk2 jdk8 supervisor 192.168.10.40 zk3 jdk8 supervisor (1)在3个节点上安装JDK,不再详细叙述 (2)在3个节点上安装zookeeper,不再详细叙述,不清楚者,可参考我之前的文章: http://qindongliang.iteye.com/category/299318 zookeeper安装完之后,需要启动 (3)在github下下载jstorm的压缩包: https://github.com/alibaba/jstorm/releases
(4)解压到指定目录并配置环境变量: unzip jstorm-2.1.1.zip vi .bashrc 加入如下变量:
Java代码
(5)下载tomcat wget http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-8/v8.5.3/bin/apache-tomcat-8.5.3.tar.gz (6)安装storm-ui
Java代码
(7)安装配置jstorm 编辑vi jstorm-2.1.1/conf/storm.yaml文件
Java代码
(8)分发配置好的jstorm包,并启动集群 A:在nimbus上,执行nohup jstorm nimbus &启动nimbus,查看$JSTORM_HOME/logs/nimbus.log,检查是否有错误 B:在supervisor节点上执行 “nohup jstorm supervisor &”, 查看$JSTORM_HOME/logs/supervisor.log检查有无错误 (9)访问nimbus所在机的ip:8080,查看Jstorm的ui图:
至此安装成功! (10)常用命令 提交任务命令: jstorm jar xxxx.jar 类名 参数1 参数2 参数n 杀死任务命令: jstorm kill topologyName 参考文档: http://storm.apache.org/ https://github.com/alibaba/jstorm/wiki/JStorm-Chinese-Documentation