...

Storm项目实战

课程介绍: 项目使用storm0.9.1+kafka0.8.1.1+zookeeper锁+memcached+mysql架构,从集群搭建到集群连通性测试,从项目分析到数据库设计,从需求到topology和bolt的设计,从coding到代码优化,从性能到安全性考虑,全方位系统的讲解一个storm项目案例。相信学完该视频课程之后可以直接面对生成环境的问题,解决问题,优化结构。

课时相关:共 18 课时,更新至第 18 课时

付费服务:所有课时永久观看(不提供下载);专属课件下载。

分享 分享获取学分

01   1、storm+kafka环境搭建-1   【免费观看】 11:03    

1、storm+kafka环境搭建-1

02   2、storm+kafka环境搭建-2 26:39    

2、storm+kafka环境搭建-2

03   3、storm+kafka环境搭建-3 16:21    

3、storm+kafka环境搭建-3

04   4、项目分析 12:31    

4、项目分析

05   5、kafka producer测试 24:13    

5、kafka producer测试

06   6、storm整合kafka 24:45    

6、storm整合kafka

07   7、整合项目测试 07:00    

7、整合项目测试

08   8、storm 订单有效性检查 16:03    

8、storm 订单有效性检查

09   9、storm 数据修正 12:49    

9、storm 数据修正

10   10、storm 数据业务入库处理-1 20:10    

10、storm 数据业务入库处理-1

11   11、storm 数据业务入库处理-2 25:03    

11、storm 数据业务入库处理-2

12   12、storm 数据定时存库处理 34:57    

12、storm 数据定时存库处理

13   13、入库mysql并进行测试和bug修复-1 21:20    

13、入库mysql并进行测试和bug修复-1

14   14、入库mysql并进行测试和bug修复-2 22:45    

14、入库mysql并进行测试和bug修复-2

15   15、优化数据结构-确保数据不丢失 25:36    

15、优化数据结构-确保数据不丢失

16   16、zookeeper锁机制 25:21    

16、zookeeper锁机制

17   17、增加zookeeper锁,保证多线程同时处理数据-1 22:10    

17、增加zookeeper锁,保证多线程同时处理数据-1

18   18、增加zookeeper锁,保证多线程同时处理数据-2 23:40    

18、增加zookeeper锁,保证多线程同时处理数据-2

项目使用storm0.9.1+kafka0.8.1.1+zookeeper锁+memcached+mysql架构,从集群搭建到集群连通性测试,从项目分析到数据库设计,从需求到topology和bolt的设计,从coding到代码优化,从性能到安全性考虑,全方位系统的讲解一个storm项目案例。相信学完该视频课程之后可以直接面对生成环境的问题,解决问题,优化结构。

从一个sql拆解业务


select
count(id) 有效订单量,
sum(totalPrice) 优惠前金额,
sum(totalPrice - youhui) 优惠后金额,
count(distinct memberid) 下单用户数,  (第三个bolt 数据分析,存储)
case when substring(sendpay,9,1)='1' then 1 when substring(sendpay,9,1)='2' then 2 else -1 end 手机客户端下单标记
from
realtime_orders
where
and createdate >= '2014-04-19'   (第一个bolt check 订单是否有效,根据message里面的日期字段进行判断)
group by
case when substring(sendpay,9,1)='1' then 1 when substring(sendpay,9,1)='2' then 2 else -1 end (第二个bolt,进行sendpay的数据纠正)


//构建mysql存储机构
id,order_nums,p_total_price,y_total_price,order_members,sendpay


1、web端发送数据到kafka---order


2、storm从kafka获取数据,进行分析
  a、首先storm和kafka整合--引入插件
  b、简单需要一个topology,读数据,打印数据
  c、通过业务,编写代码
  Map  key = sendpay
       value = count(distinct memberid)===>>去重复===>>>key/value==memcached (sendpay、date)===>>>>sendpay

  d、多线程更新数据库如何防止脏数据问题--引入curator

3、将数据结果入库

message
订单号       用户id       原金额        优惠价     标示字段    下单时间
id           memberid     totalprice    youhui     sendpay     createdate

序号 课件名称 视频名称 课件大小 下载
1 Kafka测试API源码 13、入库mysql并进行测试和bug修复-1 4.08 KB
2 KafkaStorm实战源码 13、入库mysql并进行测试和bug修复-1 115.25 KB
Storm视频教程

Storm视频教程

1222 人观看

kafka视频教程

kafka视频教程

270 人观看

Flume视频教程

Flume视频教程

406 人观看

JQuery视频教程

JQuery视频教程

141 人观看

