Storm系列一: Storm初步】的更多相关文章

初入Storm 前言 学习Storm已经有两周左右的时间,但是认真来说学习过程确实是零零散散,遇到问题去百度一下,找到新概念再次学习,在这样的一个循环又不成体系的过程中不断学习Storm. 前人栽树,后人乘凉,也正是因为网上有这样多热心的人,分享自己的见解,才能够让开发变得更简单.也正是基于这个目的,同时公司恰好是做大数据的,预计还有相当长的时间需要深入Storm,决定写一下Storm系列相关知识. 正文 在大数据处理中,目前来看,有这样三种主要的数据处理方式,以hadoop为主的大数据批处理框…
1.是什么构成一个可运行的topology? worker processes(worker进程),executors(线程)和tasks. 一台Storm集群里面的机器可能运行一个或多个worker进程,一个worker进程运行一个特定topology的executors. 一个worker进程可能运行一个或多个executors.每个executor是一个线程.一个executor运行同一个spout或者bolt的一个或多个task. 一个task完成具体的数据处理. 一个worker进程执…
Storm系列二: Storm拓扑设计 在本篇中,我们就来根据一个案例,看看如何去设计一个拓扑, 如何分解问题以适应Storm架构,同时对Storm拓扑内部的并行机制会有一个基本的了解. 本章代码都在: git@github.com:zyzdisciple/storm_study.git 项目下的 user_behavior包下. 问题案例 有这样一种场景,在前端存在会话,我们会不断收到来自前端的消息,消息包含消息的发送时间,消息内容,结束标识, 消息的发送者, SessionId等其他信息,…
在上一篇博客中,我们通过Storm.Net.Adapter创建了一个使用Csharp编写的Storm Topology - wordcount.本文将介绍如何编写Java端的程序以及如何发布到测试的Storm环境中运行. 如果你觉得对你有帮助,欢迎Star和Fork,让更多人看到来帮助完善这个项目. STEP1: 克隆storm官方示例项目 storm-starter: $ git clone git://github.com/apache/storm.git && cd storm/ex…
WordCount在大数据领域就像学习一门语言时的hello world,得益于Storm的开源以及Storm.Net.Adapter,现在我们也可以像Java或Python一样,使用Csharp创建原生支持的Storm Topologies.下面我将通过介绍wordcount来展示如何使用Csharp开发Storm拓扑. 上篇博客已经介绍了如何部署Storm开发环境,本文所讲述demo已包含在Storm.Net.Adapter中,如果你觉得对你有帮助,欢迎Star和Fork,让更多人看到来帮助…
上篇博客比较了目前流行的计算框架特性,如果你是 Java 开发者,那么根据业务场景选择即可:但是如果你是 .Net 开发者,那么三者都不能拿来即用,至少在这篇文章出现之前是如此.基于上篇文章的比较发现,Storm 应该是对多语言支持比较好的框架了,但即便如此,官方也没有提供 .Net 的适配器,网上也找不到第三方的开源库.So,Storm.Net.Adapter 出现了,一个使用 Csharp 开发的 针对 Apache Storm 的适配器!项目由本人开发,按照Apache License,…
Storm 系列(二)Storm 集群部署和配置 本章中主要介绍了 Storm 的部署过程以及相关的配置信息.通过本章内容,帮助读者从零开始搭建一个 Storm 集群. 一.Storm 的依赖组件 1.1 要部署 Storm,需要要部署以下几个相关组件. JDK :从 Oracle 官网下载,设置环境变量(JAVA_HOME.PATH 和 CLASSPATH). Zookeeper :安装详见(http://www.cnblogs.com/binarylei/p/8721129.html),St…
Storm 系列(二)实时平台介绍 本章中的实时平台是指针对大数据进行实时分析的一整套系统,包括数据的收集.处理.存储等.一般而言,大数据有 4 个特点: Volumn(大量). Velocity(高速). Variety(多样). Value(价值),因此针对大数据的实时平台有以下特点. 延退 :高延迟意味着实时性的缺失. 分布式 :互联网时代,大多数的系统都是部署在一套由多台廉价 Linux 服务器组成的集群上. 高性能 :高速产生的大量数据,通过计算分析获取其中的价值,这需要高性能可靠的处…
Storm 系列(一)基本概念 Apache Storm(http://storm.apache.org/)是由 Twitter 开源的分布式实时计算系统. Storm 可以非常容易并且可靠地处理无限的数据流.对比 Hadoop 的批处理, Storm 是一个实时的.分布式的.具备高容错的计算系统. Storm 的使用场景非常广泛,比如实时分析.在线机器学习.分布式 RPC.ETL 等.Storm 非常高效,在一个多节点集群上每秒钟可以轻松处理上百万条的消息. Storm 还具有良好的可扩展性和…
Storm系列三: Storm消息可靠性保障 在上一篇 Storm系列二: Storm拓扑设计 中我们已经设计了一个稍微复杂一点的拓扑. 而本篇就是在上一篇的基础上再做出一定的调整. 在这里先大概提一下上一篇的业务逻辑, 我们会不断收到来自前端的消息,消息包含消息的发送时间,消息内容,结束标识, 消息的发送者, SessionId等其他信息, 我们需要做的事情是当接收到消息之后,根据SessionId判断是否属于同一消息, 如果是的话将内容拼接, 如果结束标识为 true, 表示会话已结束,则存…
概念,见博客 Storm概念学习系列之stream grouping(流分组) Storm的stream grouping的Shuffle Grouping 它是随机分组,随机派发stream里面的tuple,保证polt的每个人物接收到的tuple数目相同.(它能实现较好的负载均衡) 如果工作中没有特殊要求,一般用Shuffle Grouping. 编写StormTopologyShufferGrouping.java package zhouls.bigdata.stormDemo; imp…
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 继续编写 StormTopologyMoreWorker.java package zhouls.bigdata.stormDemo; import java.util.Map; import org.apache.storm.Config; import org.apache.storm.LocalCluster; import org.apache.storm.…
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 Storm编程入门API系列之Storm的Topology多个Workers数目控制实现 继续编写 StormTopologyMoreExecutor.java package zhouls.bigdata.stormDemo; import java.util.Map; import org.apache.storm.Config; import org.apac…
前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 Storm编程入门API系列之Storm的Topology多个Workers数目控制实现 继续编写 StormTopologyMoreTask.java package zhouls.bigdata.stormDemo; import java.util.Map; import org.apache.storm.Config; import org.apache.s…
不多说,直接上干货! Storm的雪崩问题的解决办法1: Storm概念学习系列之并行度与如何提高storm的并行度 Storm的雪崩问题的解决办法2:…
概念,见博客 Storm概念学习系列之storm的定时任务 Storm的定时任务,分为两种实现方式,都是可以达到目的的. 我这里,分为StormTopologyTimer1.java   和  StormTopologyTimer2.java 编写代码StormTopologyTimer1.java 我这里,用的是shuffleGrouping方式.若大家不懂的话,见我下面的博客 Storm编程入门API系列之Storm的Topology的stream grouping //设置定时任务 con…
不多说,直接上干货! 至于为什么,有storm的定时任务.这个很简单.但是,这个在工作中非常重要! 假设有如下的业务场景 这个spoult源源不断地发送数据,boilt呢会进行处理.然后呢,处理后的结果,假设要写到mysql里面. 假设,spout有几十万条,这么过来.写入到bolt,意味着,它一秒钟要调用mysql几十万此.即操作频率太快,这样导致会出现问题.   所以,很有必要进行storm的定时任务!!! storm的定时任务,它可以每隔指定的时间将数据整合一次存入数据库. 见博客 Sto…
概念,见博客 Storm概念学习系列之storm的可靠性  什么业务场景需要storm可靠性的ACK确认机制? 答:想要保住数据不丢,或者保住数据总是被处理.即若没被处理的,得让我们知道. public void nextTuple() { num++; System.out.println("spout:"+num); int messageid = num; //开启消息确认机制,就是在发送数据的时候发送一个messageid,一般情况下,messageid可以理解为mysql数据…
这个概念,对于理解storm很有必要. 1.worker进程死掉 worker是真实存在的.可以jps查看. 正是因为有了storm的可靠性,所以storm会重新启动一个新的worker进程. 2.supervisor进程死掉 不会影响之前已经提交的topology的执行,只是后期不能再想这个节点分配任务罢了. 3.nimbus进程死掉 不会影响之前已经提交的topology的执行,只是后期不能再想这个节点分配任务罢了. 4.节点宕机 5.ack/fail消息确认机制 见博客 Storm编程入门…
一.简介 下图为 Strom 的运行流程图,在开发 Storm 流处理程序时,我们需要采用内置或自定义实现 spout(数据源) 和 bolt(处理单元),并通过 TopologyBuilder 将它们之间进行关联,形成 Topology. 二.IComponent接口 IComponent 接口定义了 Topology 中所有组件 (spout/bolt) 的公共方法,自定义的 spout 或 bolt 必须直接或间接实现这个接口. public interface IComponent ex…
Storm版本0.9.5 在storm中DRPC服务应用于远程分布式计算,根据客户端提交的请求参数,而返回Storm计算的结果. DRPC服务启动流程(远程模式) 启动DRPC服务,启动命令:storm drpc 修改storm.yaml配置文件,添加drpc.servers,如: drpc.servers: - "mast" 向storm集群中的drpc服务节点mast提交DRPC拓扑 DRPC工作流程 客户端发起请求到DRPC Service DRPC Service会为这次请求生…
2.1 Storm基本概念 在运行一个Storm任务之前,需要了解一些概念: Topologies :[tə'pɑ:lədʒɪ]拓扑结构 Streams Spouts:[spaʊt]喷出; 喷射; 滔滔不绝地讲; 把…典当掉; Bolts:[bəʊlt]筛选; 囫囵吞下; (把门.窗等) 闩上; 突然说出,脱口说出; Stream groupings Reliability Tasks Workers Configuration supervisor:英[ˈsu:pəvaɪzə(r)]监督者,管…
1.解压 apache-storm-0.9.3.tar.gz   2.修改配置文件 conf/storm.yaml --zk地址  storm.zookeeper.servers:  - "wchb01"  - "wchb02"  - "wchb03" --配置zk端口 storm.zookeeper.port: 12181 --nimbus配置  nimbus.host: "wchb01" --storm状态目录 storm…
本博文的主要内容有 .Storm的单机模式安装 .Storm的分布式安装(3节点)   .No space left on device .storm工程的eclipse的java编写 http://storm.apache.org/ 分布式的一个计算系统,但是跟mr不一样,就是实时的,实时的跟Mr离线批处理不一样. 离线mr主要是做数据挖掘.数据分析.数据统计和br分析. Storm,主要是在线的业务系统.数据像水一样,源源不断的来,然后,在流动的过程中啊,就要把数据处理完.比如说,一些解析,…
Storm学习笔记 - Storm初识 1. Strom是什么? Storm是一个开源免费的分布式计算框架,可以实时处理大量的数据流. 2. Storm的特点 高性能,低延迟. 分布式:可解决数据量大,单机搞不定的场景. 可扩展:随着业务的发展,数据量越来越大,系统可以水平扩展. 容错:单个节点挂了,不影响整个应用. 3. Storm与其他框架的比较 3.1 Storm和Hadoop的比较 Storm用于实时计算,Hadoop用于离线计算. Storm处理的数据保存在内存中,源源不断.Hadoo…
storm安装部署 解压storm安装包 $ tar -zxvf apache-storm-1.1.0.tar.gz -C /usr/local/src 修改解压后的apache-storm-1.1.0.tar.gz文件名称为storm-1.1.0 $ mv apache-storm-1.1.0 storm-1.1.0 在/usr/local/src/storm-1.1.0/目录下创建data文件夹 $ mkdir data 修改配置文件 storm.yaml 设置Zookeeper的主机名称…
storm笔记:Storm+Kafka简单应用 这几天工作须要使用storm+kafka,基本场景是应用出现错误,发送日志到kafka的某个topic.storm订阅该topic.然后进行兴许处理.场景很easy,可是在学习过程中.遇到一个奇怪的异常情况:使用KafkaSpout读取topic数据时,没有向ZK写offset数据,致使每次都从头開始读取. 纠结了两天,最终碰巧找到原因:应该使用BaseBasicBolt作为bolt的父类.而不是BaseRichBolt. 通过本文记录一下这样的情…
一.什么是Storm Strom是由Twitter开源的类似于Hadoop的实时数据处理框架.Strom是分布式流式数据处理系统,强大的分布式集群管理.便捷的针对流式数据的编程模型.高容错保障这些都是其成为流式实时数据处理的首选. 二.Storm特点与优势 1)易用:为复杂的流计算模型提供了丰富的服务和编程接口,开发迅速.容易上手学习使用.(开发迅速,容易上手) 2)容错:具有适应性的容错能力.当工作进程(worker)失败时,Storm可以自动重启这些进程:当一个节点宕机时,上面的所有工作进程…
把stream当做一列火车, tuple当做车厢,spout当做始发站,bolt当做是中间站点!!! 见 Storm概念学习系列之Spout数据源 Storm概念学习系列之Topology拓扑 Storm概念学习系列之Blot消息处理者 Storm概念学习系列之Tuple元组…
一.Storm核心概念 1.1 Topologies(拓扑) 一个完整的 Storm 流处理程序被称为 Storm topology(拓扑).它是一个是由 Spouts 和 Bolts 通过 Stream 连接起来的有向无环图,Storm 会保持每个提交到集群的 topology 持续地运行,从而处理源源不断的数据流,直到你将主动其杀死 (kill) 为止. 1.2 Streams(流) Stream 是 Storm 中的核心概念.一个 Stream 是一个无界的.以分布式方式并行创建和处理的…