storm

asdine/storm学习笔记

纵然是瞬间 提交于 2020-04-04 10:22:00
前言: github地址 asdine/storm asdine/storm 是golang 开发的一个 orm工具. 内置嵌入式数据库为 golang 的流行 K/V 数据库 bbolt 创建数据结构 type User struct { ID int //主键,默认 ID 值为主键, 申明其他类型为主键: `storm:"id"` Group string `storm:"index"` //索引 Email string `storm:"unique"` // 不可重复 Name string // 普通字段, 不会创建索引 Age int } 打开数据库 db, err := storm.Open("my.db") defer db.Close() CRUD 以及数据表操作 //---------------以下是 数据库 操作---------------------- // Init 为给定结构创建索引和存储桶 Init(data interface{}) error eg: err := db.Init(new(User)) // ReIndex 重建存储桶的所有索引. 优化数据库使用 ReIndex(data interface{}) error eg: db.ReIndex(new(User) // 保存结构体数据 Save(data interface{})

Kafka设计解析(七)Kafka Stream

久未见 提交于 2020-03-24 11:28:31
转载自 技术世界 ,原文链接 Kafka设计解析(七)- Kafka Stream 本文介绍了Kafka Stream的背景,如Kafka Stream是什么,什么是流式计算,以及为什么要有Kafka Stream。接着介绍了Kafka Stream的整体架构,并行模型,状态存储,以及主要的两种数据集KStream和KTable。并且分析了Kafka Stream如何解决流式系统中的关键问题,如时间定义,窗口操作,Join操作,聚合操作,以及如何处理乱序和提供容错能力。最后结合示例讲解了如何使用Kafka Stream。 目录 一、Kafka Stream背景 1. Kafka Stream是什么 2. 什么是流式计算 3. 为什么要有Kafka Stream 二、Kafka Stream架构 1. Kafka Stream整体架构 2. Processor Topology 3. Kafka Stream并行模型 4. KTable vs. KStream 5. State store 三、Kafka Stream如何解决流式系统中关键问题 1. 时间 2. 窗口 3. Join 4. 聚合与乱序处理 5. 容错 四、Kafka Stream应用示例 五、总结 一、Kafka Stream背景 1. Kafka Stream是什么 Kafka Stream是Apache

如何搭建Storm集群?

懵懂的女人 提交于 2020-03-19 16:40:29
3 月,跳不动了?>>> 首先准备好三台机器,准备分配以下角色: hadoop1 hadoop2 hadoop3 zk zk zk hadoop hadoop hadoop storm storm storm kafka kafka kafka flume flume flume 1.解压软件 tar -zxvf apache-storm-1.2.3.tar.gz -C apps/ 2.创建数据目录 mkdir apps/data 3.进入conf目录 vi storm.yaml storm.zookeeper.servers:  -"hadoop1"  -"hadoop2"  -"hadoop3" nimbus.seeds: ["hadoop1"] storm.local.dir: "/root/apps/storm/data" supervisor.slots.ports:  -6700  -6701  -6702  -6703 4.添加环境变量 vi /etc/profile export STORM_HOME=/root/apps/storm-1.2.3 export PATH=$PATH:$STORM_HOME/bin source /etc/profile 5.同步与其他节点将这些,还有环境变量,记得source一下 scp ....hadoop2,hadoop3 6

Storm的部署

点点圈 提交于 2020-03-19 02:46:32
配置方案如下 node1 Nimbus zookeeper node2 Supervisor zookeeper node3 Supervisor zookeeper node4 Supervisor 1、配置zookeeper   略。 2.配置storm 配置conf/storm.yaml storm.zookeeper.servers: - "node1" - "node2" - "node3" storm.local.dir: "/opt/storm" supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 nimbus.seeds: ["node1"] drpc.servers: - "node4" storm.health.check.dir: "/opt/storm/healthchecks" storm.health.check.timeout.ms: 5000 3、启动storm a、 在nimbus节点启动nimbus、storm-ui和logviewer: bin/storm nimbus & bin/storm ui & bin/storm logviewer & b、 在各supervisor节点启动supervisor和logviewer: bin/storm supervisor & bin/storm

storm之 Storm 工作原理

穿精又带淫゛_ 提交于 2020-03-19 00:52:45
Storm 工作原理 Storm简介 1.Storm是一套分布式的、可靠的,可容错的用于处理流式数据的系统。 2.Storm也是基于C/S架构来进行工作的,C负责将数据处理的方式的jar(Topology)发送给S,S解析C发送过来的jar(Topology),并按一定规则jar变成多个Task((Spout/Bolt)),生成相关的进程和线程运行里面的Task。 相关述语说明: 1.Topology(拓扑):storm中运行的一个实时应用程序(Storm的一个任务单元),因为各个组件间的消息流动形成逻辑上的一个拓扑结构(所以叫Topology)。Topolog是一组由Spouts(数据源)和Bolts(数据操作)通过Stream Groupings进行连接组成的图。 2.tuple(元组):一次消息传递的基本单元。本来应该是一个key-value的map,但是由于各个组件间传递的tuple的字段名称已经事先定义好,所以tuple中只要按序填入各个value就行了,所以就是一个value list. 3.Stream:以tuple为单位组成的一条有向无界的数据流。(就是tuple在各个组件中流动时的描述) 4.Spout组件:就是一个继承了某个基类的类,里面有类的方法进行相关的操作,用于获取数据,并传递数据到Bolt。 5.Bolt组件:就是一个继承了某个基类的类

[zz]Twitter Storm源代码分析之ZooKeeper中的目录结构

天大地大妈咪最大 提交于 2020-03-19 00:51:41
作者: xumingming | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 转自网址: http://xumingming.sinaapp.com/466/twitter-storm-code-analysis-zookeeper-dirs/ 我们知道Twitter Storm的所有的状态信息都是保存在Zookeeper里面,nimbus通过在zookeeper上面写状态信息来分配任 务,supervisor,task(两个实体)通过从zookeeper中读状态来领取任务,同时supervisor, task也会定义发送心跳信息到zookeeper, 使得nimbus可以监控整个storm集群的状态, 从而可以重启一些挂掉的task。ZooKeeper 使得整个storm集群十分的健壮 — 任何一台工作机器挂掉都没有关系,只要重启然后从zookeeper上面重新获取状态信息就可以了。本文主要介绍Twitter Storm在ZooKeeper中保存的数据目录结构,源代码主要是: backtype.storm.cluster , 废话不多说,直接看下面的结构图: 一个要注意的地方是,作者在代码里面很多地方用到的 storm-id , 其实就是 topology-id 的意思。我在邮件列表里面问了他一下, 他说以前他把topology叫做storm,

windows下storm本地模式java开发实例

删除回忆录丶 提交于 2020-03-14 09:30:22
环境 storm有本地模式和集群模式,本地模式什么都不需要,知道storm jar包就可以运行了,我在windows下eclipse中使用maven进行本地模式的编程。storm编程一种可以继承BaseRichSpout和BaseBasicBolt类,另一种是实现IRichSpout和IRichBolt接口。 maven下载storm jar包 从storm官网上可以查到storm maven配置 http://storm.apache.org/downloads.html 我这里使用的是storm-0.10.0 groupId: org.apache.storm artifactId: storm-core version: 0.10.0 第一种方法 继承类 编写spout package com.storm.stormDemo; import java.util.Map; import java.util.Random; import backtype.storm.spout.SpoutOutputCollector; import backtype.storm.task.TopologyContext; import backtype.storm.topology.OutputFieldsDeclarer; import backtype.storm.topology

大数据处理系统

只愿长相守 提交于 2020-03-12 08:29:04
大数据处理系统可以分为批式(batch)大数据和流式(streaming)大数据两类。其中,批式大数据又被称为历史大数据,流式大数据又被称为实时大数据。 目前主流的三大分布式计算系统Hadoop、Storm、Spark被广泛运用于大数据领域。 批处理大数据系统代表:Hadoop 注:这类系统虽然可对完整大数据集实现高效的即席查询,但无法查询到最新的实时数据,存在数据迟滞高等问题 流处理大数据系统代表:Spark Streaming、Storm(计算系统) 注:此类系统可以对最新实时数据实现高效预设分析处理模型的查询,数据迟滞低 1、分布式计算架构Hadoop Hadoop作为分布式系统的基础架构,数据处理工作在硬盘层面,借助HDFS(分布式文件系统),可以将架构下每一台电脑中的硬盘资源聚集起来,不论是存储计算还是调用都可以视为一块硬盘使用。之后使用集群管理和调度软件YARN,相当于Windows操作系统,最后利用Map/Reduce计算框架就可以在这上面进行计算编程。从而大幅降低了整体计算平台的硬件投入成本。 2、流数据处理Spark和Storm 由于Hadoop的计算过程放在硬盘,受制于硬件条件限制,数据的吞吐和处理速度明显不如使用内存来的快。于是Spark和Storm开始登上舞台。 Spark和Storm两者最大的区别在于实时性:Spark是准实时

入门大数据---Storm搭建与应用

空扰寡人 提交于 2020-03-06 03:57:38
目录 1. Storm在Linux环境配置 2.Storm本地运行 3.Storm在Linux集群上运行 1. Storm在Linux环境配置 主机名 tuge1 tuge2 tuge3 部署环境 Zookeeper/Nimbus Zookeeper/Supervisor Zookeeper/Supervisor ​ (部署一览图) 1.1 配置Zookeeper环境(三台机器都要配置,可以先配置一台,然后分发) 去官网下载 apache-zookeeper-3.5.5-bin.tar.gz ,然后上传到Linux的/opt/zookeeper目录下。(如果没有创建下。) 解压 tar -xvf apache-zookeeper-3.5.5-bin.tar.gz 配置环境 vim /etc/profile export ZK_HOME=/opt/zookeeper/apache-zookeeper-3.5.5-bin export PATH=$ZK_HOME/bin:$PATH 配置Zookeeper日志自动清理 通过配置 autopurge.snapRetainCount 和 autopurge.purgeInterval 这两个参数能够实现定时清理了。 这两个参数都是在zoo.cfg中配置的,将其前面的注释去掉,根据需要修改日志保留个数: autopurge

storm写入到hdfs

北城以北 提交于 2020-03-03 18:29:46
spout package com.heibaiying.component; import org.apache.storm.shade.org.apache.commons.lang.StringUtils; import org.apache.storm.spout.SpoutOutputCollector; import org.apache.storm.task.TopologyContext; import org.apache.storm.topology.OutputFieldsDeclarer; import org.apache.storm.topology.base.BaseRichSpout; import org.apache.storm.tuple.Fields; import org.apache.storm.tuple.Values; import org.apache.storm.utils.Utils; import java.util.*; /** * 产生词频样本的数据源 */ public class DataSourceSpout extends BaseRichSpout { private List<String> list = Arrays.asList("Spark", "Hadoop", "HBase", "Storm",