一、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的更多相关文章

  1. 《OD学storm》20160827

    http://www.cnblogs.com/lujinhong2/p/4686512.html http://blog.csdn.net/paul_wei2008/article/details/2 ...

  2. 《OD学hive》第四周0717

    一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...

  3. 《OD学hadoop》20160903某旅游网项目实战

    一.大数据的落地点 1.数据出售 数据商城:以卖数据为公司的核心业务 2. 数据分析 百度统计 友盟 GA IBM analysis 3.搜索引擎 4. 推荐系统 mahout 百分比 5.精准营销 ...

  4. 《OD学HBase》20160821

    一.HBase性能调优 1. JVM内存调优 MemStore内存空间,设置合理大小 memstore.flush.size 刷写大小 134217728 = 128M memstore.mslab. ...

  5. 《OD学Oozie》20160807Oozie

    一.引入 MapReduce Job Hive 脚本任务 同一个业务:先后.定时调度 工作流: 定义工作流程 activity jbpm oozie: 大数据工作流定义与调度框架 专门定义与调度Map ...

  6. 《OD学Flume》20160806Flume和Kafka

    一.Flume http://flume.apache.org/FlumeUserGuide.html Flume是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集.聚集.移动信 ...

  7. 《OD学spark》20160924scala基础

    拓展: Hadoop 3.0 NameNode HA NameNode是Active NameNode是Standby可以有多个 HBase Cluster 单节点故障? HBaster -> ...

  8. 《OD学HBase》20160820

    一.案例 微博: 微博内容: 关注用户和粉丝用户: 添加或移除关注用户 查看关注用户的微博内容 微博数据存储: 响应时间 秒级 无延迟 (1)mysql分布式 (2)hbase数据库 使用HBase数 ...

  9. 《OD学HBase》20160814

    一.HBase引入 http://hbase.apache.org/ 大数据的数据库 1. 概述 Hadoop生态系统中的一个分布式.可拓展.面向列.可伸缩,具有自动容错功能的数据库. NoSQL数据 ...

随机推荐

  1. 201621123014《JAVA程序设计》第1周学习总结

    1. 本章学习总结 关键字:JAVA特点.JDK.JVM.JRE.class.编译工具.JDK是JAVA的开发工具包,拥有JAVA需要的环境和各类JAVA工具,是JAVA的核心:JVM是JAVA虚拟机 ...

  2. 《Effective C++》学习笔记(一)

    1.const成员函数不能更改成员变量 #include <bits/stdc++.h> using namespace std; class CtextBlock { public: s ...

  3. SQL的CASE表达式用法

    case 表达式从SQL-92标准开始引入,因此是不依赖于具体的数据库技术,可提高SQL代码的可移植性. case表达式注意事项: 1. 统一各个分支返回数据类型,并保证各个when字句的排他性,因为 ...

  4. printf 小代码 大问题

    技术 对于我来说 是我前进的动力 虽然有时候感觉会枯燥乏味 不过没关系 放松一下紧张的心态 做一些你能够是你进步的事情  这样 你才会觉得  每天都过得很充实  学海无涯  坚持追求你所想要实现的梦想 ...

  5. freeMarker(四)——模板开发指南之模板

    学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net 模板开发指南之模板 1. 总体结构 实际上用程序语言编写的程序就是模板 ...

  6. mysql编码

    Mysql中文乱码问题完美解决方案 修改查看MYSQL字符集(charset) MySQL 乱码之我见 10分钟学会理解和解决MySQL乱码问题 /etc/mysql/my.cnf /etc/init ...

  7. luogu1776宝物筛选

    多重背包问题 一开始我们的转移方程是 ;i<=n;i++) for(int j=m;j>=w[i];j--) ;k<=c[i];k++) )dp[j]=max(dp[j],dp[j- ...

  8. BestCoder Round #93 比赛记录

    机房又迎来了一次BC.大家都沸腾了... BC开场,大家全都瞬间开始 啪啦啪啦啪啦啪啦 都要赶紧水过第一题. 第一题明显直接贪心就好了,用map去重. 本人荣幸地第一个写完,提交 Wa. (崩溃的内心 ...

  9. P1364 医院设置

    题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口.圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为l.如上 ...

  10. Unity Webplayer installation error- Unity Webplayer update finished, but installed..

    https://forum.unity3d.com/threads/unity-webplayer-installation-error-unity-webplayer-update-finished ...