美文网首页独立开发者小记
Spark Streaming实时流处理-1.初识实时流处理

Spark Streaming实时流处理-1.初识实时流处理

作者: Peacenloves | 来源:发表于2018-09-09 20:40 被阅读0次

    目录

    1. 业务现状分析
    2. 实时流处理产生背景
    3. 实时流处理概述
    4. 离线计算与实时计算对比
    5. 实时流处理框架对比
    6. 实时流处理架构与技术选型
    7. 实时流处理在企业中的应用

    1. 业务现状分析

    需求:统计主站每个(指定)课程访问的客户端、地域信息分布。

    • 地域:IP转换
    • 客户端:useragent获取

    实现步骤:

    • 拿到课程编号,IP信息,UserAgent
    • 进行相应的统计分析操作:MapReduce/Spark

    项目架构:基于Hadoop的实现方案

    • 日志收集:Flume
    • 离线分析:MapReduce/Spark
    • 统计结果图形化展示

    问题:

    • 小时级别统计没问题
    • 10分钟,也可能处理过来
    • 如果是5分钟呢?1分钟呢?

    如何解决呢?使用实时流处理。

    2. 实时流处理产生背景

    • 时效性高:业务对时效性要求比较高
    • 数据量大:业务数据量比较大,但是数据有效密度比较低

    3. 实时流处理概述

    • 实时计算:响应时间比较短。
    • 流式计算:数据不断的进入,不停顿。
    • 实时流式计算:在不断产生的数据流上,进行实时计算。

    4. 离线计算与实时计算对比

    1. 数据来源
      • 离线:HDFS历史数据,数据量比较大。
      • 实时:消息队列(Kafka),实时新增/修改记录实时过来的某一笔数据。
    2. 处理过程
      • 离线:Map + Reduce
      • 实时:Spark(DStream/SS)
    3. 处理速度
      • 离线:速度慢
      • 实时:快速拿到结果
    4. 进程角度
      • 离线:启动 + 销毁进程
      • 实时: 7 * 24小时进行统计,线程不停止

    5. 实时流处理框架对比

    • Apache Storm:Apache顶级项目,完全的实时流处理框架。
    • Apache Spark Streaming:基于Spark API进行扩展,并不是完全实时的,是按照时间间隔拆成小的批处理。严格并不是实时流处理框架,而是小的批处理框架。
    • IBM Stream:用的比较少。
    • Yahoo! S4
    • LinkedIn Kafka:不止消息队列,也包括了实时流处理。
    • Flink:既可以做流式也可以做批处理。

    6. 实时流处理架构与技术选型

    spark-streaming1.png
    • Flume实时收集WebServer产生日志
    • 添加Kafka消息队列,进行流量消峰,防止Spark/Storm崩掉
    • 处理完数据,持久化到RDBMS/NoSQL
    • 最后进行可视化展示

    7. 实时流处理在企业中的应用

    • 电信行业:推荐流量包一类
    • 电商行业:大屏啊,推荐算法

    相关文章

      网友评论

        本文标题:Spark Streaming实时流处理-1.初识实时流处理

        本文链接:https://www.haomeiwen.com/subject/dmudgftx.html