Ich versuche, einen einfachen Prozess mit Spark Streaming einzurichten, Apache Bahir verwenden, um eine Verbindung zu Akka herzustellen. Ich habe versucht, their example zusammen mit dieser older one zu folgen. Ich habe eine einfache Spediteur SchauspielerApache Bahir, sende Zeug an ActorReceiver
class ForwarderActor extends ActorReceiver {
def receive = {
case data: MyData => store(data)
}
}
und erstelle ich einen Stream mit
val stream = AkkaUtils.createStream[RSVP](ssc, Props[ForwarderActor], actorName)
die Konfiguration sieht wie folgt aus:
akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = "localhost"
port = 7777
}
}
}
und mein Problem ist: Wie verschicke ich Nachrichten an der Forwarder Schauspieler? Vielleicht verstehe ich nicht, wie Akka Remote in diesem Fall verwendet wird. Wenn die App gestartet wird, sehe ich ein Protokoll
[akka.remote.Remoting] Remoting started; listening on addresses :[akka.tcp://[email protected]:7777]
und später sehe ich
[akka.remote.Remoting] Remoting now listens on addresses: [akka.tcp://[email protected]:52369]
, die auf die Beschreibung in der ScalaDoc zu erinnern scheint:
/**
* A default ActorSystem creator. It will use a unique system name
* (streaming-actor-system-<spark-task-attempt-id>) to start an ActorSystem that supports remote
* communication.
*/
Alles in allem I Ich bin mir nicht sicher, wie ich dem Forwarder-Schauspieler Nachrichten schicken soll. Danke für jede Hilfe!
@SaSarvesh Kumar Singh Ich bin froh, dass ich das gefunden habe. Ich habe versucht, das gleiche Problem zu beheben. Hier habe ich deinen Code ausprobiert. Wenn Sie 'actorSselection' verwenden, sollten Sie sich dieses Problem ansehen, wenn Sie' actorSclection' verwenden: http://stackoverflow.com/questions/46724732/actorsystem-actorselection-is-not-working-for-remote-actors-where-actorof-is-wor Sie könnten dieses Problem überprüfen? – Mahesh