Storm系列(一)环境搭建安装

原文连接:Java 核心知识整理收集 :a870439570.github.io/interview-d…html

什么是Apache Storm

Apache Storm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架,具备最高的摄取率。虽然Storm是无状态的,它经过Apache ZooKeeper管理分布式环境和集群状态。它很简单,您能够并行地对实时数据执行各类操做。git

Apache Storm 和 Hadoop对比

输入图片说明
屏幕截图.png

Apache Storm优点

  • storm是开源的,强大的,用户友好的。它能够用于小公司和大公司。
  • Storm是容错的,灵活的,可靠的,而且支持任何编程语言。
  • 容许实时流处理。
  • Storm是使人难以置信的快,由于它具备巨大的处理数据的力量。
  • Storm能够经过线性增长资源来保持性能,即便在负载增长的状况下。它是高度可扩展的。
  • Storm在几秒钟或几分钟内执行数据刷新和端到端传送响应取决于问题。它具备很是低的延迟。
  • Storm有操做智能。
  • Storm提供保证的数据处理,即便群集中的任何链接的节点死或消息丢失。

Storm 系统中包含如下几个基本概念:

拓扑(Topologies)这里写连接内容 流(Streams) 数据源(Spouts 数据流处理组件(Bolts) 数据流分组(Stream groupings) 可靠性(Reliability) 任务(Tasks) 工做进程(Workers)github

Apache Storm的组件

Tuple数据库

  • Tuple是Storm中的主要数据结构。它是有序元素的列表。默认状况下,Tuple支持全部数据类型。一般,它被建模为一组逗号分隔的值,并传递到Storm集群。

Streamapache

  • 流是元组的无序序列。

Spouts编程

  • 流的源。一般,Storm从原始数据源(如Twitter Streaming API,Apache Kafka队列,Kestrel队列等)接受输入数据。不然,您能够编写spouts以从数据源读取数据。“ISpout”是实现spouts的核心接口,一些特定的接口是IRichSpout,BaseRichSpout,KafkaSpout等。

Bolts安全

  • Bolts是逻辑处理单元。Spouts将数据传递到Bolts和Bolts过程,并产生新的输出流。Bolts能够执行过滤,聚合,加入,与数据源和数据库交互的操做。Bolts接收数据并发射到一个或多个Bolts。 “IBolt”是实现Bolts的核心接口。一些常见的接口是IRichBolt,IBasicBolt等。

Storm工做流程

一个工做的Storm集群应该有一个Nimbus和一个或多个supervisors。另外一个重要的节点是Apache ZooKeeper,它将用于nimbus和supervisors之间的协调。bash

如今让咱们仔细看看Apache Storm的工做流程 −网络

  • 最初,nimbus将等待“Storm拓扑”提交给它。
  • 一旦提交拓扑,它将处理拓扑并收集要执行的全部任务和任务将被执行的顺序。
  • 而后,nimbus将任务均匀分配给全部可用的supervisors。
  • 在特定的时间间隔,全部supervisor将向nimbus发送心跳以通知它们仍然运行着。
  • 当supervisor终止而且不向心跳发送心跳时,则nimbus将任务分配给另外一个supervisor。
  • 当nimbus自己终止时,supervisor将在没有任何问题的状况下对已经分配的任务进行工做。
  • 一旦全部的任务都完成后,supervisor将等待新的任务进去。
  • 同时,终止nimbus将由服务监控工具自动从新启动。
  • 从新启动的网络将从中止的地方继续。一样,终止supervisor也能够自动从新启动。因为网络管理程序和supervisor均可以自动从新启动,而且二者将像之前同样继续,所以Storm保证至少处理全部任务一次。
  • 一旦处理了全部拓扑,则网络管理器等待新的拓扑到达,而且相似地,管理器等待新的任务。

默认状况下,Storm集群中有两种模式:数据结构

  • 本地模式 -此模式用于开发,测试和调试,由于它是查看全部拓扑组件协同工做的最简单方法。在这种模式下,咱们能够调整参数,使咱们可以看到咱们的拓扑如何在不一样的Storm配置环境中运行。在本地模式下,storm拓扑在本地机器上在单个JVM中运行。
  • 生产模式 -在这种模式下,咱们将拓扑提交到工做Storm集群,该集群由许多进程组成,一般运行在不一样的机器上。如在storm的工做流中所讨论的,工做集群将无限地运行,直到它被关闭。

Storm安装(首先安装jdk和zookeeper)

www.apache.org/dyn/closer.… 下载解压,编辑conf/storm.yaml文件

##填写zookeeper集群的ip地址或者主机名
########### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
     - "192.168.2.149"
     - "192.168.2.150"
     - "192.168.2.151"

nimbus.seeds: ["192.168.2.149"]
#配置数据存储路径
storm.local.dir: "/data/ms/storm-1.1.1/data"

##配置节点健康检测
storm.health.check.dir: "healthchecks"
storm.health.check.timeout.ms: 5000

storm.local.hostname: "192.168.2.150"

#配置supervisor: 开启几个端口插槽,就开启几个对应的worker进程
supervisor.slots.ports:
    - 6700
    - 6701
    - 6702
    - 6703
复制代码

配置详解 xstarcd.github.io/wiki/Cloud/…

启动守护进程

最后一步是启动全部的Storm守护进程。 在监督下运行这些守护进程是很是重要的。 Storm是一个快速失败(fail-fast)系统,意味着只要遇到意外错误,进程就会中止。 Storm的设计能够在任什么时候候安全中止,并在从新启动过程时正确恢复。 这就是为何Storm在进程中不保持状态 - 若是Nimbus或Supervisors从新启动,运行的拓扑结构不受影响。 如下是如何运行Storm守护进程:

Nimbus:在Storm主控节点上运行命令bin/storm nimbus &,启动Nimbus后台程序,并放到后台执行。

Supervisor:在Storm各个工做节点上运行命令bin/storm supervisor &。

UI: 在Storm主控节点上运行命令bin/storm ui &,启动UI后台程序,并放到后台执行
复制代码

访问http://192.168.1.191:8080 成功

参考连接:github.com/weyo/Storm-…

相关文章
相关标签/搜索