欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Apache Storm 集群环境搭建 博客分类: Apache Storm stormapache集群大数据实时流处理 

程序员文章站 2024-03-21 20:51:22
...

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" 解压压缩包

解压后的目录结构:
Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
 
 
第六步:修改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:

Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
 

nimbus:

Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
 
 

supervisor(每个supervisor的worker数目可以通过增减slots的数量调整):

Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
 
 

注:配置信息不要顶格写,不然启动的时候会报错找不到属性值。

 

第七步:通过”scp -r“把配置好的storm目录copy到其他的server上(注:如果你当前的server配置为nimbus,其他的server就都按照上述的supervisor配置方法配置storm.yaml)

Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
 
 
第八步:在集群的服务器上分别创建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,日志输出和自动清理规则~  

 

 


 

 

 

 

 

  • Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
  • 大小: 62 KB
  • Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
  • 大小: 57 KB
  • Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
  • 大小: 4 KB
  • Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
  • 大小: 13.2 KB
  • Apache Storm 集群环境搭建
            
    
    博客分类: Apache Storm stormapache集群大数据实时流处理 
  • 大小: 67.5 KB