老卫带你学--spark修炼之路(1.spark框架介绍)

spark框架介绍

spark与hadoop是大数据中开发不可缺少的一部分。spark也是由很多的组件构成。
我们可以将数据处理分为批处理(hadoop)与流处理(spark)
批处理就像我们的直电梯,送完一批再送第二批;流处理就像我们的电梯,一直在运送。

storm流式处理框架

storm是个实时的、分布式、高容错的计算框架

  • Storm进程常驻内存
  • Storm数据不经过磁盘,在内存中处理

storm的拓扑结构是spout+bolt,整体是有向无环图(DAG)的模型。
各组件如下
架构(所有的架构都是一个主节点+从节点)

  • Nimbus(主节点 1.资源调度 2.任务分配 3.上传jar包)
  • Supervisor(从节点 指派任务,开关worker)
  • Worker(进程 实际的计算)

编程模型

  • DAG (Topology)
  • Spout (负责 推送数据)
  • Bolt (负责 接受+处理数据)

数据传输

  • ZMQ(twitter早期产品)
  • ZeroMQ 开源的消息传递框架,并不是一个MessageQueue
  • Netty
  • Netty是基于NIO的网络框架,更加高效。(之所以Storm 0.9版本之后使用Netty,是因为ZMQ的license和Storm的license不兼容。)

spark具有高可靠性与可维护性

高可靠性

  • 异常处理 (比如节点损坏)
  • 消息可靠性保障机制(ACK) (类似网络协议中的三次握手,四次挥手)

可维护性

  • StormUI 图形化监控接口(可以展示当前的集群状态 包括cluster summary集群总览,topology summary提交作业,supervisor summary从节点)

Storm – 流式处理

client客户端:负责收集日志等数据
MQ消息队列:负责将数据转换为一条一条的消息
spout推送源:负责将消息推送至bolt
bolt处理:负责处理数据
storage:负责将处理好的数据存储起来,可以是Hbase等数据库

  • 流式处理(异步 与 同步)
    异步:客户端提交数据进行结算,并不会等待数据计算结果
    同步:每处理完一条数据,需要向客户端返回,然后再处理第二条

  • 逐条处理
    例:ETL(数据清洗)extracted transform load

  • 统计分析
    例:计算PV、UV、访问热点 以及 某些数据的聚合、加和、平均等
    客户端提交数据之后,计算完成结果存储到Redis、HBase、MySQL或者其他MQ当中,
    客户端并不关心最终结果是多少。

在这里插入图片描述

spark通过drpc(disriputed remote procedure call分布式远程处理请求)进行实时请求应答
在这里插入图片描述
最后再来看一下spark与hadoop的区别:

  • Storm:进程、线程常驻内存运行,数据不进入磁盘,数据通过网络传递。
  • MapReduce:为TB、PB级别数据设计的批处理计算框架。
    在这里插入图片描述
    还有storm与Spark Streaming的区别:
  • Storm:纯流式处理
    专门为流式处理设计
    数据传输模式更为简单,很多地方也更为高效
    并不是不能做批处理,它也可以来做微批处理,来提高吞吐
  • Spark Streaming:微批处理
    将RDD做的很小来用小的批处理来接近流式处理
    基于内存和DAG可以把处理任务做的很快
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值