Spark Streaming(二)

缓存与持久化机制+checkpoint机制

  • Spark Streaming数据流中的数据持久化到内存中

    • 对DStream调用persist()方法,就可以让Spark Streaming自动将该数据流中的所有产生的RDD都持久化到内存中。
    • 如果要对一个Dstream多次执行操作,那么对DStream持久化是非常有用的。因为多次操作可以共享使用内存中的一份缓存数据。
  • 对于基于窗口的操作,比如reduceByWindow、reduceByKeyAndWindow,以及基于状态的操作,比如updateStateByKey,默认就隐式开启了持久化机制。即Spark Streaming默认就会将基于窗口创建的DStrean中的数据缓存到内存中,不需要我们手动调用persist()方法。

  • 对于通过网络接收数据的输入流,比如socket、Kafka等,默认的持久化级别,是将数据复制一份,以便容错。类似于MEMORY_ONLY_SER_2.

  • 与RDD不同的是,DStream中默认的持久化级别,统一都是要序列化的。

Spark Streaming(一)

Spark Streaming

  • SparkStreaming是Spark CoreAPI的一种扩展,它可以用于进行大规模、高吞吐量、容错的实时数据流的处理。

  • 支持从很多数据源中读取数据,比如Kafka、Flume、Twitter、ZeroMQ、Kinesis或者TCP Socket。

  • 可以使用类似高阶函数的复杂算法来进行数据处理,比如map、reduce、join、window。处理后的数据可以被保存到文件系统、数据库、Dashboard等存储中。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×