Skip to content
Snippets Groups Projects
Commit c6be4ffb authored by Matei Zaharia's avatar Matei Zaharia
Browse files

Fixes to CoarseMesosScheduler

parent 3a58efa5
No related branches found
No related tags found
No related merge requests found
...@@ -64,7 +64,7 @@ class CoarseMesosScheduler( ...@@ -64,7 +64,7 @@ class CoarseMesosScheduler(
def receive = { def receive = {
case RegisterSlave(slaveId, host) => case RegisterSlave(slaveId, host) =>
slaveActor(slaveId) = sender slaveActor(slaveId) = sender
logInfo("Slave actor: " + sender) logInfo("Registered slave: " + sender + " with ID " + slaveId)
slaveHost(slaveId) = host slaveHost(slaveId) = host
freeCores(slaveId) = coresPerSlave freeCores(slaveId) = coresPerSlave
makeFakeOffers() makeFakeOffers()
...@@ -96,7 +96,7 @@ class CoarseMesosScheduler( ...@@ -96,7 +96,7 @@ class CoarseMesosScheduler(
} }
} }
val masterActor: ActorRef = actorSystem.actorOf(Props[MasterActor], name = actorName) val masterActor: ActorRef = actorSystem.actorOf(Props(new MasterActor), name = actorName)
val taskIdsOnSlave = new HashMap[String, HashSet[String]] val taskIdsOnSlave = new HashMap[String, HashSet[String]]
...@@ -284,24 +284,28 @@ class WorkerTask(slaveId: String, host: String) extends Task[Unit](-1) { ...@@ -284,24 +284,28 @@ class WorkerTask(slaveId: String, host: String) extends Task[Unit](-1) {
generation = 0 generation = 0
def run(id: Int): Unit = { def run(id: Int): Unit = {
val actorSystem = SparkEnv.get.actorSystem val env = SparkEnv.get
val actor = actorSystem.actorOf(Props(new WorkerActor(slaveId, host)), name = "WorkerActor") val classLoader = currentThread.getContextClassLoader
val actor = env.actorSystem.actorOf(
Props(new WorkerActor(slaveId, host, env, classLoader)),
name = "WorkerActor")
// Wait forever so that our Mesos task doesn't end
while (true) { while (true) {
Thread.sleep(10000) Thread.sleep(10000)
} }
} }
} }
class WorkerActor(slaveId: String, host: String) extends Actor with Logging { class WorkerActor(slaveId: String, host: String, env: SparkEnv, classLoader: ClassLoader)
val env = SparkEnv.get extends Actor with Logging {
val classLoader = currentThread.getContextClassLoader
val threadPool = new ThreadPoolExecutor( val threadPool = new ThreadPoolExecutor(
1, 128, 600, TimeUnit.SECONDS, new SynchronousQueue[Runnable]) 1, 128, 600, TimeUnit.SECONDS, new SynchronousQueue[Runnable])
val masterIp: String = System.getProperty("spark.master.host", "localhost") val masterIp: String = System.getProperty("spark.master.host", "localhost")
val masterPort: Int = System.getProperty("spark.master.port", "7077").toInt val masterPort: Int = System.getProperty("spark.master.port", "7077").toInt
val masterActor = env.actorSystem.actorFor( val masterActor = env.actorSystem.actorFor(
"akka://spark@%s:%s/%s".format(masterIp, masterPort, "CoarseMesosScheduler")) "akka://spark@%s:%s/user/%s".format(masterIp, masterPort, "CoarseMesosScheduler"))
class TaskRunner(desc: MTaskInfo) class TaskRunner(desc: MTaskInfo)
extends Runnable { extends Runnable {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment