zoukankan      html  css  js  c++  java
  • 《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天

  • 相关阅读:
    岭回归和LASSO
    涉及到的知识点有页连接符的使用、批量修改元器件属性等知识
    OrCAD中分立器件的Symbol绘制
    OrCAD来新建原理图工程、设置原理图页面、新建原理图库
    python控制TLP2041高压电源源码(modbus rtu,try捕获异常使用)
    pyqt5分离ui主线程到子线程
    modbus rtu协议
    pcb接地设计
    PSPICE参数扫描+光标跟踪曲线改变+窗口分多个坐标系
    ad 导入logo
  • 原文地址:https://www.cnblogs.com/yeahwell/p/5814764.html
Copyright © 2011-2022 走看看