tokenpocket钱包app下载网址|storm官网

作者: tokenpocket钱包app下载网址
2024-03-14 00:16:17

Apache Storm

Apache Storm

Download

Home

Getting Help

Project Information

Documentation

2.6.1

2.6.0

2.5.0

2.4.0

2.3.0

2.2.1

2.2.0

2.1.1

2.1.0

2.0.0

1.2.4

1.2.3

Talks and Slideshows

Community

Contributing

People

ByLaws

PoweredBy

News

Apache Storm

Latest News

Apache Storm 2.6.1 Released (02 Feb 2024)

Apache Storm 2.6.0 Released (22 Nov 2023)

Apache Storm 2.5.0 Released (04 Aug 2023)

More News

Why use Apache Storm?

Apache Storm is a free and open source distributed realtime computation system. Apache Storm makes it easy to reliably process unbounded streams of data, doing for realtime processing what Hadoop did for batch processing. Apache Storm is simple, can be used with any programming language, and is a lot of fun to use!

Apache Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Apache Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate.

Apache Storm integrates with the queueing and database technologies you already use. An Apache Storm topology consumes streams of data and processes those streams in arbitrarily complex ways, repartitioning the streams between each stage of the computation however needed. Read more in the tutorial.

Meetups

About Apache Storm

Apache Storm integrates with any queueing system and any database system. Apache Storm's spout abstraction makes it easy to integrate a new queuing system. Likewise, integrating Apache Storm with database systems is easy.

First Look

Rationale

Tutorial

Setting up development environment

Creating a new Apache Storm project

Documentation

Index

Javadoc

FAQ

Misc

Licenses

Security

Sponsors

Privacy

Copyright © 2024 Apache Software Foundation

. All Rights Reserved.

Apache Storm, Apache, the Apache feather logo, and the Apache Storm project logos are trademarks of The Apache Software Foundation.

All other marks mentioned may be trademarks or registered trademarks of their respective owners.

Apache Storm downloads

Apache Storm downloads

Download

Home

Getting Help

Project Information

Documentation

2.6.1

2.6.0

2.5.0

2.4.0

2.3.0

2.2.1

2.2.0

2.1.1

2.1.0

2.0.0

1.2.4

1.2.3

Talks and Slideshows

Community

Contributing

People

ByLaws

PoweredBy

News

Apache Storm downloads

Downloads for Apache Storm are below. Instructions for how to set up an Apache Storm cluster can be found here.

Release Integrity

You must verify the integrity of the downloaded files. We provide OpenPGP signatures (*.asc files) for every release file.

This signature should be matched against KEYS file which contains the OpenPGP keys of Storm’s Release Managers.

We also provide SHA-512 checksums for every release file. After you download the file, you should calculate a checksum for your download, and make sure it is the same as ours.

Current 2.6.x Release

The current 2.6.x release is 2.6.1. Source and binary distributions can be found below.

The list of changes for this release can be found here.

Documentation

Javadocs

apache-storm-2.6.1.tar.gz

[PGP]

[SHA512]

apache-storm-2.6.1.zip

[PGP]

[SHA512]

apache-storm-2.6.1-src.tar.gz

[PGP]

[SHA512]

apache-storm-2.6.1-src.zip

[PGP]

[SHA512]

Apache Storm artifacts are hosted in Maven Central. You can add Apache Storm as a dependency with the following coordinates:

groupId: org.apache.storm

artifactId: storm-{component}

version: 2.6.1

Current 1.2.x Release (Discontinued)

Import Note

No upcoming releases are planned for these branches as transitive dependencies reached

their end of life, i.e. they might be affected by security vulnerabilities.

Current development is focused on Storm 2. People are encouraged to upgrade.

Release Details

The current 1.2.x release is 1.2.4. Source and binary distributions can be found below.

The list of changes for this release can be found here.

Documentation

Javadocs

apache-storm-1.2.4.tar.gz

[PGP]

[SHA512]

apache-storm-1.2.4.zip

[PGP]

[SHA512]

apache-storm-1.2.4-src.tar.gz

[PGP]

[SHA512]

apache-storm-1.2.4-src.zip

[PGP]

[SHA512]

Apache Storm artifacts are hosted in Maven Central. You

can add Apache Storm as a dependency with the following coordinates:

groupId: org.apache.storm

artifactId: storm-core

version: 1.2.4

Previous Releases

Archived releases can be found here

Meetups

About Apache Storm

Apache Storm integrates with any queueing system and any database system. Apache Storm's spout abstraction makes it easy to integrate a new queuing system. Likewise, integrating Apache Storm with database systems is easy.

First Look

Rationale

Tutorial

Setting up development environment

Creating a new Apache Storm project

Documentation

Index

Javadoc

FAQ

Misc

Licenses

Security

Sponsors

Privacy

Copyright © 2024 Apache Software Foundation

. All Rights Reserved.

Apache Storm, Apache, the Apache feather logo, and the Apache Storm project logos are trademarks of The Apache Software Foundation.

All other marks mentioned may be trademarks or registered trademarks of their respective owners.

ARTSTORM

ARTSTORM

主页创作者团队Modern Warships 商店我的简介…中文(简体)下载游戏:Modern Warships在史诗级的跨平台在线战斗中操控最强大的现代舰艇和战机!预览预告片游戏特色真实的在线PvP战斗与来自世界各地的玩家进行在现实般激烈的海战,证明自己遥遥领先。收集舰艇与战机根据真实样本和项目收集的200多艘现代舰艇和战机:来自超过12个国家的轻型护卫舰、护卫舰、驱逐舰、战列舰、航空母舰、潜艇、地效飞行器、无人机、隐身战机和战略轰炸机。永远处于战场的中心在单场战斗中在多种类型的载具之间顺滑切换(例如,从舰艇控制切换到直升机控制,反之亦然)。坚不可摧的舰队使用强大的定制系统,可让您升级舰艇和战机的所有子武器,包括武器系统:导弹、火炮、火箭炮、鱼雷 —— 超过300件真实装备!逼真的画质欣赏壮观战斗中高精度舰艇及装备模型——在各平台设备上均画质精良。真实的在线PvP战斗与来自世界各地的玩家进行在现实般激烈的海战,证明自己遥遥领先。收集舰艇与战机根据真实样本和项目收集的200多艘现代舰艇和战机:来自超过12个国家的轻型护卫舰、护卫舰、驱逐舰、战列舰、航空母舰、潜艇、地效飞行器、无人机、隐身战机和战略轰炸机。永远处于战场的中心在单场战斗中在多种类型的载具之间顺滑切换(例如,从舰艇控制切换到直升机控制,反之亦然)。坚不可摧的舰队使用强大的定制系统,可让您升级舰艇和战机的所有子武器,包括武器系统:导弹、火炮、火箭炮、鱼雷 —— 超过300件真实装备!逼真的画质欣赏壮观战斗中高精度舰艇及装备模型——在各平台设备上均画质精良。真实的在线PvP战斗与来自世界各地的玩家进行在现实般激烈的海战,证明自己遥遥领先。收集舰艇与战机根据真实样本和项目收集的200多艘现代舰艇和战机:来自超过12个国家的轻型护卫舰、护卫舰、驱逐舰、战列舰、航空母舰、潜艇、地效飞行器、无人机、隐身战机和战略轰炸机。永远处于战场的中心在单场战斗中在多种类型的载具之间顺滑切换(例如,从舰艇控制切换到直升机控制,反之亦然)。坚不可摧的舰队使用强大的定制系统,可让您升级舰艇和战机的所有子武器,包括武器系统:导弹、火炮、火箭炮、鱼雷 —— 超过300件真实装备!逼真的画质欣赏壮观战斗中高精度舰艇及装备模型——在各平台设备上均画质精良。真实的在线PvP战斗与来自世界各地的玩家进行在现实般激烈的海战,证明自己遥遥领先。收集舰艇与战机根据真实样本和项目收集的200多艘现代舰艇和战机:来自超过12个国家的轻型护卫舰、护卫舰、驱逐舰、战列舰、航空母舰、潜艇、地效飞行器、无人机、隐身战机和战略轰炸机。永远处于战场的中心在单场战斗中在多种类型的载具之间顺滑切换(例如,从舰艇控制切换到直升机控制,反之亦然)。坚不可摧的舰队使用强大的定制系统,可让您升级舰艇和战机的所有子武器,包括武器系统:导弹、火炮、火箭炮、鱼雷 —— 超过300件真实装备!逼真的画质欣赏壮观战斗中高精度舰艇及装备模型——在各平台设备上均画质精良。Item 1 of 5随处畅玩在Google Play、App Store 和华为应用市场中下载游戏,或直接从我们的网站下载APK。不受任何限制地畅玩并为您所需购买的物品下单支付。下载官方APK2GB通过同一帐户在移动设备和PC上游玩!有关PC游戏的更多信息,请访问网站:Modern Warships PCModern Warships官方商店通过无限制的xsolla购买应玩家的要求,我们解决了限制Google在游戏内购买的问题,并增加了使用艾克索拉服务支付的功能。Xsolla是一项支付受理服务,支持130种不同货币的700多种支付方式,并以20种语言在200多个国家/地区提供服务。关于我们Artstorm 是一家手游及端游开发商。该公司成立于2021年。在很短的时间内,我们成功推出了一款逼真的 PvP 战争游戏《Modern Warships》。第一年,我们的下载量就达到了5000万,成为移动端舰艇游戏中的榜首。我们的受众是每天50万活跃用户,其中有来自各大洲的玩家。我们不会就此止步,并准备发布与军事主题相关的同样宏伟的项目。我们的开发团队分布在世界各地,我们共同开发具有令人惊叹的画质和令人兴奋的玩法的游戏。我们希望制作其他开发工作室所仰慕的游戏,这意味着我们有目的,有雄心,也有非刻板的解决方案!加入团队创作者团队创作者团队是一个附属计划,面向所有在社交网络上创建视频、直播、绘画或管理社区的《Modern Warships》指挥官。该计划基于互利合作:我们致力于支持支持我们的内容创作者。更多主页商店创作者团队职位空缺Modern Warships 使用条款Cookie文件隐私政策宣传规则支持© Copyright 2024 ARTSTORM. 保留所有权利

