运行一个Spark Streaming应用程序,有下面一些步骤
TwitterUtils
,那么就需要将spark-streaming-twitter_2.10
以及它的所有依赖打包到应用程序jar中。配置应用程序driver的自动重启-为了自动从driver故障中恢复,运行流应用程序的部署设施必须能监控driver进程,如果失败了能够重启它。不同的集群管理器,有不同的工具得到该功能
Mesos: Mesos可以用Marathon提供该功能
spark.streaming.receiver.writeAheadLogs.enable
为true来开启。然而,这些较强的语义可能以receiver的接收吞吐量为代价。这可以通过并行运行多个receiver增加吞吐量来解决。另外,当预写日志开启时,Spark中的复制数据的功能推荐不用,因为该日志已经存储在了一个副本在存储系统中。可以通过设置输入DStream的存储级别为StorageLevel.MEMORY_AND_DISK_SER
获得该功能。如果运行的Spark Streaming应用程序需要升级,有两种可能的方法
StreamingContext.stop(...)
或JavaStreamingContext.stop(...)
)现有的应用程序。在关闭之前,要保证已经接收的数据完全处理完。然后,就可以启动升级的应用程序,升级的应用程序会接着旧应用程序的点开始处理。这种方法仅支持具有源端缓存功能的输入源(如flume,kafka),这是因为当旧的应用程序已经关闭,升级的应用程序还没有启动的时候,数据需要被缓存。