Apache的火花消息的理解 [英] Apache spark message understanding

查看:222
本文介绍了Apache的火花消息的理解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请求帮助理解这个消息。

Request help to understand this message..

信息spark.MapOutputTrackerMaster:输出状态,为洗牌2尺寸是** 2202921 **字节

这是什么意思2202921这里?

what does 2202921 mean here ?

我的工作做了随机操作,而从previous阶段阅读洗牌文件时,它先给出消息一段时间后失败下面埃罗..

My job does a shuffle operation and while reading shuffle files from previous stage , it gives the message first and then after sometime it fails with below erro..

14/11/12 11点09分46秒WARN scheduler.TaskSetManager:失落的任务224.0舞台4.0(TID 13938,IP-XX-XXX-XXX-xx.ec2.internal):FetchFailed (BlockManagerId(11,IP-XX-XXX-XXX-xx.ec2.internal,48073,0),shuffleId = 2的azazaz = 7468,reduceId = 224)
14/11/12 11点09分46秒INFO scheduler.DAGScheduler:标记阶段4(合并AT<&控制台GT;:49)为失败,原因是从第3阶段抓取失败(图AT<&控制台GT;:42)
14/11/12 11点09分46秒INFO scheduler.DAGScheduler:第4阶段(合并AT<&控制台GT;:49)未能213.446小号
14/11/12 11点09分46秒INFO scheduler.DAGScheduler:重新提交第3阶段(图AT<&控制台GT;:42)和第4阶段(合并AT<&控制台GT; 49)因获取失败
14/11/12 11点09分46秒INFO scheduler.DAGScheduler:执行人丢失:11(2时代)
14/11/12 11点09分46秒INFO storage.BlockManagerMasterActor试图从BlockManagerMaster删除执行人11。
14/11/12 11点09分46秒INFO storage.BlockManagerMaster:在removeExecutor删除11成功
14/11/12 11点09分46秒INFO scheduler.Stage:第三阶段是现在执行人11不可用(12836分之11893,FALSE)
14/11/12 11点09分46秒INFO scheduler.DAGScheduler:重新提交失败的阶段
14/11/12 11点09分46秒INFO scheduler.DAGScheduler:提交第3阶段(MappedRDD [13]在地图AT<&控制台GT;:42),它没有父母失踪
14/11/12 11点09分46秒INFO storage.MemoryStore:ensureFreeSpace(25472)调用curMem = 474762,MAXMEM = 11113699737
14/11/12 11点09分46秒INFO storage.MemoryStore:阻止broadcast_6作为值存储在内存中(估计大小24.9 KB,自由10.3 GB)
14/11/12 11点09分46秒INFO storage.MemoryStore:ensureFreeSpace(5160)调用curMem = 500234,MAXMEM = 11113699737
14/11/12 11点09分46秒INFO storage.MemoryStore:阻止broadcast_6_piece0存储在内存中(估计大小5.0 KB,免费10.3 GB)字节
14/11/12 11点09分46秒INFO storage.BlockManagerInfo:在内存中添加broadcast_6_piece0对IP-xx.ec2.internal:35571(尺寸:5.0 KB,自由:10.4 GB)
14/11/12 11点09分46秒INFO storage.BlockManagerMaster:块broadcast_6_piece0的更新信息
14/11/12 11点09分46秒INFO scheduler.DAGScheduler:从第3阶段提交943缺少的任务(MappedRDD [13]在地图AT<&控制台GT;:42)
14/11/12 11点09分46秒INFO cluster.YarnClientClusterScheduler:添加任务设置3.1 943任务

我的code是这样的,

My code looks like this,

(RDD1集++ RDD2).MAP {T => ((t.id),T)} .groupByKey(1280){.MAP
      情况下((ID),序列)= GT;
        VAL newrecord = {sequence.maxBy
          案件事实(ID,钥匙,类型,一天,组,c_key,s_key,plan_id的数据类型,大小,
            is_mom,customer_shipment_id,customer_shipment_item_id,ASIN,company_key,product_line_key,dw_last_updated,措施)=> dw_last_updated.toLong
        }
        ((PARTITION_KEY +=+ newrecord.day.toString +/部件),(newrecord))
    } .coalesce(2048,真).saveAsTextFile(S3:// MyFolder中/ PT / test20nodes /)

我得出1280,因为我有每个都具有32个内核20个节点。我得出它像2 * 32 * 20。

I derived 1280 as I have 20 nodes each having 32 cores. I derived it like 2*32*20.

推荐答案

对于一个洗牌阶段,它会创建一些 ShuffleMapTask ■哪些输出中间结果到磁盘。位置信息将被存储在 MapStatus ES和发送到 MapOutputTrackerMaster (司机)。

For a Shuffle stage, it will create some ShuffleMapTasks which output the intermediate results to the disk. The location information will be stored in MapStatuses and sent to the MapOutputTrackerMaster(the driver).

然后,当下一阶段开始运行,它需要这些位置状态。因此,遗嘱执行人会问 MapOutputTrackerMaster 来获取它们。 MapOutputTrackerMaster 将这些序列化状态字节,并将它们发送到执行者。下面是字节这些状态的大小。

Then when the next stage starts to run, it needs these location statuses. So executors will ask MapOutputTrackerMaster to fetch them. MapOutputTrackerMaster will serialize these status to bytes and send them to executors. Here is the size of these status in bytes.

这些状态将通过阿卡发送。和阿卡有一个限制最大邮件大小。您可以通过设置 spark.akka.frameSize

These status will be sent via Akka. And Akka has a limitation to the max message size. You can set it via spark.akka.frameSize:

最大邮件大小,允许在控制面板通信(串行任务和任务结果),以MB为单位。增加此,如果你的工作需要发回大量结果司机(例如,使用收集()在一个大的数据集)。

Maximum message size to allow in "control plane" communication (for serialized tasks and task results), in MB. Increase this if your tasks need to send back large results to the driver (e.g. using collect() on a large dataset).

如果大小比 spark.akka.frameSize 时,阿卡将拒绝提供信息和你的工作就会失败。因此,它可以帮助你调整 spark.akka.frameSize 来一个最好的一个。

If the size is greater than spark.akka.frameSize, Akka will refuse to deliver the message and your job will fail. Therefore it can help you adjust spark.akka.frameSize to a best one.

这篇关于Apache的火花消息的理解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