相关笔记
01    kafka集群环境操作整理

kafka的配置文件config/server.properties:port=9092host.name=master advertised.host.name=master log.dirs=/opt/kafka-logs num.partitions=2 zookeeper.connect=master:2181,slave01:2181,slave02:2181 运行的命令: 1,启动zookeeper服务, 在master,slave01,slave02上分别运行:$ zkServer

02    Storm.yaml超详细配置说明

配置项配置说明storm.zookeeper.serversZooKeeper服务器列表storm.zookeeper.portZooKeeper连接端口storm.local.dirstorm使用的本地文件系统目录(必须存在并且storm进程可读写)storm.cluster.modeStorm集群运行模式()storm.local.mode.zmqLocal模式下是否使用ZeroMQ作消息系统,如果设置为false则使用java消息系统。默认为falsestorm.zookeeper.rootZooK

03    Storm Topology的生命周期过程分析

这里从提交一个topology和kill一个topology的过程来对topology的生命周期进行分析1、提交topology, 通过StormSubmitter.submitTopology提交一个topology之后,客户端、Nimbus、Supervisor的行为如下, Client: Client通过Nimbus的Thrift接口上传jar到Nimbus的Inbox目录中,上传结束后,调用ThrifsubmitTopology接口正式提交了一个Topology Nimbus: 接收到提交拓扑

04    Yahoo! s4和Twitter storm的粗略比较

Items\Projects  Yahoo! s4  Twitter Storm  协议  Apache license 2.0  Eclipse Public License 1.0  开发语言  Java  Clojure,Java,Clojure编写了核心代码结构  去中心化的对等结构  有中心节点nimbus,但非关键通信  可插拔的通讯层,目前是基于UDP的实现基于facebook开源的

05    Storm配置项详解

配置项详解:  以下是从storm的backtype.storm.Config类中搜集的所有storm支持的配置项(Based storm 0.6.0):配置项配置说明storm.zookeeper.serversZooKeeper服务器列表storm.zookeeper.portZooKeeper连接端口storm.local.dirstorm使用的本地文件系统目录(必须存在并且storm进程可读写)storm.cluster.modeStorm集群运行模式()storm.local.mode.zmqL

06    实时计算storm流程架构总结

hadoop一般用在离线的分析计算中,而storm区别于hadoop,用在实时的流式计算中,被广泛用来进行实时日志处理、实时统计、实时风控等场景,当然也可以用在对数据进行实时初步的加工,存储到分布式数据库中如HBase,便于后续的查询。    面对的大批量的数据的实时计算,storm实现了一个可扩展的、低延迟、可靠性和容错的分布式计算平台。      1、对象介绍    

07    滑动窗口在storm中的实现

滑动窗口在监控和统计应用的场景比较广泛,比如每隔一段时间(10s)统计最近30s的请求量或者异常次数,根据请求或者异常次数采取相应措施;这里说一下滑动窗口在storm中实现的原理。参见下图: 窗口大小为30s,每10s就统计一次,那么窗口一共有3个slot,可以对窗口建立长度为3的数组;在storm的blot中在10s内通过execute(tuple)功能不停的把接收的tuple进行count个数(假如内置变量为tuple_count),每10s会自动触发滑动窗口的移动工作(Array=》Array,Ar

08    Kafka学习笔记

关于kafka的架构图在之前的一篇文章中有:http://wiki.corp.qunar.com/pages/viewpage.action?pageId=27866816 kafka的一些设计理念:1、关注大吞吐量,而不是别的特性2、针对实时性场景3、关于消息被处理的状态是在consumer端维护,而不是由kafka server端维护。4、分布式,producer、broker和consumer都分布于多台机器上。以下内容基本是翻译 加总结kafka的官方文档:http://incubator.apa

09    分布式处理框架 hadoop 和 storm

 离线数据批处理模型         Hadoop,大家一定不会陌生。使用了Google的Map/Reduce模型的Hadoop框架,能够将大量的廉价机器作为服务的集群,提供分布式计算的服务。Map/Reduce模型采用分而治之的理念,便意味着面对的群体是大批量的数据处理。Hadoop下的Map/Reduce框架对于数据的处理流程是(借助《深入浅出云计算》里的图): Mapreduce处理图1、 将要处理

10    storm 0.9安装

安装Storm1. 下载Storm,选择一个0.9版本,解压到指定目录(所有机器)。http://storm-project.net/downloads.html  2. 将Storm/bin加入到$PATH中,编辑/etc/profile加入export PATH=$STORM_HOME/bin:$PATH使生效 $source /etc/profile 3. 配置storm/conf/storm.yaml,每台机

友情链接