sparkStreaming与storm的区别:

 Sparkstreaming处理数据的过程:

  1. sparkstreaming:数据是一段时间处理的,是一个微批处理,这个时间是由自己人为设定的。sparkstreaming的吞吐量高。
  2. Storm:是纯实时处理数据的,
  3. Storm擅长处理简单的汇总型业务,sparkstreaming擅长处理复杂的计算型的数据。
  4. Sparkstreaming可以通过控制微批处理的时间,得到一小批数据,可以使用spark core,sparkSQL,擅长处理的是复杂的业务。
  5. Storm 的事务相对比较完善,sparkstreaming也比较完善
  6. Storm支持动态资源调度,spark1.2之后也支持动态调度————————————————————————————————————————————————————

Sparkstreaming是流式处理框架,7*24小时不间断

Sparkstreaming启动之后,首先会启动一个job,来接收数据,假设将5S接收的数据做一次处理,这里的5S就是我们可以容忍接受的数据的延迟度,这里的5S也叫作batchInterval。假设batchinterval=5S,图中,每个5S会将接收来的数据封装到一个batch中,这个batch又被封装到一个RDD中,这个RDD又被封装到一个DStream中。【sparkstreaming底层操作就是dstream,dstream底层就是RDD】。

Dstream有自己的transformation 类算子,也是懒执行,需要DStream的outputoperator类算子触发执行,下一步,每批次生成一个DStream之后,spark会启动一个job处理数据。

假设batchinterval=5S,每5S生成一批次数据,假设集群处理完这一批数据需要3S,0-5S一直接受数据,5-8一边接受数据,一边处理数据,8-10S只是接受数据,。。。会造成集群资源不能充分利用。

假设batchinterval=5s,集群处理完一批数据的时间是8S,0-5S接受数据,5-10S一边接收数据,一边处理数据,10-13S一边接受数据一边处理数据,。。。如果接收来的数据是存放在内存中,就会有OOM内存溢出的风险,如果接收来的数据存放在内存中或者磁盘中,会有数据溢写磁盘,处理数据时加大延迟。

————————————————————————————————————————————————————————

Sparkstreaming处理数据:

  1. 需要一个task一直接受数据
  2. 将batchinterval时间段内的数据封装到一个batch中,batch又被封装到RDD中,RDD又被封装到DStream中
  3. DStream有自己的transformations类算子,懒执行,需要OutputOperator类算子触发执行
  4. 如果batchinterval时间大于集群处理一批次数据的时间,集群会有空闲,集群资源不能充分利用
  5. 如果batchinterval时间小于集群处理一批次数据的时间,会有任务堆积
  6. Sparkstreaming读取socket端数据

 

sparking和sparkling sparking和sparkling区别_spark

 

SparkStreaming
        1).SparkStreaming是流式处理框架,7*24小时不间断运行,微批处理。
        2).与Storm的区别:
            i).Storm是纯实时处理数据,SparkStreaming是微批处理数据
            ii).Storm擅长处理汇总型业务,SparkStreaming擅长处理复杂的业务,可以使用SpakrCore,SparkSQL
            iii).Storm可以动态调度资源,SparkStreaming1.2之后可以
            v).Storm事务相对SparkStreaming比较完善
        3).接受处理数据过程:
            要使用一个task接受数据,SparkStreaming将一段时间内的接受来的数据当做一批次处理,这个一段时间就是BatchInterval,
            将接受数据每隔BatchInterval封装到一个batch中,这个batch又被封装到一个RDD中,这个RDD又被封装到一个DStream中。
            每隔batchInterval,就会产生一个DStream,后面要有task处理这个DStream。
            假设产生一批次的时间是5s,集群处理这批次数据的时间是3s,集群休息了2s.
            假设产生一批次的时间是5s,集群处理这批次数据的时间是8s,集群中就会有任务堆积。
            参照WEBUI看有没有任务堆积。