《OD学storm》20160828
一、Storm项目
1. 架构
javasdk -> nginx -> 日志文件 -> flume agent(collector) -> hdfs
-> kafka -> storm -> hbased
kafka吞吐量达,可以被不同的消费者重复消费
2. 项目需求
电商
用户提交订单并且成功支付
收集订单详情
分析:
(1)每天(每小时、每分钟)电商网站的总销售额、订单笔数
(2)基于地域(国家、省份、城市)、时段
(3)从客户角度,统计客户消费情况
(4)客户在电商网站消费行为,客户流失趋势
3. 技术框架
Storm Trident
准确度,批次
4. 实现
1)从kafka上读取数据
Trident kafkaspout
TransactionalTridentKafkaSpout:
消息处理失败重试:只能在之前的批次内进行重试,而且如果一直不成功,将会挂起Storm任务应用程序
OpaqueTridentKafkaSpout:
提供容错机制
处理失败的消息可以在其他批次内进行重试,但是只会被成功处理一次。
exactly-once 有且只有一次。
select sum(price), count(1), date
from 订单记录表
group by date
分组统计:
(1)直接进行全局统计(跨网络数据传输)
(2)先在同一批次个分区内进行局部统计(不需要进行跨网络传输),然后对局部统计好的结果进行全局统计。
group by
partitionAggregate 局部统计
persistentAggregate 全局统计
5. 使用HBase数据库进行存储统计结果状态
rowkey value:
NON-TRANSACTIONAL 统计值
TRANSACTIONAL BATCH_ID 统计值
OPAQUE TRANSACTIONAL BATCH_ID 统计值,上个批次的统计值
作业:
从客户角度,统计客户消费情况
使用trident,统计分析订单记录,求出客户每天、每小时的消费总额,消费笔数(要求使用HBase存储统计结果,能够通过drpc客户端查询)。
拓展学习:
JStorm
二、回顾
storm两条线
storm
Topology
Trident
Tuple 数据流格式 Tuple keyvalue对的集合
Storm流计算本质: 对Tuple进行各种转换操作
普通Storm,转换操作写在Bolt中,msgtimeout 30秒
Trident 抽象成各种operation
Tuple Tree:启用消息可靠性保障机制后才会产生。
Spark: RDD RDD弹性分布式数据集 集合
cloudera manager 如何安装
8 6 6 20G内存
8 4 4
旅游数据离线分析 3天
scala
spark 5天 项目3天
《OD学storm》20160828的更多相关文章
- 《OD学storm》20160827
http://www.cnblogs.com/lujinhong2/p/4686512.html http://blog.csdn.net/paul_wei2008/article/details/2 ...
- 《OD学hive》第四周0717
一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...
- 《OD学hadoop》20160903某旅游网项目实战
一.大数据的落地点 1.数据出售 数据商城:以卖数据为公司的核心业务 2. 数据分析 百度统计 友盟 GA IBM analysis 3.搜索引擎 4. 推荐系统 mahout 百分比 5.精准营销 ...
- 《OD学HBase》20160821
一.HBase性能调优 1. JVM内存调优 MemStore内存空间,设置合理大小 memstore.flush.size 刷写大小 134217728 = 128M memstore.mslab. ...
- 《OD学Oozie》20160807Oozie
一.引入 MapReduce Job Hive 脚本任务 同一个业务:先后.定时调度 工作流: 定义工作流程 activity jbpm oozie: 大数据工作流定义与调度框架 专门定义与调度Map ...
- 《OD学Flume》20160806Flume和Kafka
一.Flume http://flume.apache.org/FlumeUserGuide.html Flume是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集.聚集.移动信 ...
- 《OD学spark》20160924scala基础
拓展: Hadoop 3.0 NameNode HA NameNode是Active NameNode是Standby可以有多个 HBase Cluster 单节点故障? HBaster -> ...
- 《OD学HBase》20160820
一.案例 微博: 微博内容: 关注用户和粉丝用户: 添加或移除关注用户 查看关注用户的微博内容 微博数据存储: 响应时间 秒级 无延迟 (1)mysql分布式 (2)hbase数据库 使用HBase数 ...
- 《OD学HBase》20160814
一.HBase引入 http://hbase.apache.org/ 大数据的数据库 1. 概述 Hadoop生态系统中的一个分布式.可拓展.面向列.可伸缩,具有自动容错功能的数据库. NoSQL数据 ...
随机推荐
- Struts2 - 值栈(ValueStack)
1. 关于值栈: 1). helloWorld 时, ${productName} 读取 productName 值, 实际上该属性并不在 request 等域对象中, 而是从值栈中获取的. 2). ...
- bzoj 3727: Final Zadanie 思维题
题目: Description 吉丽YY了一道神题,题面是这样的: "一棵n个点的树,每条边长度为1,第i个结点居住着a[i]个人.假设在i结点举行会议,所有人都从原住址沿着最短路径来到i结 ...
- bzoj 4500: 矩阵 差分约束系统
题目: Description 有一个n*m的矩阵,初始每个格子的权值都为0,可以对矩阵执行两种操作: 选择一行, 该行每个格子的权值加1或减1. 选择一列, 该列每个格子的权值加1或减1. 现在有K ...
- 洛谷 1351 联合权值——树形dp
题目:https://www.luogu.org/problemnew/show/P1351 对拍了一下,才发现自己漏掉了那种拐弯的情况. #include<iostream> #incl ...
- CCS V5 使用教程二:创建工程和配置软件仿真
新建CCS项目 选择File/New/CCS Project: 新建项目对话框 1) Project name: 指项目名称,这里要注意的项目名称不区分大小写. 2) Ou ...
- JVM插庄之一:JVM字节码增强技术介绍及入门示例
字节码增强技术:AOP技术其实就是字节码增强技术,JVM提供的动态代理追根究底也是字节码增强技术. 目的:在Java字节码生成之后,对其进行修改,增强其功能,这种方式相当于对应用程序的二进制文件进行修 ...
- 人物-IT-张志东:张志东
ylbtech-人物-IT-张志东:张志东 张志东,广东东莞人,腾讯创办人之一,腾讯高级副总裁兼科技总裁,于1993年取得深圳大学理学学士学位,并于1996年取得华南理工大学计算机应用及系统架构硕士学 ...
- 《Kubernetes权威指南第2版》学习(三)RC学习
1 RC文件介绍: kind: ReplicationController,表示是一个RC: spec.selector: RC的Pod标签(Label)选择器,监控和管理拥有这些标签的Pod实例, ...
- ES6学习之Proxy
定义:“代理器”,用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程.可以对外界的访问进行过滤和改写. 语法: va ...
- 使用雅虎YUI Compressor压缩JS过程心得记录
对待发布的项目进行测试时,发现js下载量比较大,从jquery的min版想到了压缩项目中的js文件.很简单的google之(在此,强调一下google的重要性),搜到一个叫做YUI Compresso ...