Storm-实时计算系统 - 知乎

Storm-实时计算系统 - 知乎切换模式写文章登录/注册Storm-实时计算系统进击的梦清你知道的越多,你会发现你不知道的也就越多Storm-实时计算系统作者 | WenasWei一 Storm1.1 Storm简介Storm 最早是由 BackType 公司开发的实时处理系统,底层由 Clojure 实现。Clojure 也是一门基于 JVM 的高级面向函数式的编程语言。2011年 Twitter 公司收购了 BackType 公司,便使用 Storm 帮助企业解决了实时海量数据处理的问题。阿里巴巴在 Storm 基础上,使用 Java 代替 Clojure 实现了核心,并在性能上进行了优化,产生了JStorm。目前 Storm 和 JStorm 都由 Apache 基金会组织管理。Storm-实时计算系统:1.2 Storm特性简单的编程模型: 类似于 MapReduce 降低了并行批处理复杂性,Storm降低了进行实时处理的复杂性,主要通过 Tuple 元组在各个组件之间传递数据。支持多种编程语言: 默认支持 Clojure、Java、Ruby 和 Python,要增加对其他语言的支持,只需实现一个简单的 Storm 通信协议即可容错性: Storm 会管理工作进程和节点的故障水平扩展: 计算是在多个线程、进程和服务器之间并行进行的可靠的消息处理: Storm 提供了 Ack 机制,保证每个消息至少能得到一次完整处理。任务失败时, 它会负责从消息源重试消息高性能与低延迟: 系统的设计保证了消息能得到快速的处理,使用 ØMQ[1] 作为其底层消息队列本地模式: Storm 有一个“本地模式”, 可以在处理过程中完全模拟 Storm 集群1.3 Storm使用场景Apache Storm 有许多用例:实时分析,在线机器学习,连续计算,分布式 RPC,ETL 等。Apache Storm 速度很快:基准测试表明它每秒可处理每个节点超过一百万个元组。它具有可扩展性,容错性,可确保您的数据将得到处理,并且易于设置和操作。(1)信息流处理 Stream Processing 处理源源不断产生的消息,并将处理之后的结果存储到某个存储系统中去,典型的架构是 Kafka + Storm + HBase(或redis)。(2)连续计算 Continuous Computation Storm可进行连续查询并把结果即时反馈给客户端,比如把微博上的热门话题发送到浏览器上。(3)分布式远程过程调用 Distributed RPC 用来处理并行密集查询,客户端向Storm提交一个查询请求和查询参数,Storm 运行 Topology 并行处理,并将结果同步返回给客户端。(4)在线机器学习。(5)日志分析: 在线实时分析业务系统或者网站产生的日志数据。(6)管道传输: 能够使数据在不同系统之间进行传输。(7)统计分析: 实时获取日志或者消息,对待定得到字段进行统计计数或累加计算。二 Storm的体系结构2.1 Storm的核心组件Storm 的核心组件分为:Topology: 计算拓扑Nimbus: Storm 的 MasterSupervisor: Storm 的 SlaveWorker: 工作进程Task: 运行于Spout或Bolt中的线程Stream: 数据流Spout: 数据源Bolt: 处理数据Reliability: 可靠性Tuple: 消息传递的基本单元Executor: Worker进程中的具体的物理线程Stream grouping: 每个 Bolt 的确定输入数据流1、Topology计算拓扑, Storm 的拓扑是对实时计算应用逻辑的封装,它的作用与 MapReduce 的任务(Job)很相似,区别在于 MapReduce 的一个 Job 在得到结果之后总会结束,而拓扑会一直在集群中运行,直到你手动去终止它;拓扑还可以理解成由一系列通过数据流(Stream Grouping)相互关联的 Spout 和 Bolt 组成的的拓扑结构, 一个完整的运行任务被称为一个 Topology;监听集群状态,当 Supervisor 节点挂掉,由 Nimbus 将该节点上正在运行着的任务重新分配给其他 Supervisor 执行。2、Nimbus即 Storm 的 Master,本身无状态,负责资源分配和任务调度;一个 Storm 集群只有一个 Nimbus,分配工作给从节点 supervisor,注意不是直接分配,而是将任务发布到 zookeeper 上,由 supervisor 到 zookeeper上领取任务。3、Supervisor即 Storm 的 Slave,负责接收 Nimbus 分配的任务,管理所有 Worker,一个 Supervisor 节点中包含多个 Worker 进程。4、Worker工作进程,每个工作进程中都有多个 Task。5、Task任务,Storm中最小的处理单元,在 Storm 集群中每个 Spout 和 Bolt 都由若干个任务(tasks)来执行;每个任务都与一个执行线程相对应。6、Stream数据流(Streams)是 Storm 中最核心的抽象概念。一个数据流指的是在分布式环境中并行创建、处理的一组元组(tuple)的无界序列。7、Spout数据源(Spout)是拓扑中数据流的来源。一般 Spout 会从一个外部的数据源读取元组然后将他们发送到拓扑中。根据需求的不同,Spout 既可以定义为可靠的数据源,也可以定义为不可靠的数据源。一个可靠的 - Spout 能够在它发送的元组处理失败时重新发送该元组,以确保所有的元组都能得到正确的处理;相对应的,不可靠的 Spout 就不会在元组发送之后对元组进行任何其他的处理。一个 Spout 可以发送多个数据流。8、Bolt拓扑中所有的数据处理均是由 Bolt 完成的。通过数据过滤(filtering)、函数处理(functions)、聚合(aggregations)、联结(joins)、数据库交互等功能,Bolt 几乎能够完成任何一种数据处理需求。一个 Bolt 可以实现简单的数据流转换,而更复杂的数据流变换通常需要使用多个 Bolt 并通过多个步骤完成。9、Reliability可靠性。Storm 可以通过拓扑来确保每个发送的元组都能得到正确处理;通过跟踪由 Spout 发出的每个元组构成的元组树可以确定元组是否已经完成处理。每个拓扑都有一个“消息延时”参数,如果 Storm 在延时时间内没有检测到元组是否处理完成,就会将该元组标记为处理失败,并会在稍后重新发送该元组。10、Tuple消息传递的基本单元11、ExecutorStorm0.8之后, Executor为 Worker进程中的具体的物理线程,同一个 Spout、Bolt的Task可能会共享一个物理线程,一个 Executor中只能运行隶属于同一个 Spout/ Bolt 的 Task12、Stream groupingStream grouping 为拓扑中的每个 Bolt 的确定输入数据流是定义一个拓扑的重要环节;数据流分组定义了在 Bolt 的不同任务(tasks)中划分数据流的方式。2.2 Storm集群架构Storm 的集群也是采用主从架构,Storm 的 Topology 相比于 Hadoop 中的 MapReduceJob 关键区别是: 一个 Topology 在启动后,会永远运行; 而一个 MapReduceJob 会有启动、运行到最终会结束的过程。在 Storm 的集群里面有两种节点: 控制节点 (Nimbus) 和工作节点(Supervisor), Nimbus 负责在集群里面分发执行代码,分配工作给工作节点,并且监控任务的执行状态。每一个工作节点上面运行一个叫作 Supervisor 的守护进程。Supervisor 会监听分配给自己所在机器的工作,根据需要启动/关闭工作进程。每一个工作进程执行一个 Topology 的一个子集,一个运行的 Topology 由运行在很多机器上的很多工作进程组成。Storm 集群可以使用 Apache Zookeeper 集群来作为自己的协调系统,Storm 集群的组织架构:Nimbus 节点和 Supervisor 节点之间的数据通信和协调依靠 Zookeeper 框架完成, Storm被设计成无状态的,Nimbus 节点和 Supervisor 节点中不会保存任何状态信息,所有的状态信息会被保存在 Zookeeper 或者磁盘中。这样,当 Nimbus 节点或者 Supervisor 节点宕机,或者直接使用 kill -9命令杀死 Nimbus 进程和 Supervisor 进程时,重启就可以继续工作,使 Storm 具有高度的稳定性和可靠性。Storm任务分配流程图:(1) 客户端提交拓扑到 nimbus;(2) Nimbus 针对该拓扑建立本地的目录根据 Topology 的配置计算 Task,分配 Task,在 Zookeeper 上建立 Assignments 节点存储 Task 和 Supervisor 机器节点中 Woker 的对应关系;(3) 在 Zookeeper 上创建 Task beats 节点来监控 Task 的心跳;启动 topology。(4) Supervisor 去 Zookeeper 上获取分配的 Tasks,启动多个 Woker 进行,每个 Woker 启动一个或者多个 Executors,线程中执行 Task;(5) 根据 Topology 信息初始化建立 Task 之间的连接; Task 和 Task 之间是通过 ZeroMQ、NettyRPC 管理的通信;三 Stream grouping的9种分组策略在 Storm 中有八种内置的数据流分组方式,还有一种自定义分组策略。3.1 随机分组(Shuffle grouping)这种方式下元组会被尽可能随机地分配到 Bolt 的不同任务(tasks)中,使得每个任务所处理元组数量能够能够保持基本一致,以确保集群的负载均衡。Shuffle Grouping 简单代码示例:TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("mySpout",new MySpout(),1);

