我开始做amp-camp 5 exercises。我尝试了以下两种情况:
情景#1
val pagecounts = sc.textFile("data/pagecounts")
pagecounts.checkpoint
pagecounts.count
情景#2
val pagecounts = sc.textFile("data/pagecounts")
pagecounts.count
Spark shell应用程序UI中显示的总时间对于两者都不同
场景。
场景#1花了0.5秒,而场景#2只花了0.2秒
s
在场景#1中,checkpoint命令什么都不做,它既不是a,也不是 转型也不是行动。一旦RDD实现,它就说了 执行操作后,继续保存到磁盘。我在这里错过了什么吗?
问题:
我知道场景#1需要更多时间,因为RDD是
检查指向(写入磁盘)。有没有办法让我知道所花的时间
检查点,从总时间?
Spark shell Application UI显示以下内容 - Scheduler delay,Task
反序列化时间,GC时间,结果序列化时间,获得结果
时间。但是,并没有显示检查点的细分。
有没有办法访问上述指标,例如调度程序延迟,GC时间 并以编程方式保存它们?我想记录上面的一些指标 在RDD上调用的每个操作。
如何以编程方式访问以下信息:
如果您需要更多信息,请与我们联系。
答案 0 :(得分:2)
Spark REST API提供了几乎所有你要求的东西。
一些例子;
目前内存中RDD的百分比是多少?
<p(.*?)>(.+?)<\/p\>
将回复:
GET /api/v1/applications/[app-id]/storage/rdd/0
计算RDD所需的总时间?
计算RDD也称为作业,阶段或尝试。
{
"id" : 0,
"name" : "ParallelCollectionRDD",
"numPartitions" : 2,
"numCachedPartitions" : 2,
"storageLevel" : "Memory Deserialized 1x Replicated",
"memoryUsed" : 28000032,
"diskUsed" : 0,
"dataDistribution" : [ {
"address" : "localhost:54984",
"memoryUsed" : 28000032,
"memoryRemaining" : 527755733,
"diskUsed" : 0
} ],
"partitions" : [ {
"blockName" : "rdd_0_0",
"storageLevel" : "Memory Deserialized 1x Replicated",
"memoryUsed" : 14000016,
"diskUsed" : 0,
"executors" : [ "localhost:54984" ]
}, {
"blockName" : "rdd_0_1",
"storageLevel" : "Memory Deserialized 1x Replicated",
"memoryUsed" : 14000016,
"diskUsed" : 0,
"executors" : [ "localhost:54984" ]
} ]
}
将回复:
GET /applications/[app-id]/stages/[stage-id]/[stage-attempt-id]/taskSummary
你的问题过于宽泛,因此我不会回应所有人。我相信所有必须反映的内容都会反映在REST API中。