MAPREDUCE服务 MRS-Streaming任务打印两次相同DAG日志:回答

时间:2024-08-01 19:24:45

回答

该应用程序中使用了DStream中的print算子来显示结果,该算子会调用RDD中的take算子来实现底层的计算。

Take算子会以Partition为单位多次触发计算。

在该问题中,由于Shuffle操作,导致take算子默认有两个Partition,Spark首先计算第一个Partition,但由于没有数据输入,导致获取结果不足10个,从而触发第二次计算,因此会出现RDD的DAG结构打印两次的现象。

在代码中将print算子修改为foreach(collect),该问题则不会出现。

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2049.html