builder.setBolt("myBolt",new myBolt(),2).shuffleGrouping("mySpout");3.2 域分组(Fields grouping)数据流根据定义的“域”来进行分组, 按 Tuple 中的字段分组,相同字段的 Tuple 会被分发到同一个 Task 中,这样便于数据的跟踪和处理。例如,如果某个数据流是基于一个名为 “user-id” 的域进行分组的,那么所有包含相同的 “user-id” 的元组都会被分配到同一个任务中,这样就可以确保消息处理的一致性。Fields grouping 简单代码示例:TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("mySpout",new MySpout(),1);

// 按照 myFieId 字段进行分区

builder.setBolt("myBolt",new myBolt(),2).fieldsGrouping("mySpout", new Fields("myFieId"))

.fieldsGrouping(ConstData.CACHE_BOLT, ConstData.PROCESSOR_STREAM, new Fields(AlarmAttrName.ME));3.3 部分关键字分组(Partial Key grouping)这种方式与域分组很相似,根据定义的域来对数据流进行分组,不同的是,这种方式会考虑下游 Bolt 数据处理的均衡性问题,在输入数据源关键字不平衡时会有更好的性能1。感兴趣的读者可以参考这篇论文,其中详细解释了这种分组方式的工作原理以及它的优点。Partial Key grouping 简单代码示例:TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("spout", new PartialKeyGroupingSpout(), 2).setNumTasks(3);

builder.setBolt("bolt", new PartialKeyGroupingBolt(), 3).setNumTasks(5).partialKeyGrouping("spout", new Fields("flag"));3.4 完全分组(All grouping)数据流会被同时发送到 Bolt 的所有任务中(同一个元组会被复制多份然后被所有的任务处理), 也就是说所有的 Tuple 都会被广播发送到所有的 Bolt,常被用于向 Bolt 发送的信号,使用这种分组方式要特别小心。All grouping 简单代码示例:TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("mySpout",new MySpout(),1);

builder.setBolt("myBolt",new MyBolt(),2).allGrouping("mySpout");3.5 全局分组(Global grouping)这种方式下所有的数据流都会被发送到 Bolt 的同一个任务中,也就是 id 最小的那个任务。Global grouping 简单代码示例:TopologyBuilder builder = new TopologyBuilder();

// 拓扑名、数据源、并行度

builder.setSpout("mySpout", new MySpout(), 1);

builder.setBolt("bolt", new MyBolt(), 2).globalGrouping("mySpout");3.6 非分组(None grouping)使用这种方式说明你不关心数据流如何分组。目前这种方式的结果与随机分组完全等效,不过未来 Storm 社区可能会考虑通过非分组方式来让 Bolt 和它所订阅的 Spout 或 Bolt 在同一个线程中执行。None grouping 简单代码示例:TopologyBuilder builder = new TopologyBuilder();

// 拓扑名、数据源、并行度

builder.setSpout("mySpout", new MySpout(), 1);

// 等于 shuffleGrouping

builder.setBolt("myBolt", new MyBolt(), 2).noneGrouping("mySpout");3.7 直接分组(Direct grouping)这是一种特殊的分组方式。使用这种方式意味着元组的发送者可以指定下游的哪个任务可以接收这个元组。只有在数据流被声明为直接数据流时才能够使用直接分组方式。使用直接数据流发送元组需要使用 OutputCollector 的其中一个 emitDirect 方法。Bolt 可以通过 TopologyContext 来获取它的下游消费者的任务 id,也可以通过跟踪 OutputCollector 的 emit 方法(该方法会返回它所发送元组的目标任务的 id)的数据来获取任务 id。Direct grouping 简单代码示例:TopologyBuilder builder = new TopologyBuilder();

// 设置 Spout

builder.setSpout("mySpout", new Myspout()).setNumTasks(2);

//设置 creator-Bolt

builder.setBolt("myBolt", new MyBolt(), 2).directGrouping("mySpout").setNumTasks(2);3.8 本地或随机分组(Local or shuffle grouping)如果在源组件的 worker 进程里目标 Bolt 有一个或更多的任务线程,元组会被随机分配到那些同进程的任务中。换句话说,这与随机分组的方式具有相似的效果。Local or shuffle grouping 简单代码示例:TopologyBuilder builder = new TopologyBuilder();

builder.setSpout("mySpout", new MySpout(), 1);

