数据岗位面试题更新 2026-08-05

在 Spark Streaming 中,通常可以接入哪些类型的数据源?

数据技术原理Spark Streaming

考察说明

考察对 Spark Streaming 输入源种类的熟悉程度。

回答思路

  1. 【回答框架 1】Spark Streaming 常见数据源分为基础数据源和高级数据源两类。基础数据源包括文件系统(如本地文件系统、HDFS)、Socket 连接以及 Akka Actor;高级数据源包括 Kafka、Flume、Kinesis、Twitter 等,其中 Kafka 是最常用的。
  2. 【回答框架 2】对于基础数据源,通过 StreamingContext 的 socketTextStream、textFileStream 等方法创建输入流;对于高级数据源,通常需要引入额外的依赖并使用专门的接收器(Receiver)或直接使用无接收器方式(如 Kafka 的 direct 模式)来消费数据。
  3. 【回答框架 3】常见的数据源还包括自定义 Receiver,以支持特定数据源;此外 RDD 队列可用于测试。
  4. 【回答框架 4】选择数据源时需考虑数据吞吐量、容错性、精确一次语义支持等,Kafka 因其高吞吐和分区特性成为生产环境首选。
  5. 【关键点 1】基础数据源包括文件流、Socket 流和 RDD 队列。
  6. 【关键点 2】高级数据源包括 Kafka、Flume、Kinesis 等。
  7. 【关键点 3】Kafka 是最常用且推荐的生产级数据源。
  8. 【关键点 4】自定义 Receiver 可扩展任意数据源。
  9. 【易错点 1】不要混淆 Receiver 方式与 direct 方式的容错和一致性语义。
  10. 【易错点 2】文件流需注意文件命名规则,避免重复处理。
  11. 【易错点 3】高级数据源依赖版本匹配,需谨慎集成。