Apache storm 是一个由twitter开源的大数据处理系统,与其他系统不同的是,storm旨在用于分布式实时处理并且与语言无关。笔者所认知的storm使用场景诸如 实时日志分析、网站用户行为实时分析、实时计算等,目前很多公司也都把storm作为自己的大数据架构的一部分,来实现一些实时业务的处理。
相信大家都和我有一样的认知,那就是现在的技术都是项目驱动模式,没有最好的技术,只有最适合自己项目的技术。下面先跟大家分享一下我对storm的一些简单了解:
storm的优点:
1.简单的编程模型,类似于MapReduce降低了并行批处理的复杂性,storm降低了进行实时处理的复杂性。
2.支持各种语言,你可以在storm上使用Java、Ruby、Clojure和Python,如果想增加一个新的语言支持,你只需要实现一个简单的storm通信协议即可。
3.容错性,storm会管理工作进程和节点的故障。
4.水平拓展,计算是在多个线程,进程和服务器之间并行进行的。
5.可靠的消息处理,storm保证每个消息至少得到一次完整的处理,任务失败时,storm会尝试从消息源重新发射。
6.快速,系统的设计保证了消息能够快得到快速处理,storm使用的ZeroMQ作为其底层的消息队列。
7.本地模式,这个对开发者来说无疑是方便了很多,可以在本地模拟集群环境进行开发和测试。
storm目前存在的问题:
1.目前的开源版本中只有单节点的Nimbus,挂掉之后只能自动去重启,对系统来说有一定的风险,可以考虑双节点nimbus布局。
2.Storm的一部分核心代码是由Clojure编写,clojure是一个在JVM上运行的动态函数式编程语言,优势在于流程计算,虽然性能上提高不少但是同时也提升了维护成本。
介绍说了一大堆,下面就简单的搭建一个storm的集群环境:
准备环境: 至少三台Linux server(笔者用了5台 cloud server for linux redhat edition)
集群搭建:
第一步:安装JDK/JRE
第二步:安装 zookeeper ,可以参考我的另一篇博文:
http://bigcat2013.iteye.com/blog/2175538
第三步:下载apache storm : http://apache.arvixe.com/storm/
之前的项目用过0.9.1版的,现在由于需要用到kafka,所以选择了最新版0.9.3
第四步: 把下载好的压缩包上传到服务器(可以通过WinSCP等)
第五步:使用"tar -xzvf apache-storm-0.9.3.tar.gz" 解压压缩包
解压后的目录结构:
第六步:修改storm配置文件(/conf/storm.yaml)
基本的需要配置 storm.zookeeper.servers、nimbus.host、storm.local.dir、ui.port、supervisor.slots.ports几个属性,这里需要注意的是nimbus不需要配置supervisor.slots.ports属性,supervisor不需要配置ui.port属性,因为nimbus是主节点,有ui没有worker,supervisor是工作节点,没有ui只有worker:
common:
nimbus:
supervisor(每个supervisor的worker数目可以通过增减slots的数量调整):
注:配置信息不要顶格写,不然启动的时候会报错找不到属性值。
第七步:通过”scp -r“把配置好的storm目录copy到其他的server上(注:如果你当前的server配置为nimbus,其他的server就都按照上述的supervisor配置方法配置storm.yaml)
第八步:在集群的服务器上分别创建storm的本地目录(对应storm.yaml中的storm.local.dir配置)
第九步:启动zookeeper集群,然后启动storm集群
启动storm nimbus : sudo nohup ./bin/storm nimbus > /dev/null &
启动storm UI :sudo nohup ./bin/storm ui > /dev/null &
启动supervisor: sudo nohup ./bin/storm supervisor > /dev/null &
通过配置的nimbus地址+ui.port的属性值可以访问storm的UI,监测storm的运行状态。
按照上述简单的配置之后,storm集群就可以搭建起来了,读者可以根据自己的项目需要做额外的配置,另外可以在/logback/cluster.xml中配置log4j,日志输出和自动清理规则~
相关推荐
ApacheStorm集群搭建[整理].pdf
Apache Storm(apache-storm-2.3.0.tar.gz) 是一个免费的开源分布式实时计算系统。Apache Storm 可以轻松可靠地处理无限制的数据流,实时处理就像 Hadoop 进行批处理一样。Apache Storm 很简单,可以与任何编程语言...
Apache+Tomcat集群环境搭建(附图文).rar 比较详细,希望对大家有帮助
Apache Storm(apache-storm-2.3.0-src.tar.gz 源码) 是一个免费的开源分布式实时计算系统。Apache Storm 可以轻松可靠地处理无限制的数据流,实时处理就像 Hadoop 进行批处理一样。Apache Storm 很简单,可以与...
描述了Apache怎么和Tomcat整合的配置信息
Apache Storm(apache-storm-2.3.0.zip) 是一个免费的开源分布式实时计算系统。Apache Storm 可以轻松可靠地处理无限制的数据流,实时处理就像 Hadoop 进行批处理一样。Apache Storm 很简单,可以与任何编程语言...
Apache Spark开发环境搭建
Apache Storm(apache-storm-2.3.0-src.zip 源码) 是一个免费的开源分布式实时计算系统。Apache Storm 可以轻松可靠地处理无限制的数据流,实时处理就像 Hadoop 进行批处理一样。Apache Storm 很简单,可以与任何...
apache+mod_jk+tomcat的集群环境配置,实现多个tomcat分担网络请求并同步session。文件里包含了一个配置说明文档,所需要的所有文件
通过imply 来安装Apache Druid集群。因配置项较多,个人也反复比对校验过,将个人配置 imply-3.0.4可用的配置进行分享。先将imply_home下的conf进行备份,可解压至imply_home/下即可使用。需要确认一下zk、集群节点...
详细的介绍了在hadoop的安装过程,附带每一步的截图,适合于初学者,以及重点介绍了mapreduce的原理以及简单地应用实例。
文件名: apache-storm-2.4.0.tar.gz.zip 这是 Apache Storm 2.4.0 的安装包,Storm 是一个免费开源的分布式实时计算系统。Storm 使您可以处理大量的数据流,从而实现高效的数据处理和分析。这个安装包包含了所有你...
Php5.6和Apache2.4环境搭建,环境已搭建完毕,浏览器浏览即可
Mastering Apache Storm_Publishing at 2017.pdf 非扫描版
默认情况下,您可以在用户家中新建一个名为“.storm”的目录,并通过storm.yaml设置storm配置通过设置系统环境变量进行配置 export STORM_CONF_DIR在用户主目录中创建一个名为“.storm”的新目录。 像“~/.storm” ...
Apache Storm-0.8.1 API 参考文档 ( Html版 ),0.9.1版的参考文档暂且还没出来,需要的同学赶紧下载哦
windows下Apache2.4+Memcached1.4+Tomcat7集群环境 搭建说明。 部署后的部署包另有上传,参见http://download.csdn.net/detail/ahcstone/9246701 开包即用,方便验证
1 安装apr 2安装apr-util 3安装pcre 4安装apache 5.安装php 修改php.ini配置文件 修改apache配置文件支持php
本文是自己所学课程做的一个实验,基于Xen实现Apache及tomcat集群,并进行session测试。首先你要自己已经安装好Xen及虚拟机。
本文为您讲述了如何在 Windows 或 Linux 下进行 Tomcat 集群的安装配置。 Windows 下 Tomcat 集群的安装配置与 Linux 下...使用 Apache作为集群的代理服务器(它可以安装在任何一台机 器上),它同时也负责负载均衡。