builder.setBolt("myBolt", new myBolt(), 2).local0rShuffleGrouping("mySpout");3.9 自定义分组策略(Custom Grouping)当 Storm 内置的7种分组策略无法满足需求时, 还可以使用自定义分组策略:Custom Grouping实现自定义分组策略需要实现 CustomStreamGrouping 接口。自定义分组策略类 MyCustomGrouping 的代码如下所示:public class Mycustomgrouping implements CustomStreamGrouping {

@Override

public void prepare(WorkerTopologyContext workerTopologyContext, GlobalStreamId globalStreamId, List list) {

}

@Override

public List chooseTasks(int i, List list) {

return null;

}

}使用示例代码如下所示:TopologyBuilder builder = new TopologyBuilder();

// 拓扑名、数据源、并行度

builder.setSpout("mySpout", new MySpout(), 1);

builder.setBolt("myBolt", new MyBolt(), 2).customGrouping("mySpout", new Mycustomgrouping());四 Storm的可靠性机制和容错性4.1 Storm的可靠性机制在 Storm 中运行着一类特殊的 Task,称为 acker 。acker 能够监控每个从 Spout 发送的 tuple 产生的消息树。当 acker 发现一个 tuple 产生的消息树被完整地处理后,会向产生该 tuple 的 Task 发送一条通知消息,表示该消息已经执行完成。用户可以通过配置 Config.TOPOLOGY_ACKERS 的值来设置一个 Topology 中acker 的数量,默认值为1。如果一个 Topology 中 tuple 的数量较多,就可以将 acker 的数量设置得大一些,以此提高整个 Topology 运行时的性能。Storm Ack 机制的简易流程:(1) Spout 进行初始化,会产生一个全局唯一的 taskId。(2) Spout 创建一个 Tuple,并为 Tuple 指定一个 tupleld,在各个组件之间进行数据传输(3) Spout 将创建的 Tuple 发送出去, 并根据指定的 tupleld 开启跟踪,同时将消息发送到 Acker,Acker对消息进行跟踪。(4) Spout 发送的 Tuple 会经过一系列 Bolt 的处理,产生一个 Tuple 跟踪列表(5) Bolt 调用 collectorack() 方法进行一系列的异或操作,如果得出的最终结果是0,则表示成功;如果得出的最终结果不是0,则表示失败。(6) 根据第(1)步生成的 taskId,回调 Spout 中的 ack()方法或者 fail()方法注意:用户如果不关心可靠性的问题,可以使用如下方式进行设置:(1) 在定义 Topology 时设置 Acker 的数量为 0。代码如下所示:conf.setNumAckers(0);(2) 在 Spout 发送 Tuple 时不指定 messageld, Storm不会开启跟踪,这样就不会开启 Acker 确认机制。(3) 在 Bolt 中使用以 RichBolt 结尾的 Bolt 类,不手动调用 collector.ack() 方法和 collector.fail() 方法,即不进行数据锚定 来发送新的 Tuple 数据, 因为以 RichBolt 结尾的 Bolt 类没有提供可靠性机制, 而以 BasicBolt 为结尾的 Bolt 封装了可靠性机制。4.2 Storm的容错性Storm 的容错分为如下类型:(1)工作进程 worker 失效如果一个节点的工作进程 worker “死掉”,supervisor 进程会尝试重启该 worker。如果连续重启 worker 失败或者 worker 不能定期向 Nimbus 报告“心跳”,Nimbus 会分配该任务到集群其他的节点上执行。(2)集群节点失效如果集群中某个节点失效,分配给该节点的所有任务会因超时而失败,Nimbus 会将分配给该节点的所有任务重新分配给集群中的其他节点。(3)Nimbus 或者supervisor 守护进程失败Nimbus 和supervisor 都被设计成快速失败(遇到未知错误时迅速自我失败)和无状态的(所有的状态信息都保存在 Zookeeper 上或者是磁盘上)。Nimbus 和supervisor 守护进程必须在一些监控工具(例如,daemontools 或者 monitor )的辅助下运行,一旦 Nimbus 或者 supervisor 失败,可以立刻重启它们,整个集群就好像什么事情也没发生。最重要的是,没有工作进程 worker 会因为Nimbus 或 supervisor 的失败而受到影响,Storm 的这个特性和 Hadoop 形成了鲜明的对比,如果 JobTracker 失效,所有的任务都会失败。(4)Nimbus 所在的节点失效如果 Nimbus 守护进程驻留的节点失败,工作节点上的工作进程 worker 会继续执行计算任务,而且,如果 worker 进程失败,supervisor 进程会在该节点上重启失败的worker 任务。但是,没有 Nimbus 的影响时,所有 worker 任务不会分配到其他的工作节点机器上,即使该 worker 所在的机器失效。五 Storm API5.1 Storm 组件回顾:5.2 Storm API(1) 首先编写数据源类: Spouta. 继承 BaseRichSpout类b. 实现 IRichSpout接口c. 重点需要几个方法进行重写或实现:open、nextTuple 和 DeclareOutputFields 方法(2) 继续编写数据处理类:Bolta. 继承 BaseBasicBolt类b. 实现 IRichBolt接口c. 重点需要几个方法进行重写或实现: execute、 declareOutputFields方法(3) 最后编写主函数( Topology)去进行提交一个任务a. TopologyBuilder 组件Topologyb. 在使用 Topology时候, Storm框架为我们提供了俩种模式:本地模式和集群模式本地模式:(无需Storm集群,直接在java中即可运行,一般用于测试和开发阶段)执行运行main函数即可。LocalCluster localCluster = new LocalCluster();

localCluster.submitTopology(topologyName, config, topologyBuilder.createTopology());

localCluster.killTopology(topologyName);

localCluster.shutdown();集群模式:(需要 Storm集群,把实现的java程序打包,然后 Topology进行提交)需要把应用打成jar,使用storm命令把 Topology提交到集群中去。StormSubmitter.submitTopology(topologyName, config, topologyBuilder.createTopology());六 Storm 与其他数据处理框架的区别6.1 Storm与Hadoop的区别Storm 只是一个实时分布式计算框架,但可以读取 hdfs 上的文件进行批量计算,另外 Storm 可以运行在 Yarn 上。Hadoop 的 hdfs 是分布式文件存储系统,mapreduce + Yarn 批量离线计算。Storm 的计算任务为 Topology,提交到 Storm 集群上运行,除非手动执行 kill 命令,否则会一直运行下去。MapReduce 数据处理完毕,就会停止。原理角度来讲:Hadoop M/R基于 HDFS,需要切分输入数据、产生中间数据文件、排序、数据压缩、多份复制等,效率较低。Storm 基于 ZeroMQ 这个高性能的消息通讯库,不持久化数据。6.2 Storm与SparkStreaming的区别Storm是真正的实时处理框架,针对数据,来一条记录就处理一次,是一种流式数据处理技术框架,运行级别达到毫秒级别。SparkStreaming是一种微批数据处理框架,运行级别达到秒级。6.3 Storm与Flink的区别单线程的吞吐量:(图片参考来自美团技术团队)上图中蓝色柱形为单线程 Storm 作业的吞吐,橙色柱形为单线程 Flink 作业的吞吐。Identity 逻辑下,Storm 单线程吞吐为 8.7 万条/秒,Flink 单线程吞吐可达 35 万条/秒。当 Kafka Data 的 Partition 数为 1 时,Flink 的吞吐约为 Storm 的 3.2 倍;当其 Partition 数为 8 时,Flink 的吞吐约为 Storm 的 4.6 倍。由此可以看出,Flink 吞吐约为 Storm 的 3-5 倍。flink 是一个设计良好的框架,它不但功能强大,而且性能出色。此外它还有一些比较好设计,比如优秀的内存管理和流控。但是,flink 目前成熟度较低,还存在着不少问题,比如 SQL 支持比较初级;无法像 storm 一样在不停止任务的情况下动态调整资源;不能像 spark 一样提供很好的 streaming 和 static data 的交互操作等。参考文档:[1] apache.storm官网: http://storm.apache.org/index.html[2] GitHub地址: https://github.com/apache/storm[3] 冰河 . 海量数据处理与大数据技术实战 [M] . 第1版 . 北京: 北京大学出版社 , 2020-09[4] netcobol . Storm 从入门到精通 . CSDN . https://blog.csdn.net/netcobol/category_9273336.html?spm=1001.2014.3001.5482 , 2018-04-03[5] fct2001140269 . Storm与Flink的比较 . CSDN . https://blog.csdn.net/fct2001140269/article/details/84479740 , 2018-11-25ØMQ: ZeroMQ(也称为ØMQ, 0mq或zmq)看起来像一个嵌入式的网络库(an embeddable networking library) ↩发布于 2021-04-21 22:14实时计算Apache Storm大数据​赞同 2​​添加评论​分享​喜欢​收藏​申请

