Twitter Storm 安装配置

本文详细介绍如何在单机环境中安装配置Apache Storm,包括依赖软件Python、Zookeeper、ZeroMQ及JZMQ的安装步骤,并演示如何运行WordCount示例。

现况:由很多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.youkuaiyun.com/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情况。

 

【SCI复现】含可再生能源与储能的区域微电网最优运行:应对不确定性的解鲁棒性与非预见性研究(Matlab代码实现)内容概要:本文围绕含可再生能源与储能的区域微电网最优运行展开研究,重点探讨应对不确定性的解鲁棒性与非预见性策略,通过Matlab代码实现SCI论文复现。研究涵盖多阶段鲁棒调度模型、机会约束规划、需求响应机制及储能系统优化配置,结合风电、光伏等可再生能源出力的不确定性建模,提出兼顾系统经济性与鲁棒性的优化运行方案。文中详细展示了模型构建、算法设计(如C&CG算法、大M法)及仿真验证全过程,适用于微电网能量管理、电力系统优化调度等领域的科研与工程实践。; 适合人群:具备一定电力系统、优化理论和Matlab编程基础的研究生、科研人员及从事微电网、能源管理相关工作的工程技术人员。; 使用场景及目标:①复现SCI级微电网鲁棒优化研究成果,掌握应对风光负荷不确定性的建模与求解方法;②深入理解两阶段鲁棒优化、分布鲁棒优化、机会约束规划等先进优化方法在能源系统中的实际应用;③为撰写高水平学术论文或开展相关课题研究提供代码参考和技术支持。; 阅读建议:建议读者结合文档提供的Matlab代码逐模块学习,重点关注不确定性建模、鲁棒优化模型构建与求解流程,并尝试在不同场景下调试与扩展代码,以深化对微电网优化运行机制的理解。
个人防护装备实例分割数据集 一、基础信息 数据集名称:个人防护装备实例分割数据集 图片数量: 训练集:4,524张图片 分类类别: - Gloves(手套):工作人员佩戴的手部防护装备。 - Helmet(安全帽):头部防护装备。 - No-Gloves(未戴手套):未佩戴手部防护的状态。 - No-Helmet(未戴安全帽):未佩戴头部防护的状态。 - No-Shoes(未穿安全鞋):未佩戴足部防护的状态。 - No-Vest(未穿安全背心):未佩戴身体防护的状态。 - Shoes(安全鞋):足部防护装备。 - Vest(安全背心):身体防护装备。 标注格式:YOLO格式,包含实例分割的多边形坐标和类别标签,适用于实例分割任务。 数据格式:来源于实际场景图像,适用于计算机视觉模型训练。 二、适用场景 工作场所安全监控系统开发:数据集支持实例分割任务,帮助构建能够自动识别工作人员个人防护装备穿戴状态的AI模型,提升工作环境安全性。 建筑与工业安全检查:集成至监控系统,实时检测PPE穿戴情况,预防安全事故,确保合规性。 学术研究与创新:支持计算机视觉在职业安全领域的应用研究,促进AI与安全工程的结合。 培训与教育:可用于安全培训课程,演示PPE识别技术,增强员工安全意识。 三、数据集优势 精准标注与多样性:每个实例均用多边形精确标注,确保分割边界准确;覆盖多种PPE物品及未穿戴状态,增加模型鲁棒性。 场景丰富:数据来源于多样环境,提升模型在不同场景下的泛化能力。 任务适配性强:标注兼容主流深度学习框架(如YOLO),可直接用于实例分割模型开发,支持目标检测和分割任务。 实用价值高:专注于工作场所安全,为自动化的PPE检测提供可靠数据支撑,有助于减少工伤事故。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值