面试题:为什么SparkStreaming中的local[2]括号中的数量必须是>=2?

175 阅读1分钟

下面通过画图详细说明

步骤解释说明

  • 首先会在Hadoop01机器开启一个9999的端口号像SparkStreaming应用程序发送数据
  • SparkStreaming接收到数据并会启动一个进程
  • 该进程包含两个线程:1、receiver 用于接收数据 2、compute 用于计算数据
  • receiver线程会将数据按照buffer的形式先形成block块,然后生成一个一个rdd
  • compute线程会计算每个rdd

如果local中的数量为1,会如何呢?

如果local中的数量为1,那么SparkStreaming只会启动一个receiver线程,不会启动compute计算线程,所以绝对local中的数量绝对不能为1