Storm 入门教程_w3cschool

Storm 入门教程_w3cschool

编程入门教程

编程课程

编程实战

编程题库

在线工具

VIP会员

送会员

App下载

扫码下载编程狮APP

注册|登录

注册成功

X

W3Cschool

恭喜您成为首批注册用户

获得88经验值奖励

马上体验

入门教程

编程课程

VIP会员

Storm 入门教程

收藏

更多文章

目录

搜索

书签

Storm 基础知识

Storm 起步

Storm 拓扑

Storm Spouts

Storm Bolts

Storm 一个实际的例子

Storm 使用非 JVM 语言开发

Storm 事务性拓扑

Storm 附录 A

Storm 附录 B

Storm 附录 C

搜索

A

A

默认

夜间

Storm 入门教程

阅读(152.3k)

收藏

赞(59)

分享

手册简介

Storm 是一个分布式的,可靠的,容错的数据流处理系统。它会把工作任务委托给不同类型的组件,每个组件负责处理一项简单特定的任务。

手册说明

Storm 入门教程本书基于最新的 Storm0.7.1 版本撰写,从 Storm 开发环境的搭建、Storm 工程的组成,到 Storm 各组件功能与开发,一步步的让读者入门并熟练掌握如何基于 Storm 的开发并利用 Storm 完成。适用人群从事“大数据”、“实时分析”工作的初学者。学习前提有大数据处理需求,并需要使用 Storm 工具。版本信息书中演示代码基于以下版本:系统版本信息StormStorm0.7.1

更新记录

Storm 附录 C

09-28 16:10

Storm 附录 B

09-28 16:10

Storm 附录 A

09-28 16:09

Storm 事务性拓扑

09-28 16:09

Storm 使用非 JVM 语言开发

09-28 16:09

Storm 一个实际的例子

09-28 16:07

Storm Bolts

09-28 16:07

Storm Spouts

09-28 16:07

Storm 拓扑

09-28 16:06

Storm 基础知识

09-28 16:05

多端阅读

在PC/MAC上查看《Storm 入门教程》

下载《Storm 入门教程》离线版客户端,进入客户端后通过搜索当前教程手册的名称并下载,就可查看当前离线教程文档。

在移动端查看《Storm 入门教程》

扫一扫或直接访问 https://m.w3cschool.cn/storm/

在手机APP上查看《Storm 入门教程》

下载w3cschool手机App端,请从各大安卓应用商店、苹果App Store搜索并下载w3cschool手机客户端,在App中搜索当前教程手册的名称查看。

返回w3cschool官网主页

扩展栏目

开发工具IDE

编程训练营

Wiki列表

分类导航

最新推荐

免费Jquery插件合集

前端学习资源汇总

微信小程序资源汇总

Smarty 教程

SEO基础知识教程

Spring 教程

热门教程

Python3 教程

Java 教程

VUE3 教程

微信小程序开发文档

鸿蒙OS开发文档

HTML 教程

C语言教程

C++ 教程

Linux 教程

SQL 教程

PHP 教程

JavaScript 教程

HTML/CSS

HTML 教程

XHTML 教程

HTML5 教程

HTML 参考手册

CSS 教程

CSS3 教程

CSS 参考手册

Less 教程

Sass 教程

JavaScript

JavaScript 教程

HTML DOM 教程

JavaScript 和 HTML DOM 参考手册

JSON 教程

AJAX 教程

jQuery 教程

ES6 中文教程

TypeScript 教程

Node.js 教程

VUE3 教程

Vue.js 2.0 教程

Vue CLI 中文教程

React 教程

AngularJS 教程

Angular13

Highcharts 教程

ECharts 教程

Axios 中文文档

前端框架

Bootstrap4 教程

vue3.0 ElementPlus 中文版教程

Element React 中文文档

Vant 中文教程

Vant3 中文教程

Vant4

后端语言

Python3 教程

Java 教程

PHP 教程

Go 教程

C语言教程

C++ 教程

Kotlin 教程

Node.js 教程

C# 教程

R语言 教程

Ruby 教程

Lua 教程

ASP.NET 教程

Julia 教程

Excel VBA 编程教程

MATLAB 教程

Rust 语言中文版

Swift 教程

开发框架

Servlet 教程

JSP 教程

Spring 教程

Hibernate 教程

MyBatis 3手册

MyBatis-Plus教程

SpringBoot 那些事

jUnit 教程

SWING 教程

Django4 中文教程

Flask 教程

FastAPI 教程

Python Tornado教程

Gin 教程

iris教程

GoFrame教程

Revel 教程

WordPress 教程

数据库

MySQL 教程

Oracle 教程

PostgreSQL 13.1 中文教程

Redis 教程

SQL 教程

MariaDB 教程

SQLite 教程

MS Access 教程

MongoDB 教程

neo4j 教程

Storm 入门教程

Spark 编程指南

移动开发

鸿蒙OS开发文档

微信小程序开发文档

Android 教程

Android SDK 上手指南

iOS 开发手册

jQuery Mobile 教程

React Native 中文文档

uni-app 中文文档

小程序云开发高级教程

小程序云开发学习指南

Flutter 中文文档

Knockout应用开发指南

服务器相关

Linux 教程

Docker 教程

Kubernetes(k8s)手册

Docker 从入门到实践

DOS 命令学习手册

Nginx 入门指南

Shell 编程范例

UNIX 入门指南

Linux就该这么学

开发工具

Visual Studio Code 教程

Sublime Text 使用手册

Atom 教程

Vim 教程

Eclipse 教程

IntelliJ-IDEA中文教程

Git 教程

SVN 教程

Apache Ant 教程

Gradle 教程

Maven 教程

通俗易懂的 Npm 入门教程

Composer 教程

Vite教程

Webpack 中文指南

Flex 教程

Grunt 教程

HBuilder 使用教程

Tableau 教程

Chrome 开发工具指南

Electron 中文文档

正则表达式

Arduino 教程

Verilog手册

大数据

Hadoop 教程

Apache Pig 教程

Apache Kafka 教程

Apache Storm 教程

impala 教程

Zookeeper 教程

SAS 教程

Moralis Web3 企业级API

云数据库OceanBase教程

软件工程

软件工程教程

设计模式

软件测试教程

UML 教程

PHP设计模式

人工智能

Midjourney中文教程

AI人工智能教程

Copyright©2021 w3cschool编程狮|闽ICP备15016281号-3|闽公网安备35020302033924号

违法和不良信息举报电话:173-0602-2364|举报邮箱:jubao@eeedong.com

在线笔记

App下载

扫描二维码

下载编程狮App

公众号

编程狮公众号

意见反馈

意见反馈

X

意见反馈:

联系方式:

提交

查看完整版笔记

保存

关闭

教程纠错

教程纠错

违规举报

X

广告等垃圾信息

不友善内容

违反法律法规的内容

不宜公开讨论的政治内容

其他

提交

Apache Storm - 下载安装和环境设置

Apache Storm - 下载安装和环境设置

w3schools 教程

HTML

CSS

JAVASCRIPT

BOOTSTRAP

JQUERY

PHP

SQL

PYTHON

PYTHON2

JAVA

C

C++

C#

Linux

AI

教程库

参考手册

测验

练习

HOWTO

FAQ

Apache Storm 教程

Storm - 主页

Storm - 简介

Storm - 核心概念

Storm - 集群架构

Storm - 工作流

Storm - 分布式消息系统

Storm - 下载安装

