美文网首页独立开发者小记
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