`
蔚蓝搁浅
  • 浏览: 9996 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论
  • transist: 不知道近实时搜索是如何实现的?
    Solr

Twitter Storm 安装配置

阅读更多

现况:由很多Job队列和Worker组成的数据处理网,Worker处理队列消息,更新数据库供后续处理...

局限:配置不灵活,队列吞吐量低,没有多少容错,数据延迟明显

Storm:可用于处理消息和更新数据库(流处理),在数据流上进行持续查询,并以流的形式返回结果到客户端(持续计算),并行化一个类似实时查询的热点查询(分布式的RPC);解决延迟、容错;可伸缩;

 

官方安装说明:https://github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster

 

依赖软件:python、zookeeper、zeromq、jzmq

 一、安装Python

wget  http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz

tar zxvf Python-2.7.2.tgz

        cd Python-2.7.2 ./configure

make

make install

vi /etc/ld.so.conf

追加/usr/local/lib/

sudo ldconfig

二、安装zookeeper

wget  http://labs.mop.com/apache-mirror/zookeeper/zookeeper-3.3.5/zookeeper-3.3.5.tar.gz

tar -zxvf zookeeper-3.3.5.tar.gz

cp -R zookeeper-3.3.5 /usr/local/

ln -s /usr/local/zookeeper-3.3.5/ /usr/local/zookeeper

vim /etc/profile (设置ZOOKEEPER_HOME和ZOOKEEPER_HOME/bin)

export ZOOKEEPER_HOME="/path/to/zookeeper"

export PATH=$PATH:$ZOOKEEPER_HOME/bin

cp /usr/local/zookeeper/conf/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg (用zoo_sample.cfg 制作$ZOOKEEPER_HOME/conf/zoo.cfg)

mkdir /tmp/zookeeper

mkdir /var/log/zookeeper

 

zookeeper的单机安装已经完成了。

 

三、安装zeromq以及jzmq

jzmq的安装貌似是依赖zeromq的,所以应该先装zeromq,再装jzmq。

1)安装zeromq:

wget http://download.zeromq.org/zeromq-2.2.0.tar.gz

tar zxf zeromq-2.2.0.tar.gz 

cd zeromq-2.2.0

./configure

make

make install

sudo ldconfig (更新LD_LIBRARY_PATH)

 

zeromq安装完成。

注意:如有有依赖报错,需要安装:

jzmq dependencies 依赖包

sudo yum install uuid*

sudo yum install libtool

sudo yum install libuuid 

sudo yum install libuuid-devel

2)安装jzmq

yum install git 

git clone git://github.com/nathanmarz/jzmq.git

cd jzmq

./autogen.sh

./configure

make

make install

然后,jzmq就装好了.

注意:在./autogen.sh这步如果报错:autogen.sh:error:could not find libtool is required to run autogen.sh,这是因为缺少了libtool,可以用#yum install libtool*来解决。

 

 

四、安装Storm

wget http://cloud.github.com/downloads/nathanmarz/storm/storm-0.8.1.zip

unzip storm-0.8.1.zip

mv storm-0.8.1 /usr/local/

ln -s /usr/local/storm-0.8.1/ /usr/local/storm

vim /etc/profile

export STORM_HOME=/usr/local/storm-0.8.1

export PATH=$PATH:$STORM_HOME/bin

 

到此为止单机版的Storm就安装完毕了。

 

五、测试一下本地模式的WordCount

下载storm-starter 编译,并导入eclipse 工程:

(http://blog.csdn.net/guoqiangma/article/details/7212677)

1. 下载strom starter的代码 git clone https://github.com/nathanmarz/storm-starter.git

2. 使用mvn -f m2-pom.xml package 进行编译

3. 复制 storm-starter目录下的m2_pom.xml 为pom.xml ,因为eclipse需要pom.xml

4. 使用mvn eclipse:eclipse编译成eclipse工程

5. 在Eclipse 中import 选择storm-starter 的路径,一般导入项目后,会需要设置相应的M2_查看工程是否无误, 可能会需要配置M2_REPO变量,

M2_REPO配置方法:工程上右键->Properties->Java Build Path->Libraries->AddVariable- >Configure Variable->New

输入Name:M2_REPO , Path:localRepository路径->ok刷新工程,代码无误了,可以进行开发了

6. 编译无误后,现在本地跑storm.starter目录下的WordCountTopology,看到如下的截屏,代表本地的local模 式可以跑通过

使用eclipse的export功能导出项目的jar包,便于以后分布式的情况下,提交相应的逻辑

Strom-Starter构建失败,缺少twitter4j包 的解决办法:

(http://www.cnblogs.com/zeutrap/archive/2012/10/11/2720528.html)

修改Storm-Starter的pom文件m2-pom.xml ,修改dependency中twitter4j-core 和 twitter4j-stream 两个包的依赖版本,如下:

<dependency>

    <groupId>org.twitter4j</groupId>

     <artifactId>twitter4j-core</artifactId>

    <version>[2.2,)</version>

</dependency>

<dependency>

    <groupId>org.twitter4j</groupId>

      <artifactId>twitter4j-stream</artifactId>

      <version>[2.2,)</version>

</dependency>

 

要注意上面的本地模式运行WordCount其实并没有使用到上述安装的工具,只是一个storm的虚拟环境下测 试demo。那我们怎样将程序运行在刚刚搭建的单机版的环境里面呢,

 

很简单,官方的例子:

 

注意看官方实例中WordCountTopology类如果不带参数其实是执行的本地模式,也就是刚说的虚拟的环境, 带上参数就是将jar发送到了storm执行了。

 

首先弄好环境:

 

启动zookeeper:

 

/usr/local/zookeeper/bin/zkServer.sh  单机版直接启动,不用修改什么配置,如集群就需要修改zoo.cfg

 

配置storm:

 

文件在/usr/local/storm/conf/storm.yaml

 

内容:

 storm.zookeeper.servers:

      - 127.0.0.1

 

  storm.zookeeper.port: 2181

 

 nimbus.host: "127.0.0.1"

 

  storm.local.dir: "/tmp/storm"

 

  supervisor.slots.ports:

  - 6700

  - 6701

  - 6702

  - 6703

 

这个脚本文件写的不咋地,所以在配置时一定注意在每一项的开始时要加空格,冒号后也必须要加空格,否则 storm就不认识这个配置文件了。

 

说明一下:storm.local.dir表示storm需要用到的本地目录。nimbus.host表示那一台机器是master机器, 即nimbus。storm.zookeeper.servers表示哪几台机器是zookeeper服务器。storm.zookeeper.port表 示zookeeper的端口号,这里一定要与zookeeper配置的端口号一致,否则会出现通信错误,切记切记。当 然你也可以配superevisor.slot.port,supervisor.slots.ports表示supervisor节点的槽数,就是最多能跑 几个worker进程(每个sprout或bolt默认只启动一个worker,但是可以通过conf修改成多个)。

 

执行:

 

# bin/storm nimbus(启动主节点)

 

# bin/storm supervisor(启动从节点)

 

执行命令:# storm jar StormStarter.jar storm.starter.WordCountTopology test

 

此命令的作用就是用storm将jar发送给storm去执行,后面的test是定义的toplogy名称。

 

搞定,任务就发送到storm上运行起来了,还可以通过命令:

# bin/storm ui

 

启动ui,可以通过 ip:8080/ 查看运行i情况。

 

分享到:
评论

相关推荐

    基于Java的实例源码-开放实时数据处理平台 Twitter Storm.zip

    标题"基于Java的实例源码-开放实时数据处理平台 Twitter Storm.zip"揭示了我们讨论的主题是Twitter Storm,一个用于实时数据处理的开源平台,其核心实现是用Java编程语言编写的。这个压缩包包含了Nathan Marz开发的...

    基于Java的开放实时数据处理平台 Twitter Storm.zip

    【标题】: "基于Java的开放实时数据处理平台Twitter Storm" 【描述】: Twitter Storm是一个开源的分布式实时计算系统,它允许开发者构建可以处理无界数据流的应用程序。这个技术源自于Twitter,但现在已经成为...

    java源码:开放实时数据处理平台 Twitter Storm.zip

    《Java源码剖析:Twitter Storm实时数据处理平台》 Twitter Storm是一个开源的分布式实时计算系统,它被设计用于处理和汇总大规模的数据流。这个压缩包包含的是Nathan Marz开发的Storm项目的源代码,版本号为9a3e1...

    lamp安装配置及flume+Kafka+Storm+HDFS实时系统搭分享

    在这个过程中,文档《Twitter Storm系列》flume-ng+Kafka+Storm+HDFS 实时系统搭建.docx和《安装扎记.pdf》将提供详细的步骤指导和常见问题解决方案,帮助你顺利完成整个系统的搭建和优化。 总的来说,LNMP与实时大...

    细细品味Storm_Storm简介及安装

    ### Storm简介及安装知识点梳理 #### 一、Storm简介 **Storm** 是一款由BackType公司开发的分布式实时计算系统,后被...通过本文介绍的知识点,读者可以对Storm有一个全面的了解,并掌握其安装和配置的基本方法。

    zk-kafka-redis-storm安装

    最后是Storm的安装,需要搭建Storm集群,配置nimbus、supervisor以及worker节点,同时编写和提交topology来定义实时数据处理逻辑。 在学习和实践这个过程时,你可能需要了解以下几个方面: 1. 分布式系统的基本概念...

    Storm配置详解

    下面详细介绍在Storm配置文件中可以设置的一些核心配置项。 1. storm.zookeeper.servers:这个配置项指定了连接ZooKeeper集群的服务器地址列表。ZooKeeper是一个分布式协调服务,Storm使用它来进行集群状态管理、...

    项目1-Storm安装与编程实践1

    【Storm安装与编程实践】 Storm是一款强大的开源实时计算系统,由Twitter开发并开源,它在实时数据处理领域扮演着与Hadoop在批处理中的角色相似的重要地位。Storm的设计目标是简单、高效、可靠地处理流数据,支持...

    storm0.9.0 linux安装包

    Storm 0.9.0 是一个流行的开源分布式实时计算系统,由Twitter开发并维护,它在大数据处理领域具有广泛的应用。这个Linux安装包是专为那些无法直接从Storm官方网站下载的用户准备的,包含了所有在Linux环境下安装和...

    storm 从零到精通 非常实用的文件

    - Storm 的安装部署相对简单,且操作界面友好。 - **1.4.8 自由开源** - Storm 是一个完全免费且开源的项目,任何人都可以使用和修改它的代码。 **1.5 Storm的应用现状和发展趋势** - **1.5.1 应用现状** - ...

    storm的jar包

    Storm是一个开源的分布式实时计算系统,由Twitter开发并开源,其设计目标是让实时处理变得简单、强大且可靠。在Storm中,数据流被抽象为持续不断的Tuple(元组)序列,这些Tuple在网络中的worker节点间进行分布式...

    twitter4j-2.2.5.zip

    在Storm中集成Twitter4j,首先需要在Storm拓扑的配置中添加Twitter4j的相关依赖,这可以通过修改`pom.xml`文件完成。然后,可以创建一个Bolt或Spout来处理Twitter数据流。例如,可以创建一个`TwitterStreamBolt`,...

    storm大数据相关代码

    在这个压缩包中,我们可以预见到与Storm相关的各种源代码、配置文件或者示例项目。 Storm的核心概念包括: 1. **Spout**:数据源,负责产生数据流。可以是任何数据源,如数据库、消息队列等。 2. **Bolt**:数据...

    storm_jars.zip

    Storm是一个强大的实时大数据处理框架,由Twitter开源并广泛应用于实时分析、在线机器学习、持续计算、分布式RPC等多种场景。它的核心概念是拓扑(Topology),通过定义数据流的处理逻辑,实现了高可用、可扩展的...

    apache-storm-0.9.5源码

    此外,`storm-core`模块中的`backtype.storm.util`提供了各种工具类,如`AsyncLoopRunnable`用于异步执行任务,`Config`类则包含了Storm的配置选项。`storm-client`模块则包含了提交拓扑到集群的相关代码,如`Nimbus...

    apache-storm-1.0.2.tar.gz

    用户需要先用 `tar -zxvf apache-storm-1.0.2.tar.gz` 命令解压,然后按照官方文档进行安装和配置。 4. **Storm 组件**: - **Nimbus**:主控节点,负责任务调度和资源分配,类似于 Hadoop 中的 JobTracker。 - *...

Global site tag (gtag.js) - Google Analytics