Storm - 工作示例

Storm - Trident

Twitter 中的 Apache Storm

Yahoo! 财经中的 Apache Storm

Storm - 应用程序

Apache Storm 其他

Storm - 有用的资源

❮ 上一节

下一节 ❯

Apache Storm - 下载安装和环境设置

官网下载 Apache Storm

您可以从官方网站下 Apache Storm 的最新稳定版本。

官网地址:https://storm.apache.org/

现在让我们看看如何在您的机器上安装 Apache Storm 框架。 这里有三个步骤 −

在您的系统上安装 Java(如果您还没有的话)。

安装 ZooKeeper 框架。

安装 Apache Storm 框架。

步骤 1 + 验证 Java 安装

使用以下命令检查您的系统上是否已经安装了 Java。

$ java -version

如果 Java 已经存在,那么您会看到它的版本号。 否则,请下载最新版本的 JDK。

步骤 1.1 − Download JDK

使用以下链接下载最新版本的 JDK − www.oracle.com

步骤 1.2 − 提取文件

文件通常被下载到 downloads 文件夹中。 使用以下命令提取 tar 设置。

$ cd /go/to/download/path

$ tar -zxf jdk-8u60-linux-x64.gz

步骤 1.3 − 移动到 opt 目录

要让所有用户都可以使用 Java,请将提取的 Java 内容移动到"/usr/local/java"文件夹。

$ su

password: (type password of root user)

$ mkdir /opt/jdk

$ mv jdk-1.8.0_60 /opt/jdk/

步骤 1.4 − 设置 PATH 路径

要设置路径和 JAVA_HOME 变量,请将以下命令添加到 ~/.bashrc 文件中。

export JAVA_HOME =/usr/jdk/jdk-1.8.0_60

export PATH=$PATH:$JAVA_HOME/bin

现在将所有更改应用到当前正在运行的系统中。

$ source ~/.bashrc

步骤 1.5 − Java 替代品

使用以下命令更改 Java 替代项。

update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_60/bin/java 100

步骤 1.6

现在使用步骤 1 中说明的验证命令 (java -version) 验证 Java 安装。

步骤 2 − ZooKeeper 框架安装

步骤 2.1 − 下载 ZooKeeper

要在您的机器上安装 ZooKeeper 框架,请访问以下链接并下载最新版本的 ZooKeeper http://zookeeper.apache.org/releases.html

步骤 2.2 − 提取 tar 文件

使用以下命令解压 tar 文件 −

$ cd opt/

$ tar -zxf zookeeper-3.4.6.tar.gz

$ cd zookeeper-3.4.6

$ mkdir data

步骤 2.3 − 创建配置文件

使用命令"vi conf/zoo.cfg"打开名为"conf/zoo.cfg"的配置文件,并将以下所有参数设置为起点。

$ vi conf/zoo.cfg

tickTime=2000

dataDir=/path/to/zookeeper/data

clientPort=2181

initLimit=5

syncLimit=2

配置文件保存成功后,就可以启动 ZooKeeper 服务器了。

步骤 2.4 − 启动 ZooKeeper 服务器

使用以下命令启动 ZooKeeper 服务器。

$ bin/zkServer.sh start

执行该命令后,会得到如下响应 −

$ JMX enabled by default

$ Using config: /Users/../zookeeper-3.4.6/bin/../conf/zoo.cfg

$ Starting zookeeper ... STARTED

步骤 2.5 − 启动 CLI

使用以下命令启动 CLI。

$ bin/zkCli.sh

执行上述命令后,您将连接到 ZooKeeper 服务器并获得以下响应。

Connecting to localhost:2181

................

................

................

Welcome to ZooKeeper!

................

................

WATCHER::

WatchedEvent state:SyncConnected type: None path:null

[zk: localhost:2181(CONNECTED) 0]

步骤 2.6 − 停止 ZooKeeper 服务器

连接服务器并执行所有操作后,您可以使用以下命令停止 ZooKeeper 服务器。

bin/zkServer.sh stop

您已经在您的机器上成功安装了 Java 和 ZooKeeper。 现在让我们看看安装 Apache Storm 框架的步骤。

步骤 3 − Apache Storm 框架安装

步骤 3.1 下载 Storm

要在您的机器上安装 Storm 框架,请访问以下链接并下载最新版本的 Storm http ://storm.apache.org/downloads.html

步骤 3.2 − 提取 tar 文件

使用以下命令解压 tar 文件 −

$ cd opt/

$ tar -zxf apache-storm-0.9.5.tar.gz

$ cd apache-storm-0.9.5

$ mkdir data

步骤 3.3 − 打开配置文件

当前版本的 Storm 在"conf/storm.yaml"中包含一个配置 Storm 守护进程的文件。 将以下信息添加到该文件。

$ vi conf/storm.yaml

storm.zookeeper.servers:

- "localhost"

storm.local.dir: “/path/to/storm/data(any path)”

nimbus.host: "localhost"

supervisor.slots.ports:

- 6700

- 6701

- 6702

- 6703

应用所有更改后,保存并返回终端。

步骤 3.4 − Start the Nimbus

$ bin/storm nimbus

步骤 3.5 − 启动 Supervisor

$ bin/storm supervisor

Step 3.6 启动 UI

$ bin/storm ui

启动 Storm 用户界面应用程序后,在您喜欢的浏览器中输入 URL http://localhost:8080,您可以看到 Storm 集群信息及其运行 topology 。 该页面应类似于以下屏幕截图。

❮ 上一节

下一节 ❯

颜色选择器

读后有收获微信请站长喝咖啡

报告错误

打印

关于

学习路线

×

错误报告

如果您发现内容有误或提出修改建议,请随时向我们发送 E-mail 邮件:

421660149@qq.com

您的建议:

您的 E-mail:

页面地址:

内容描述:

提交

×

感谢您的帮助!

您的建议已发送到 W3schools。

W3Schools 在线教程提供的内容仅用于学习和测试,不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。

Copyright 2020-2024 关于我们 | 隐私条款 | 学习路线 | 京ICP备14045893号-9

Storm学习笔记 - Storm初识 - 知乎

