跳转到主要内容
工程的博客

崭新的视觉表现,理解Apache火花流媒体的应用程序

分享这篇文章

早些时候,我们提出了新的可视化介绍了Apache火花1.4.0理解火花应用程序的行为。持续的主题,这个博客强调新的可视化介绍专为理解火花流媒体的应用程序。我们已经更新了火花的流选项卡界面显示如下:

  • 时间和统计的事件率、调度延迟和过去批次的处理时间。
  • 每一批的所有火花工作的细节。

此外,执行DAG可视化与流媒体信息对理解增强工作执行的流媒体业务。

让我们来看看这些详细的端到端示例分析流媒体应用程序。

时间表和直方图处理的趋势

调试火花流应用程序时,用户通常感兴趣的数据接收和每一批的处理时间。新的UI在流选项卡中很容易看到当前指标以及超过1000批次的趋势。在运行流媒体应用程序中,您将看到类似图1下面如果你访问流选项卡中火花UI(红色字母如(一)是我们的注释,不是UI的一部分):

流媒体用户界面图1图1:流选项卡中引发的UI

第一行(标记为(一))显示流媒体应用程序的当前状态——在本例中,应用程序已经运行了近40分钟秒批间隔。下面的时间表输入速度(标记为[B])表明,流媒体应用程序接收数据的速度大约49个事件/秒所有它的来源。在这个例子中,时间轴显示了轻微下降的平均利率在中间(标记为[C]),应用程序恢复到结束的时间表。如果你想要获得更多的细节,你可以点击旁边的下拉输入速度(靠近[B])来显示时间由每个源,如所示图2在下面。

火花流界面图2图2

图2显示应用程序有两个来源(SocketReceiver-0SocketReceiver-1),导致整体接收率的下降,因为它已经停止接收数据在短持续时间。

进一步在页面(标记为[D]图1),时间表处理时间表明,这些批次处理平均在20 ms。有较短的处理时间比较批间隔(在本例中1 s)意味着调度延迟(定义为一批等待先前批次的时间完成,并标记为[E]图1)主要是零,因为批处理和创建一样快。这种调度延迟的关键指标是流媒体应用程序是否稳定与否,和这个UI便于监控。

批处理细节

指的是图1再一次,你可能会好奇的关于为什么有些批次向正确的完成(注意需要更长的时间[F]图1)。你可以很容易地分析通过UI。首先,你可以点击时间轴的点图,有更高的批处理时间。这将带你进一步完成批次的列表在页面。

image3图3

它将显示所有单个批处理(用绿色突出显示的主要细节图3如上图所示)。如您所见,这个批处理时间超过其他批次。下一个明显的问题是引发就业造成这批处理时间越长。你可以调查这个点击批处理时间(第一列的蓝色链接),这将带你到相应的批给你们详细的信息输出操作及其引发的工作(图4)。

image4图4

图4上面显示有一个输出操作,生成3火花工作。你可以点击IDs继续挖掘工作阶段和任务进行进一步分析。

执行流抽样的熟练的技艺

一旦你开始分析任务和阶段生成的批处理作业,它是有用的执行图的深入了解。所示的以前的博文Spark 1.4.0增加了执行的可视化DAG(即有向无环图),显示了抽样的链依赖和抽样是如何处理一系列相关的阶段。如果这些抽样由DStreams在流媒体应用程序中,然后可视化显示额外的流媒体语义。让我们先从一个简单的流单词计数程序的计算在每一批。看这个例子NetworkWordCount。它使用DStream操作flatMap,地图reduceByKey计算字数。的执行DAG火花工作在任何批量的样子图5在下面。

image5图5

可视化的黑点代表产生的抽样DStream 16:06:50在批处理时间。蓝色阴影框指DStream操作被用来变换抽样,和粉色框指这些转换的阶段被处决。总体这说明以下:

  • 收到一个数据套接字文本流一批次16:06:50
  • 工作使用两个阶段计算单词统计的数据使用的转换flatMap,地图,reduceByKey

虽然这是一个简单的图,它可以更加复杂与输入流和先进DStream转换窗口操作和updateStateByKey操作。例如,如果我们计算数量的移动窗口3批次(也就是说,使用reduceByKeyAndWindow)使用数据从两个套接字文本流,一个批处理作业的执行DAG图6下图:

image6图6

图6显示大量的信息对火花工作重要的单词在数据从3批次:

  • 前三个阶段本质上数3批次的词在每个窗口。这些都是大概类似于简单的第一阶段NetworkWordCount以上,地图flatMap操作。但是请注意以下区别:
    1. 有两个输入抽样,分别来自两个套接字文本流。这两个抽样联盟艾德组合进一个抽样,然后进一步转化生成每批中间数。
    2. 两个阶段的中间数显示为灰色,因为年长的两批已经缓存在内存中,因此不需要重新计算。只有最新一批需要从头开始计算。
  • 右边的最后阶段使用reduceByKeyAndWindow将每批单词统计”窗口的“单词统计。

这些可视化使开发人员能够监测流媒体应用的现状和趋势,以及了解他们的关系与底层火花工作和执行计划。

未来的发展方向

一个显著改善预期引发1.5.0的更多信息在每批处理输入数据(JIRA,公关)。例如,如果您使用的是卡夫卡,批处理细节页面将显示主题,分区和补偿处理这批处理。这是一个预览:

image7图7

免费试着砖
看到所有工程的博客的帖子