storm集群安装配置

来源:互联网 发布:淘宝手机壳货源 编辑:程序博客网 时间:2024/05/06 11:03


一、storm概述

 

对比Hadoop的批处理,Storm是个实时的、分布式以及具备高容错的计算系统。同Hadoop一样Storm也可以处理大批量的数据,然而Storm在保证高可靠性的前提下还可以让处理进行的更加实时;也就是说,所有的信息都会被处理。Storm同样还具备容错和分布计算这些特性,这就让Storm可以扩展到不同的机器上进行大批量的数据处理。他同样还有以下的这些特性:

  • 易于扩展。对于扩展,你只需要添加机器和改变对应的topology(拓扑)设置。Storm使用Hadoop Zookeeper进行集群协调,这样可以充分的保证大型集群的良好运行。
  • 每条信息的处理都可以得到保证。
  • Storm集群管理简易。
  • Storm的容错机能:一旦topology递交,Storm会一直运行它直到topology被废除或者被关闭。而在执行中出现错误时,也会由Storm重新分配任务。
  • 尽管通常使用Java,Storm中的topology可以用任何语言设计。

当然为了更好的理解文章,你首先需要安装和设置Storm。需要通过以下几个简单的步骤:

  • 从Storm官方下载Storm安装文件
  • 将bin/directory解压到你的PATH上,并保证bin/storm脚本是可执行的。

Storm组件

Storm集群主要由一个主节点和一群工作节点(worker node)组成,通过 Zookeeper进行协调。

主节点:

主节点通常运行一个后台程序 —— Nimbus,用于响应分布在集群中的节点,分配任务和监测故障。这个很类似于Hadoop中的Job Tracker。

工作节点:

工作节点同样会运行一个后台程序 —— Supervisor,用于收听工作指派并基于要求运行工作进程。每个工作节点都是topology中一个子集的实现。而Nimbus和Supervisor之间的协调则通过Zookeeper系统或者集群。

Zookeeper

Zookeeper是完成Supervisor和Nimbus之间协调的服务。而应用程序实现实时的逻辑则被封装进Storm中的“topology”。topology则是一组由Spouts(数据源)和Bolts(数据操作)通过Stream Groupings进行连接的图。下面对出现的术语进行更深刻的解析。

Spout:

简而言之,Spout从来源处读取数据并放入topology。Spout分成可靠和不可靠两种;当Storm接收失败时,可靠的Spout会对tuple(元组,数据项组成的列表)进行重发;而不可靠的Spout不会考虑接收成功与否只发射一次。而Spout中最主要的方法就是nextTuple(),该方法会发射一个新的tuple到topology,如果没有新tuple发射则会简单的返回。

Bolt:

Topology中所有的处理都由Bolt完成。Bolt可以完成任何事,比如:连接的过滤、聚合、访问文件/数据库、等等。Bolt从Spout中接收数据并进行处理,如果遇到复杂流的处理也可能将tuple发送给另一个Bolt进行处理。而Bolt中最重要的方法是execute(),以新的tuple作为参数接收。不管是Spout还是Bolt,如果将tuple发射成多个流,这些流都可以通过declareStream()来声明。

二、规划:

   zookeeper安装参照:http://blog.csdn.net/liangjianyong007/article/details/52895196

      主机名 IP 安装的软件      运行的进程
        hadoop4192.168.31.40jdk、zookeeper、stormQuorumPeerMain、nimbushadoop5192.168.31.50jdk、zookeeper、stormQuorumPeerMain、supervisorhadoop6192.168.31.60jdk、zookeeper、stormQuorumPeerMain、supervisor
、安装

   1.  上传storm的安装包,解压,配置环境变量

      

      sudo tar -zxvf  apache-storm-0.9.2-incubating.tar.gz  /usr/cloud/storm/apache-storm-0.9.2-incubating      mv  /usr/cloud/storm/apache-storm-0.9.2-incubating   /usr/cloud/storm/apache-storm-0.9.2
      vim /etc/profile
       export JAVA_HOME=/usr/cloud/java/jdk1.6.0_24       export ZK_HOME=/usr/cloud/zookeeper/zookeeper-3.4.5       export STORM_HOME=/usr/cloud/storm/apache-storm-0.9.2       export PATH=$PATH:$JAVA_HOME/bin:$ZK_HOME/bin:$STORM_HOME/bin
        source /etc/profile
  2.修改配置文件storm.yaml

     

#所使用的zookeeper集群主机storm.zookeeper.servers:     - "hadoop4"     - "hadoop5"     - "hadoop6"#nimbus所在的主机名nimbus.host: "hadoop4"supervisor.slots.ports-6701-6702-6703-6704-6705

3.启动storm

   

#在nimbus主机上(hadoop4)nohup ./storm nimbus 1>/dev/null 2>&1 &#web 服务启动nohup ./storm ui 1>/dev/null 2>&1 &#页面检查启动情况:http://hadoop4:8080#在supervisor主机上(hadoop5、hadoop6)nohup ./storm supervisor 1>/dev/null 2>&1 &

4. 提交执行storm程序

 storm jar xx.jar xx.xx.mainclass



0 0