关闭

Storm集群搭建

146人阅读 评论(0) 收藏 举报
分类:
Storm是什么?
Storm是Twitter开源的一个分布式的实时计算系统

使用场景:

数据的实时分析,持续计算,分布式RPC等等. 
            
Storm特点:
(Storm类似手扶电梯,不出故障就会一直运行.  hadoop类似升降电梯,到达一定程度会停止) 
  • 分布式
  • 可扩展
  • 高可靠性
  • 编程模型简单
  • 高效实时
            
常用的类:
BaseRichSpout(消息生产者) 
BaseBasicBolt(消息处理者) 
TopologyBuilder(拓扑的构建器) 
Config(配置) 
StormSubmitter/LocalCluster(拓扑提交器)

Storm集群部署           

    Storm集群架构: 
    
        如图:

 


在Storm的集群里面有两种节点:

控制节点和工作节点。

控制节点上面运行一个叫Nimbus进程,Nimbus负责在集群里面分发代码,分配计算任务,并且监控状态。
每一个工作节点上面运行一个叫做Supervisor进程。 
Supervisor负责监听从Nimbus分配给它执行的任务,据此启动或停止执行任务的工作进程
Nimbus和Supervisor之间的所有协调工作都是通过Zookeeper集群完成。 
        
集群规划:(根据具体需求规划)
linux主机名    Storm角色    Zookeeper 
master         Nimubus      单节点zk 
slave01        Supervisor    
slave02        Supervisor 
    
准备工作: 
环境:
centos6.4

软件: 
zmq-master 
storm-0.8.2 
zeromq-2.1.7 
zookeeper-3.4.5 
        
环境配置: 
linux基本配置: 
修改主机名 
修改IP 
修改主机和IP的映射关系 
关闭防火墙 
            
安装步骤: 
1.安装jdk 
2.搭建Zookeeper集群(这里我们只安装一个zk在主节点上) 
解压 
进入zk的conf目录下,cp zoo_sample.cfg zoo.cfg(修改一下名字) 
其它的暂时都不变 
3.安装Storm依赖(zeromq、jzmq、python) 
3.1安装zeromq,然后进入到zeromq-2.1.7/目录下 
检测环境:./configure 
cd zeromq-2.1.7 
./configure 
#编译可能会出错:
configure: error: Unable to find a working C++ compiler 
#安装一下依赖的rpm包:libstdc++-devel gcc-c++ 
虚拟机可以上网的情况下:(建议使用此方法) 
yum install gcc-c++ 
虚拟机不能上网情况:
方法2:
首先到
http://mirrors.163.com/centos/6.4/os/x86_64/Packages/  
(下载的版本一定要和系统对应) 
rpm -i libstdc++-devel-4.4.7-3.el6.x86_64.rpm 
rpm -i gcc-c++-4.4.7-3.el6.x86_64.rpm 
rpm -i libuuid-devel-2.17.2-12.9.el6.x86_64.rpm 
然后运行./configure 
make(编译) 
make install(这个才彻底安装) 
3.2.编译安装JZMQ: 
cd jzmq 
执行./autogen.sh
(是为了让它产生配置文件,默认没有配置文件的) 
#报错:autogen.sh: error: could not find libtool. 
libtool is required to run autogen.sh.
缺少libtool 
同样,可上网情况下 
yum install libtool(readhat企业版不会出现这些报错)
或者手动安装 
rpm -i autoconf-2.63-5.1.el6.noarch.rpm 
rpm -i automake-1.11.1-4.el6.noarch.rpm 
rpm -i libtool-2.2.6-15.5.el6.x86_64.rpm 
./configure 
make 
make install 
3.33.编译安装Python
(先确定你系统自带的版本,如果是2.6.6或者之上的不需要安装)
tar –zxvf Python-2.6.6.tgz 
cd Python-2.6.6 
./configure 
make 
make install 
3.4安装storm 
修改storm.yaml配置文件(子节点上也得修改) 
修改zk对应的主机名 
修改主节点对应的主机名 
PS:
3.41.Storm发行版本解压目录下有一个
conf/storm.yaml文件: 
用于配置Storm。默认配置在这里可以查看
conf/storm.yaml中的 
配置选项将覆盖defaults.yaml中的默认配置。
以下配置选项是必须在
conf/storm.yaml中进行配置的: 
storm.zookeeper.servers:
Storm集群使用的Zookeeper集群地址,
其格式如下: 
storm.zookeeper.servers: 
- "111.222.333.444" 
- "555.666.777.888" 
如果Zookeeper集群使用的不是默认端口,
那么还需要storm.zookeeper.port选项。

3.42storm.local.dir: Nimbus和Supervisor进程
用于存储少量状态,  如jars、confs等的本地磁盘目录,需要提前创建该目录并给以足够的访问权限。
然后在storm.yaml中配置该目录,如:  storm.local.dir: "/usr/storm/workdir" 
                                
分别启动三台机器 
master:到storm的bin目录下
./storm nimbus > /dev/null 2>&1 & slave01:到storm的bin目录下
./storm supervisor > ../logs/su.log 2>&1 & slave02:到storm的bin目录下
./storm supervisor > ../logs/su.log 2>&1 & 
(启动后台进程,并把正确和错误的信息输出到该文件中) 
在master上启动UI管理界面
./storm ui > /dev/null 2>&1 & 
通过浏览器观察:(主节点的ip:8080) 
观察集群的worker资源使用情况、
Topologies的运行状态等信息。 

至此,Storm集群已经部署、配置完毕,可以向集群提交拓扑运行了

转载: http://www.aboutyun.com/thread-7271-1-1.html

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:527529次
    • 积分:7169
    • 等级:
    • 排名:第3132名
    • 原创:21篇
    • 转载:1156篇
    • 译文:1篇
    • 评论:24条
    文章分类
    最新评论