1. 基本数据源
Spark Streaming原生支持一些不同的数据源。一些“核心”数据源已经被打包到Spark Streaming 的 Maven 工件中,而其他的一些则可以通过 spark-streaming-kafka 等附加工件获取。每个接收器都以 Spark 执行器程序中一个长期运行的任务的形式运行,因此会占据分配给应用的 CPU 核心。此外,我们还需要有可用的 CPU 核心来处理数据。这意味着如果要运行多个接收器,就必须至少有和接收器数目相同的核心数,还要加上用来完成计算所需要的核心数。例如,如果我们想要在流计算应用中运行 10 个接收器,那么至少需要为应用分配 11 个 CPU 核心。所以如果在本地模式运行,不要使用local或者local[1]。
2. 文件数据源
Socket数据流前面的例子已经看到过。
文件数据流:能够读取所有HDFS API兼容的文件系统文件,通过fileStream方法进行读取。
streamingContext.fileStream [KeyClass, ValueClass, InputFormatClass](dataDirectory)
Spark Streaming 将会监控 dataDirectory 目录并不断处理移动进来的文件,记住目前不支持嵌套目录。
- 文件需要有相同的数据格式
- 文件进入 dataDirectory的方式需要通过移动或者重命名来实现。
- 一旦文件移动进目录,则不能再修改,即便修改了也不会读取新数据。
如果文件比较简单,则可以使用 streami
本文详细介绍了Spark Streaming的数据源,包括基本数据源、文件数据源、自定义数据源以及如何通过RDD队列创建DStream。重点讨论了自定义数据源的实现,通过继承Receiver并实现特定方法来满足特定数据采集需求。文中还提供了自定义数据源的代码示例。
订阅专栏 解锁全文
1096

被折叠的 条评论
为什么被折叠?



