SparkStreaming项目实战系列——1.实时流概述

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yisuoyanyulou1314/article/details/78934902

SparkStreaming项目实战系列——实时流概述

Spark官网关于Spark2.2.0需要以下条件:
maven3.3.9+
Java8+
Spark2.2.0

1.初识实时流处理

1.1业务现状分析

  • 需求:统计主站每个(制定)课程访问的客户端、地域信息分布
    • 地域:ip转换 SparkSQL项目实战
    • 客户端:useragent获取 Hadoop基础课程
    • 如上两个操作:采用离线操作(Map/Reduce操作)的方式进行统计
  • 实现步骤
    • 课程编号。ip信息,useragent
    • 进行相应的统计分析操作:MapReduce、Spark
  • 项目架构
    • 日志收集:Flume
    • 离线分析:MapReduce/Spark
    • 图形化展示结果
  • 问题
    • 小时级别
    • 10小时-秒级别,由于MR都是进程级别的,要产生和销毁,需要占用时间空间,不能实时处理
  • 如何解决?即是实时流处理引入的目标。

1.2 实时流处理产生背景

  • 时效性高
  • 数据量大(必须以实时的方式处理原始的数据)

1.3 实时流处理概述

  • 实时计算(响应时间比较短,离线批处理没有时间的限制)
  • 流式计算(在不断产生的数据流上进行的计算)
  • 实时流式计算

1.4 离线计算与实时计算对比

  • 数据来源
    • 离线:HDFS上的历史数据,数据量比较大
    • 实时:消息队列(kafka),实时新增/修改记录过来的某一笔数据
  • 处理过程
    • 离线:MapReduce:map+reduce
    • 实时:Spark(DStream/SS)
  • 处理速度
    • 离线:慢
    • 实时:快速
  • 进程
    • 离线:启动+销毁
    • 实时:7*24

1.5实时流处理框架对比

  • Apache Storm
  • Apache Spark Streaming(并不会像Storm每一次处理一条数据更新,而是按照时间间隔拆分为小的批处理,严格意义上是一个微小时间间隔的批处理)
  • IBM Stream
  • Yahoo S4
  • LinkedIn Kafka (一个分布式的流平台)
  • flink

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

 Web:
  app:
  ---------------------
  WebServer:
  /var/log/access.log
  ---------------------
  Flume:日志收集
  Kafka:加一层消息队列应付数据高峰期
  Spark/Storm: 
  RDBMS/NoSQL:
  可视化显示:

1.7实时流处理适用场景在企业的应用

  • 电信行业
  • 电商行业
展开阅读全文

没有更多推荐了,返回首页