目前大数据时代已经来临,面临大数据分布式、实时处理的多种技术平台,我们该如何选择?经过调研及逐步甄选,Storm和S4是相对比较突出的两个分布式流计算平台,Storm是由twitter开源,S4是雅虎开源,相对于S4,Storm的成熟度高稳定性好。包括阿里巴巴等大型公司的数据平台也在使用Storm。
搜罗了网上很多Storm的安装教程,大多数网友也是转载,没有一篇教程能够指导完整的安装。下面,我将以Red hat 5.4为例,讲述我的整个安装过程。
一、安装前的准备
以下安装包经过亲测,不能保证其他版本之间是否互相兼容:
(1)从http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz下载python
(2)从http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz下载zookeeper
(3)从http://download.zeromq.org/historic/zeromq-2.1.7.tar.gz下载zeromq
(4)从https://nodeload.github.com/nathanmarz/jzmq/zip/master下载jzmq
(5)从https://dl-web.dropbox.com/u/133901206/storm-0.8.2.zip下载storm,(注意:storm官网链接到的storm下载地址被大陆大部分地区屏蔽,所以要把官网的下载域名替换为dl-web.dropbox.com才可以的)
(6)从orcale官网下载jdk1.6,这里不再列举下载地址,大部分网友应该都有。
(7)从https://nodeload.github.com/technomancy/leiningen/zip/1.x下载lein
二、开始安装
(1)首先将下载好的7个安装包,拷贝到安装机器中,我这暂时以/data/app/package为例。
(2)安装jdk1.6,设置JAVA_HOME和PATH,已经安装的网友忽略此步;
(3)安装python,#cd /data/app/package:
3.1 #tar zxvf Python-2.7.2.tgz
3.2 #./configure
3.3 #make
3.4 #make install
3.5 #vi /ect/ld.so.conf 在末尾追加 /usr/local/lib
3.6 #sudo ldconfig
(4)安装zookeeper,#cd /data/app/package:
4.1 #tar zxf zookeeper-3.3.6.tar.gz
4.2 #cd zookeeper-3.3.6/conf
4.3 #cp zoo_sample.cfg zoo.cfg 复制一个生效的配置文件,配置项可暂不做修改
4.4 #cd ../bin
4.5 #chmod +x * 给执行脚本赋权
4.6 #./zkServer.sh start 启动zookeeper
(5)安装zeromq,#cd /data/app/package:
5.1 #tar zxf zeromq-2.1.7.tar.gz
5.2 #cd zeromq-2.1.7
5.3 #./configure
5.3.1如果报错:(我安装的时候没有报错,因为redhat5.4已经有c compiler,报错的网友按照下面解决)
configure: error: in `/usr/local/download/zeromq-2.1.7':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
原因为没有安装c compiler
解决方法:
#yum install gcc*
5.3.2 如果遇到Error:cannot link with -luuid, install uuid-dev(我安装的时候遇到)
原因为缺少uuid相关package
解决方法:
#yum install uuid*
#yum install e2fsprogs*
5.4#make
5.5#make install
5.6#ldconfig
(6)安装jzmq,#cd /data/app/package:
6.1#unzip jzmq-master.zip (没有安装unzip命令的网友,通过yum安装,redhat5.4已自带)
6.2#cd jzmq-master
6.3#./autogen.sh
6.3.1如果报错:(我安装过程中没有报错)
autogen.sh: error: could not find libtool. libtool is required to run autogen.sh.
缺少libtool,解决办法:
#yum install libtool*
6.4#./configure
6.5#make
6.6#make install
(7)安装lein(Storm运行依赖lein),#cd /data/app/package:
7.1#mkdir lein
7.2#unzip leiningen-1.x.zip
7.3#cp leiningen-1.x/bin/lein lein
7.4#rm -rf leiningen-1.x* (这里仅需要lein这一个可执行文件,其余的源码不需要,所以删除)
7.5#cd lein
7.6#chmod +x lein
7.7#./lein (执行一下,触发下载依赖,执行时,会将lein依赖的jar包从网络下载下来,如果你的电脑与网络不通,可以提前将leiningen-1.7.1-standalone.jar下载下来,放到~/.lein/self-installs文件夹下)
(8)安装storm,#cd /data/app/package:
8.1#unzip storm- 0.8.3 zip
8.2#cd storm- 0.8.3
8.3#cd conf
8.4#vi storm.yaml (每个配置项前面都要有英文空格,否则不生效)
########### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
- "localhost" (我部署的zookeeper和storm同一台机器,所以使用localhost)
# - "server2" (如果对接zookeeper集群,则增加多个,这里先使用zookeeper单点)
storm.zookeeper.server.ports:
- "2181" (zookeeper的端口,默认2181,可不设置)
nimbus.host: "localhost" (nimbus的ip地址,我这里只在单机部署,所以用localhost,如果supervisor和nimbus不是同一台机器,则需要指定具体ip)
8.5#cd ../bin
8.6#chmod +x *
8.7#nohup ./storm nimbus & (启动storm控制进程)
8.8#nohup ./storm ui & (启动storm的ui监控界面,ui界面进程必须与控制进程在同一台机器)
通过http://localhost:8080/可以直接访问
8.9#nohup ./storm supervisor &(启动storm的工作进程)
现在完成了整个storm平台的部署,如上的内容是单机版的部署,如果需要搭建storm集群,那么需要将每台集群机器都要按照如上流程部署,不同的是:
主控机和工作机的storm.yaml不同;主控器使用的是 ./storm nimbus启动,工作机使用的是 ./storm supervisor启动。
谢谢!后面会继续展开storm平台各项功能的研究,研究的札记也会分享出来。
********************************************************************************************************************
附:使用redhat 系统在线安装时提示This system is not registered with RHN(因为安装最后一步没有注册).如下:
[root@localhost ~]# yum install uuid*
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
No package httpd available.
Nothing to do
解决方案:
1.卸载redhat自带的yum组件
[root@localhost ~]# rpm -qa|grep yum|xargs rpm -e --nodeps
2.安装centos的yum包
[root@localhost ~]# wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-4.el5.i386.rpm
[root@localhost ~]# wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
[root@localhost ~]# wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-3.2.22-40.el5.centos.noarch.rpm
[root@localhost ~]# rpm -ivh *.rpm
warning: yum-3.2.22-37.el5.centos.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing... ########################################### [100%]
1:yum-metadata-parser ########################################### [ 33%]
2:yum-fastestmirror ########################################### [ 67%]
3:yum ########################################### [100%]
3. 下载更新源,并存放在系统目录中
[root@localhost ~]# wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo
[root@localhost ~]#mv CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
4.生成缓存并进行安装
[root@localhost ~]# yum makecache
[root@localhost ~]# yum install uuid*
相关推荐
总结来说,基于Storm的分布式流计算集群配置涉及多个步骤,包括服务器角色分配、ZooKeeper集群的搭建、Storm服务的安装和配置,以及拓扑的构建和提交。正确配置这些组件,可以实现高效、稳定的数据流处理。
描述:“基于Java的Yahoo的分布式流计算平台 S4.zip”是一个包含有关Yahoo的S4项目的压缩文件,该平台专注于处理大规模实时数据流。S4是开源的,旨在提供一个可扩展、容错的框架,用于构建和运行分布式流应用。 ###...
至于如何将分布式流计算系统与企业现有的运维系统进行融合,大多数科技公司核心流量仍然沿用旧架构,因为公司核心算法和架构基本没有改动太多,不太可能为了采用Spark和Storm这类开源系统而进行大规模的重新开发。...
### 基于Storm流计算天猫双十一作战室项目实战 #### 一、课程亮点与核心知识点 本课程针对Apache Storm这一强大的分布式实时计算系统进行了全方位的解析与实战演练。通过本课程的学习,不仅可以掌握Storm的基本...
2. **Spark**:基于内存计算的分布式计算引擎,支持批处理、交互式查询、实时流处理等多种计算模式。 3. **Storm**:实时流处理系统,能够处理无界数据流,并确保每个消息只被处理一次。 4. **Flink**:高性能的流...
Storm是一个开源的分布式实时流计算框架,它被广泛应用于实时日志分析、个性化推荐、实时监控等多个领域。这个文档主要聚焦于如何在单机环境下部署和运行Storm,尤其针对CentOS 6.4系统,并且确认在Storm 0.9.6版本...
Apache Storm 是一个开源的分布式实时计算系统,它能够处理大规模的数据流并进行实时分析。在单节点部署中,所有的 Storm 组件,包括 Nimbus、Supervisor 和 UI,都将运行在同一台机器上,适合于开发环境或简单测试...
Java Web编程与分布式计算的结合,为企业级应用程序提供了强大的开发和运行平台。无论是大数据分析、实时流处理还是高并发Web服务,Java都能提供相应的工具和框架来应对挑战。开发者需要深入理解这些技术,并灵活...
Storm是一个开源分布式实时计算系统,它可以实时可靠地处理流数据。在Storm出现之前,进行实时处理是非常痛苦的事情,我们主要的时间都花在关注往哪里发消息,从哪里接收消息,消息如何序列化,真正的业务逻辑只占了...
Storm是一个分布式实时计算系统,能够处理大规模数据流,确保每个事件都得到正确的处理。以下是搭建Storm集群的详细步骤: 1. **设置Zookeeper集群**: Storm依赖Zookeeper进行集群协调,确保高可用性和容错性。...
《基于Storm流计算天猫双十一作战室项目实战》的课程涵盖了多个关键技术和实战环节,旨在让学员深入了解并熟练应用Storm流计算框架,同时强化其在大数据处理领域的综合能力。以下是课程内容的详细阐述: 1. **Storm...
在当前的数字化时代,分布式计算平台已成为处理大量数据的关键技术之一。标题中的“行业分类-设备装置-基于分布式计算平台的GPEH数据解析方法和装置”表明了这个压缩包内容涉及的是工业或设备领域中,利用分布式计算...
本文主要探讨了基于 Apache Storm 的实时流计算平台在铁道供电监控领域的应用,旨在解决海量数据的快速处理问题,提高调度监控的实时性和可靠性。 首先,传统的监控系统面临数据量激增的挑战,尤其是随着物联网设备...
Storm是一个开源的分布式实时计算系统,能够处理连续的数据流,确保低延迟和高吞吐量。结合内存数据库Redis和消息中间件Kafka,DCD-Stream算法的拓扑结构得以优化部署和实现。Redis用于快速存取数据,Kafka则负责...
Apache Storm是一个开源的分布式实时计算系统,它能够持续处理无界数据流,保证每个消息都得到正确的处理。而Spark Streaming是基于Apache Spark构建的,提供了窗口化的批处理能力,以模拟流处理,它擅长于处理短暂...
8. **分布式计算框架**:除了Hadoop,还有许多其他分布式计算框架,如Apache Storm用于实时流处理,Apache Flink用于高性能、低延迟的数据流处理,以及Apache Spark用于批量和交互式计算。 9. **故障检测与恢复**:...
Storm是一个实时计算系统,能够处理高速数据流;ElasticSearch是一个基于Lucene的搜索引擎,能够提供实时的搜索和分析能力。两者的结合可以实现数据的实时处理和检索,从而快速响应安全事件,提供关联分析和预测能力...
**Storm** 是一款由BackType公司开发的分布式实时计算系统,后被Twitter收购并开源。它主要用于处理大规模的数据流,能够简单、高效、可靠地处理实时数据。Storm的核心部分采用Clojure语言编写,外围则使用Java。 *...