Storm学习一: Storm简介
标签(空格分隔): Storm
一,Storm一些关键特性
1,适用场景广泛: storm可以实时处理消息和更新DB,对一个数据量进行持续的查询并返回客户端(持续计算),对一个耗资源的查询作实时并行化的处理(分布式方法调用,即DRPC),storm的这些基础API可以满足大量的场景。
2,可伸缩性高: Storm的可伸缩性可以让storm每秒可以处理的消息量达到很高。扩展一个实时计算任务,你所需要做的就是加机器并且提高这个计算任务的并行度。Storm使用ZooKeeper来协调集群内的各种配置使得Storm的集群可以很容易的扩展。
3,保证无数据丢失: 实时系统必须保证所有的数据被成功的处理。 那些会丢失数据的系统的适用场景非常窄, 而storm保证每一条消息都会被处理, 这一点和S4相比有巨大的反差。
4. 异常健壮: storm集群非常容易管理,轮流重启节点不影响应用。
5. 容错性好:在消息处理过程中出现异常, storm会进行重试
6. 语言无关性: Storm的topology和消息处理组件(Bolt)可以用任何语言来定义, 这一点使得任何人都可以使用storm.
二,Storm的原理和概念
Storm集群结构
Storm 工作原理
三,Storm的本地安装
1,安装好zookeeper
2,安装需要的一些软件环境
yum install -y gcc-c++.x86_64
yum install -y uuid-devel.x86_64
yum install -y libuuid-devel.x86_64
yum install -y libtool.x86_64
yum install -y git.x86_64
3,获取ZeroMQ和JZMQ的安装包,解压到指定目录并且安装
wget http://download.zeromq.org/zeromq-2.1.7.tar.gz
git clone https://github.com/nathanmarz/jzmq.git
ZeroMQ安装:
cd zeromq-2.1.7
./configure
make
sudo make install
JZMQ安装:
./autogen.sh
./configure
make
sudo make install
4,安装storm:下载安装包
wget https://dl.dropboxusercontent.com/s/tqdpoif32gufapo/storm-0.9.0.1.tar.gz
tar xzvf . /storm-0.9.0.1.tar.gz
5,修改配置文件storm.yaml:
storm.zookeeper.servers:
- "storm.com.cn"
# - "server2"
storm.zookeeper.port: 2181
nimbus.host: "storm.com.cn"
storm.local.dir: "/opt/app/storm-0.9.1-incubating/datadir"
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
ui.port: 8081
6,启动服务测试
bin/storm nimbus
nohup bin/storm nimbus & //后台运行
bin/storm supervisor
nohup bin/storm supervisor & //后台运行
bin/storm ui