Storm学习笔记 - Storm初识 - 知乎切换模式写文章登录/注册Storm学习笔记 - Storm初识云端笑猿这里不仅仅只有Coding1. Strom是什么?Storm是一个开源免费的分布式计算框架,可以实时处理大量的数据流。2. Storm的特点高性能,低延迟。分布式:可解决数据量大,单机搞不定的场景。可扩展:随着业务的发展,数据量越来越大,系统可以水平扩展。容错:单个节点挂了,不影响整个应用。3. Storm与其他框架的比较3.1 Storm和Hadoop的比较Storm用于实时计算,Hadoop用于离线计算。Storm处理的数据保存在内存中,源源不断。Hadoop处理的数据保存在文件系统中,一批一批。Storm与Hadoop的编程模型相似。3.2 Storm与Spark streaming的比较Spark streaming采用小批量的方式,提高了吞吐性能。处理数据的粒度变大,导致Spark streaming的数据延时不如Storm,Spark streaming是秒级返回结果(与设置的batch间隔有关),Storm则是毫秒级。4. Storm集群架构Storm集群架构Nimbus:Storm集群的主节点,负责分发用户代码,指派给具体的Supervisor节点上的Worker节点,去运行Topology对应的组件(Spout/Bolt)的Task。Supervisor,Storm集群的从节点,负责管理运行在Supervisor节点上的每一个Worker的启动和终止。可以通过配置项决定在一个Supervisor上最大可以运行多少个Slot,每个Slot通过端口号来唯一标识,一个端口号对应一个Worker进程。Worker:运行处理具体组件逻辑的进程,Worker运行的进程只有两种,一种是Spout进程,一种是Bolt进程。Task:Worker中每一个Spout/bolt的线程称为一个Task。Zookeeper:用来协调Nimbus和Supervisor,如果Supervisor因故障出现问题而无法运行Topology,Nimbus会第一时间感知到,并重新分配Topology到其他可用的Supervisor上运行。5. Storm编程模型Storm编程模型Topology:Storm中运行的一个实时应用程序的名称。将 Spout、 Bolt整合起来的拓扑图。定义了 Spout和Bolt的结合关系、并发数量、配置等等。Spout:在一个topology中获取源数据流的组件。通常情况下spout会从外部数据源中读取数据,然后转换为topology内部的源数据。Bolt:接受数据然后执行处理的组件,用户可以在其中执行自己想要的操作。Tuple:一次消息传递的基本单元,理解为一组消息就是一个Tuple。Stream:Tuple的集合。表示数据的流向。6. 总结拓扑(Topology):打包好的实时应用计算任务,同Hadoop的MapReduce任务相似。元组(Tuple):是Storm提供的一个轻量级的数据格式,可以用来包装你需要实际处理的数据。流(Streams):数据流(Stream)是Storm中对数据进行的抽象,它是时间上无界的tuple元组序列(无限的元组序列)。Spout(喷嘴):Storm中流的来源。Spout从外部数据源,如消息队列中读取元组数据并吐到拓扑里。Bolts:在拓扑中所有的计算逻辑都是在Bolt中实现的。任务(Tasks):每个Spout和Bolt会以多个任务(Task)的形式在集群上运行。组件(Component):是对Bolt和Spout的统称。流分组(Stream groupings):流分组定义了一个流在一个消费它的Bolt内的多个任务(task)之间如何分组。可靠性(Reliability):Storm保证了拓扑中Spout产生的每个元组都会被处理。Workers(工作进程):拓扑以一个或多个Worker进程的方式运行。每个Worker进程是一个物理的Java虚拟机,执行拓扑的一部分任务。Executor(线程):是1个被worker进程启动的单独线程。每个executor只会运行1个topology的1个component。Nimbus:Storm集群的Master节点,负责分发用户代码,指派给具体的Supervisor节点上的Worker节点,去运行Topology对应的组件(Spout/Bolt)的Task。Supervisor:Storm集群的从节点,负责管理运行在Supervisor节点上的每一个Worker进程的启动和终止。编辑于 2018-10-29 15:10分布式计算Apache Storm流式分析​赞同​​添加评论​分享​喜欢​收藏​申请

菜鸟入门:开启Storm实时数据处理-完整案例 - 知乎

菜鸟入门:开启Storm实时数据处理-完整案例 - 知乎首发于趣分析切换模式写文章登录/注册菜鸟入门:开启Storm实时数据处理-完整案例herain​​北京三快在线科技有限公司 软件开发目录1,基础环境2,mac 上storm standalone安装2.1安装storm 2.2安装zookeeper2.3启动storm3,开启storm第一个Topology实时工作流4,代码结构解读5,storm 输出存储1,基础环境java是基础环境这一个一定需要有,其次是maven包管理,妈妈再也不用担心包的安装依赖了。当然主角storm的安装必不可少,电脑本地安装standalone的需要的依赖zookeeper。JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home"

CLASS_PATH="$JAVA_HOME/lib"

PATH=".;$PATH:$JAVA_HOME/bin"

M2_HOME=/xxxxxxx/javabin/apache-maven-3.6.3

export M2_HOME

PATH=${PATH}:${JAVA_HOME}/bin:${M2_HOME}/bin

export STORM_HOME=/xxxxxxx/javabin/apache-storm-1.2.3

export ZOOKEEPER_HOME=/xxxxxxx/javabin/apache-zookeeper-3.6.1

export PATH=$PATH:$STORM_HOME/bin:$ZOOKEEPER_HOME/bin

export JAVA_HOME2,mac 上storm standalone安装简而言之:下载对应版本的文件包,解压到自己目录中,然后在 ~/.bash_profie 配置环境变量,见1基础环境2.1安装storm 下载storm http://storm.apache.org/downloads.html 注意是带有bin的安装包2.2安装zookeeper下载zookeeper http://mirror.bit.edu.cn/apache/zookeeper/进入zookeeper的conf目录:cp zoo_sample.cfg zoo.cfg

启动zookeeper:bin/zkServer.sh start

查看zookeeper的运行状态: bin/zkServer.sh status2.3启动storm需要在apache-storm-1.2.3/conf/storm.yaml 配置IP完事具备,启动你的storm:storm nimbus&

storm supervisor&

storm ui&恭喜你看到下图你就成功了一半:3,开启storm第一个Topology实时工作流很人性的是 storm安装包中有完整的测试domo; 如下操作安装依赖和编译。cd apache-storm-1.2.3/examples/storm-starter

mvn clean install -DskipTests=true

mvn compile exec:java -Dstorm.topology=storm.starter.StatefulTopology上传至线上/stormmvn clean install -DskipTests=truemvn package这里测试了两个例子storm jar /Users/mtdp/javabin/apache-storm-1.2.3/examples/storm-starter/target/storm-starter-1.2.3.jar storm.starter.StatefulTopology production-topology-1

storm jar /Users/mtdp/javabin/apache-storm-1.2.3/examples/storm-starter/target/storm-starter-1.2.3.jar org.apache.storm.starter.WordCountTopology wordcont4,代码结构解读grouping策略就是在Spout与Bolt、Bolt与Bolt之间传递Tuple的方式。总共有七种方式 1)shuffleGrouping(随机分组)

2)fieldsGrouping(按照字段分组,在这里即是同一个单词只能发送给一个Bolt)

3)allGrouping(广播发送,即每一个Tuple,每一个Bolt都会收到)

4)globalGrouping(全局分组,将Tuple分配到task id值最低的task里面)

5)noneGrouping(随机分派)

6)directGrouping(直接分组,指定Tuple与Bolt的对应发送关系)

7)Local or shuffle Grouping

8)customGrouping (自定义的Grouping)5,storm 输出存储数据储存,可以根据业务需要选择:Druid, hive, redis等等。我也自己写了一个案例,需要源代码的同学,可以私聊我。。。storm list 查看任务状态参考文献:https://www.cnblogs.com/aijianiula/p/5185019.htmlhttp://www.haroldnguyen.com/blog/2015/01/setting-up-storm-and-running-your-first-topology/https://www.cnblogs.com/ahu-lichang/p/6871920.html发布于 2020-06-10 22:21大数据实时数据Apache Storm​赞同 2​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录趣分析数据分析,看清真相中国R语言社区公众号:数据分析撞上AI |Q群612885

Storm 教程 - 编程宝库

Storm 教程 - 编程宝库

编程宝库 - 技术改变世界

编程宝库

首页

Java

Python

Go

JDK下载

C

PHP

Rust

HTML/CSS

JavaScript

数据库

编程规范

ChatAI

首页

Java

Python

PHP

Go

C

JS

Search

Storm

Storm 教程

Storm 简介

Storm 核心概念

Storm 集群结构

Storm 工作流程

Storm 分布式消息系统

Storm 安装

Storm 示例

Storm Trident

Storm Twitter

Storm 应用场景

Storm 应用程序

Storm 简介

Storm 教程

Storm 是 Twitter 开源的分布式实时大数据处理框架,被业界称为实时版 Hadoop,已成为分布式实时处理系统的标准。Storm 最初由 Nathan Marz 和 BackType 团队创建,后被被 Twitter 收购并开源,使用 Java 和 Clojure 编写。

本教程将讲解 Apache Storm的 原理、安装、分布式消息传递、创建 Storm 拓扑、部署 Storm 集群,Trident的工作流程以及应用案例。

 

1. Storm 应用场景

随着越来越多的场景对 Hadoop 的 MapReduce 高延迟无法容忍,大数据实时处理解决方案的应用日趋广泛,目前已是分布式技术领域最新爆发点,而 Storm 更是流计算技术中的佼佼者。

Storm 应用场景包括:实时推荐系统、金融系统、预警系统、网站统计(实时销量、流量统计)、交通路况实时系统等。

 

2. Storm 特性

1) 适用场景广泛

