美文网首页
spark stream和storm的对比

spark stream和storm的对比

作者: snail_knight | 来源:发表于2017-05-26 09:59 被阅读0次

    使用范围比较:吞吐量对比:Storm以数据记录为最小单位进行处理和容错。由于单挑记录处理的成本较高,spark streaming首先将数据切分成一定时间范围内Duration的数据集,然后积累一批(batch)Duration数据集后单独启动一个任务线程处理。这种方式大大提供了spark streamming流式计算处理的吞吐量。

    容错比较。由于storm用于传统关系型数据库类得的以数据记录为单位容错,所以一条条数据恢复显然很慢。而spark streamming借助于spark核心提供了从DAG重新调度任务和并行,能快速的完成数据从故障中的恢复工作。

    spark streamming 流式计算执行过程分析

    Receiver:spark streaming 内置的输入流接受器或者用户自定义的接收器,用于从数据源接受源源不断的数据流

    currentBuffer用于缓存输入流接收器接收的数据流。

    blockIntevalItimer:一个定时器,用于将CurrentBuffer中缓存的数据封装为Block后放入blocksForPublishing

    blocksForPushing:用于缓存将要使用的Block

    blockPushingThread:此线程每隔100毫秒从blocksForPushing中取出一个Block存入存储体系,并缓存到ReceivedBlockQueue。

    Block Batch :Block 批次,按照批次时间间隔,从ReceivedBlockQueue中获取一批block。

    JobGenerator:Job生成器,用于给每一批Block生成一个job

    ssc.sparkContext.makeRDD(1 to 50,50).map(x=>(x,1)).reduceByKey(_+_,20).collection这条语句通过运行重复的作业来确保所有的slave都已经注册 ,避免所有的receivers都在一个节点上

    相关文章

      网友评论

          本文标题:spark stream和storm的对比

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