【发布时间】:2015-07-11 18:32:56
【问题描述】:
我有一个 Apache Spark 批处理作业在 AWS EMR 上持续运行。它从 AWS S3 中提取数据,使用该数据运行几个作业,然后将数据存储在 RDS 实例中。
但是,工作之间似乎有很长一段时间不活动。
这是 CPU 使用情况:
这是网络:
注意每一列之间的差距,它几乎和活动列一样大!
起初我认为这两列被移动了(当它从 S3 拉出时,它并没有使用很多 CPU,反之亦然),但后来我注意到这两个图实际上是相互跟随的。这是有道理的,因为 RDD 是惰性的,因此会在作业运行时拉出 。
这引出了我的问题,Spark 在此期间在做什么?在那段时间里,所有的神经节图似乎都归零了。就好像集群决定在每个工作之前休息一下。
谢谢。
编辑:查看日志,这似乎需要一个小时......什么都不做?
15/04/27 01:13:13 INFO storage.DiskBlockManager: Created local directory at /mnt1/var/lib/hadoop/tmp/nm-local-dir/usercache/hadoop/appcache/application_1429892010439_0020/spark-c570e510-934c-4510-a1e5-aa85d407b748
15/04/27 01:13:13 INFO storage.MemoryStore: MemoryStore started with capacity 4.9 GB
15/04/27 01:13:13 INFO netty.NettyBlockTransferService: Server created on 37151
15/04/27 01:13:13 INFO storage.BlockManagerMaster: Trying to register BlockManager
15/04/27 01:13:13 INFO storage.BlockManagerMaster: Registered BlockManager
15/04/27 01:13:13 INFO util.AkkaUtils: Connecting to HeartbeatReceiver: akka.tcp://sparkDriver@ip-10-0-3-12.ec2.internal:41461/user/HeartbeatReceiver
15/04/27 02:30:45 INFO executor.CoarseGrainedExecutorBackend: Got assigned task 0
15/04/27 02:30:45 INFO executor.CoarseGrainedExecutorBackend: Got assigned task 7
15/04/27 02:30:45 INFO executor.Executor: Running task 77251.0 in stage 0.0 (TID 0)
15/04/27 02:30:45 INFO executor.Executor: Running task 77258.0 in stage 0.0 (TID 7)
15/04/27 02:30:45 INFO executor.CoarseGrainedExecutorBackend: Got assigned task 8
15/04/27 02:30:45 INFO executor.Executor: Running task 0.0 in stage 0.0 (TID 8)
15/04/27 02:30:45 INFO executor.CoarseGrainedExecutorBackend: Got assigned task 15
15/04/27 02:30:45 INFO executor.Executor: Running task 7.0 in stage 0.0 (TID 15)
15/04/27 02:30:45 INFO broadcast.TorrentBroadcast: Started reading broadcast variable
通知01:13:13,它会一直挂在那里直到20:30:45。
【问题讨论】:
标签: hadoop amazon-web-services amazon-s3 apache-spark emr