Storm 可以实时处理消息和更新数据库,对一个数据量进行持续的查询并返回客户端(持续计算),对一个耗资源的查询作实时并行化的处理(分布式方法调用,即DRPC),Storm 的这些基础 API 可以满足大量的场景。

2) 可伸缩性高

Storm 的可伸缩性可以让 Storm 每秒可以处理的消息量达到很高。扩展一个实时计算任务,你所需要做的就是加机器并且提高这个计算任务的并行度 。Storm 使用ZooKeeper 来协调集群内的各种配置使得 Storm 的集群可以很容易的扩展。

3) 保证无数据丢失

实时系统必须保证所有的数据被成功的处理。 那些会丢失数据的系统的适用场景非常窄, 而 Storm 保证每一条消息都会被处理, 这一点和 S4 相比有巨大的反差。

4) 健壮性

Storm 集群非常容易管理,轮流重启节点不影响应用。

5) 容错性好

在消息处理过程中出现异常, Storm 会进行重试。

6) 语言无关性

Storm 的 topology 和消息处理组件(Bolt)可以用任何语言来定义, 使得任何人都可以使用 Storm。

 

3. 适合人群

本教程是为有志于使用 Apache Storm 框架从事大数据分析工作的专业人员准备的。

本教程将为您在分布式环境中创建和部署 Storm 群集提供足够的知识。

 

4. 预备知识

在继续本教程之前,您必须很好地理解 Core Java 和 Linux 操作。

 

5. Storm教程导航

Storm教程

Storm简介

Storm核心概念

Storm集群结构

Storm工作流程

Storm分布式消息系统

Storm安装

Storm示例

Storm Trident

Storm Twitter

Storm应用场景

Storm应用程序

 

 

 

下一节:Storm 简介Storm 教程

 1. 什么是Apache Storm?Apache Storm是一个分布式实时大数据处理系统。Storm设计用于以容错和水平可伸缩方法处理大量数据。这是一个流媒体数据框架,具有最高的摄取率。虽然Storm是无状 ...

Storm 简介

分类导航

Go语言

Java语言

Python语言

C/C++/C#

Rust语言

JavaScript

PHP语言

数据库

HTML/CSS

脚本语言

服务端编程

开发工具

软件工程

软件架构

区块链

电子电路设计

大数据和分析

移动和客户端开发

常用软件

编程宝库 备案号:京ICP备2021011354号    微信号: bkra50

友情链接:

mac软件下载  

外卖会员卡项目  

AI论文  

aippt  

AI绘画  

AI写作  

Dreamina  

AI聊天  

思维导图  

云果吉他  

小程序开发公司  

触手AI  

玖月号  

无双博客   

Mac清理工具  

A1 art  

灵芝孢子粉品牌排行  

托辊  

智能运维平台  

FFU  

电信充值卡回收  

python基础教程  

品牌设计公司  

figma  

爱尚科普网  

cx-a  

香港服务器  

电动密封下送车  

分布式数据库PingCAP  

北京车牌指标公司  

搜外友链  

AI写作免费  

AI写作  

AI写作   

通风柜  

电子元器件网上采购平台  

出国留学  

慕代码  

天然文化网  

DigitalOcean中文网  

Apache Storm 官方文档中文版-阿里云开发者社区

Apache Storm 官方文档中文版-阿里云开发者社区

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云联系我们4008013260售前咨询售后服务其他服务我要建议我要投诉备案控制台开发者社区首页探索云世界探索云世界云上快速入门,热门云上应用快速查找了解更多问产品动手实践考认证TIANCHI大赛活动广场活动广场丰富的线上&线下活动,深入探索云世界任务中心做任务,得社区积分和周边高校计划让每位学生受益于普惠算力训练营资深技术专家手把手带教话题畅聊无限,分享你的技术见解开发者评测最真实的开发者用云体验乘风者计划让创作激发创新阿里云MVP遇见技术追梦人直播技术交流,直击现场下载下载海量开发者使用工具、手册,免费下载镜像站极速、全面、稳定、安全的开源镜像技术资料开发手册、白皮书、案例集等实战精华插件为开发者定制的Chrome浏览器插件探索云世界新手上云云上应用构建云上数据管理云上探索人工智能云计算弹性计算无影存储网络倚天云原生容器serverless中间件微服务可观测消息队列数据库关系型数据库NoSQL数据库数据仓库数据管理工具PolarDB开源向量数据库热门Modelscope模型即服务弹性计算云原生数据库物联网云效DevOps龙蜥操作系统平头哥钉钉开放平台大数据大数据计算实时数仓Hologres实时计算FlinkE-MapReduceDataWorksElasticsearch机器学习平台PAI智能搜索推荐人工智能机器学习平台PAI视觉智能开放平台智能语音交互自然语言处理多模态模型pythonsdk通用模型开发与运维云效DevOps钉钉宜搭支持服务镜像站码上公益

开发者社区

开发与运维

文章

正文

Apache Storm 官方文档中文版

2016-04-01

3287

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《

阿里云开发者社区用户服务协议》和

《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写

侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介:

原文链接    译者:魏勇

About

本项目是 Apache Storm 官方文档的中文翻译版,致力于为有实时流计算项目需求和对 Apache Storm 感兴趣的同学提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。

虽然 Storm 的正式推出已经有好几个年头了,发行版也已经到了 0.10.x,但是目前网络上靠谱的学习资料仍然不多,很多比较有价值的资料都过时了(甚至官方网站自己的资料都没有及时更新,这大概也是发展太快的社区的通病),而较新的资料大多比较零碎,在关键内容的描述上也有些模棱两可,给初学者带来了很大的困扰。本人自己在初学 Storm 的阶段就非常痛苦,一直想有一份较系统、实用的资源来方便学习。最近借着整理工作的机会,就下定决心通过官方文档的翻译梳理出 Storm 的技术路线,于是就有了这个翻译项目。非常感谢并发编程网对本项目的支持,由于本人水平有限,翻译中仍然存在不少问题,还请大家不吝斧正。如果对本项目有任何问题,欢迎在评论中或者本项目的 Github 页面中(https://github.com/weyo/Storm-Documents)提出,另外也可以直接给本人发邮件(ivicoco at gmail.com),谢谢。

说明:如果没有特殊声明,本项目文档中所述 Storm 版本均为 0.9.x 版本。

Storm 官方文档索引

原文资料来源(官方网站):http://storm.apache.org/documentation/Documentation.html

Storm 基础篇

Javadoc1

Tutorial(翻译中……)

基础概念

配置

消息的可靠性保障

容错性

命令行操作

理解 Storm 拓扑的并行度(parallelism)概念

FAQ

Trident

Trident 是 Storm 的一种高级操作接口,它能够提供可靠的数据流一次性处理模式、“事务型”数据持久化存储功能以及一系列数据流分析操作通用组件。

Trident 教程 —— 基本概念与参考手册

Trident API 概述 —— 数据的转换与整合操作

Trident State —— 恰好一次的数据处理与快速、持久化的聚合操作

Trident Spouts —— 事务型与非事务型数据入口

配置与部署

配置 Storm 集群

配置开发环境

本地模式

问题与解决

在生产环境中运行 topology

使用 Maven 构建 Storm 应用

Storm 中级篇

序列化

常用模式

Clojure DSL2

使用非 JVM 语言开发

分布式 RPC3

事务型拓扑4

Storm 与 Kestrel

直接数据流组5

Hooks

Metrics

Trident tuple 的生命周期5

Storm 高级篇

定义 Storm 的非 JVM 语言 DSL

多语言接口协议(如何定义其他语言的接口)

技术实现相关文档

说明

1 JavaDoc 不在翻译计划之中。2 由于译者对 Clojure 不是很熟悉,相关内容暂时没有翻译,非常欢迎熟悉 Clojure 的同学来参与到翻译中。3 由于官方文档关于分布式 RPC 的部分内容已过时,这里改写了相关内容。4 事务型拓扑已经由 Trident 实现,之前的实现已经被标记为 @Deprecated,这里不再讨论。5 该文官方文档暂未提供。

ali清英

目录

热门文章

最新文章

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4