jstorm安装配置
- 前言
- 下载
- 配置启动
前言
jstorm介绍
jstorm
JStorm 是一个类似Hadoop MapReduce的系统, 用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,Jstorm将这个任务跑起来,并且按7 * 24小时运行起来,一旦中间一个Worker 发生意外故障, 调度器立即分配一个新的Worker替换这个失效的Worker。
因此,从应用的角度,JStorm应用是一种遵守某种编程规范的分布式应用。从系统角度, JStorm是一套类似MapReduce的调度系统。 从数据的角度,JStorm是一套基于流水线的消息处理机制。
实时计算现在是大数据领域中最火爆的一个方向,因为人们对数据的要求越来越高,实时性要求也越来越快,传统的Hadoop MapReduce,逐渐满足不了需求,因此在这个领域需求不断。
storm组件和Hadoop组件对比
storm | Hadoop | |
角色 | Nimbus | JobTracker |
Supervisor | TaskTracker | |
Worker | Child | |
应用名称 | Topology | Job |
编程接口 | Spout/Bolt | Mapper/Reducer |
优点
在storm和jstorm出现之前,市面上有很多实时计算引擎,但自Storm和Jstorm出现之后,基本上可以说一统江湖,其具有以下优点:
- 开发迅速:接口简单,容易上手,只要遵守Topology、Spout、Bolt的编程规范即可开发出一个扩展性极好的应用,底层Rpc、Worker之间冗余、数据分流之类的动作完全不用考虑。
- >扩展性极好:配置一下并发数,即可线性扩展性能
- >健壮性强:但worker失效或者机器出现故障时,自动分配新的worker替换失效的worker
- >数据准确性:可以采用Ack机制,保证数据不丢失。如果对精度有更高要求,采用事物机制,保证数据准确
应用场景
JStorm处理数据的方式是基于消息的流水线处理,因此特别适合无状态计算,也就是计算单元依赖的数据全部在接受的消息中可以找到,并且最好一个数据流不依赖于另一个数据流。
因此,jstorm常用于:
- >日志分析:从日志中分析出特定的数据,并将分析结果存入外部存储器,如数据库
- >管道系统:如将数据从一个系统输出到另一个系统,比如将数据从数据库同步到Hadoop
- >消息转化器:将接收到的消息按照某种格式进行转化,存储到另外一个系统,如消息中间件
- >统计分析器:从日志或消息中,提炼出某个字段,然后做count或sum计算,最后将统计值植入外部存储器
安装环境
环境:ubuntu14-64位,jdk1.7,tomcat7,zookeeper-3.4.6,jstorm2.1.0
下载
jstorm下载
从这里下载最新版Jstorm(我下载的时候是2.1.0),文件名为jstorm-2.1.0.tar.bz2。
zookeeper下载
从这里下载zookeeper3.4.6
配置
zookeeper安装配置
文件解压
cd命令进入zookeeper3.4.6所在目录,解压文件:
sudo tar -zxvf zookeeper-3.4.6.tar.gz
配置环境变量
vim /etc/profile
加入以下内容:
export ZOOKEEPER_HOME=/home/yyp/developTools/jstorm/zookeeper