2016-05-20 7 views
1

Die spark docs Zustand:Spark-Streaming-Streaming aktiv Zählung

Nur ein Streaming kann in einer JVM zur gleichen Zeit aktiv sein.

einen Fall vorstellen, wo wir lesen sind die Planung/Prozessdaten aus zwei Kafka Themen, in denen es einen Job ist, Daten von einem Kafka Thema holen, und ein anderen Abrufdaten aus dem anderen kafka Thema. Kann ich diese beiden Jobs gleichzeitig auf demselben Hadoop-Cluster auslösen?

Darin heißt es auch,

Sobald ein Zusammenhang gestoppt wurde, ist es nicht neu gestartet werden kann.

Also wenn ich den Funken Job aus irgendeinem Grund stoppen muss, was ist der Weg, um es neu gestartet zu bekommen? Treibe ich es durch oozie oder etwas aus?

Antwort

1

Kann ich diese beiden Jobs gleichzeitig auf demselben Hadoop-Cluster gleichzeitig auslösen?

Aus Gründen der Einfachheit, lassen Sie die Begriffe aufzulösen. Ein StreamingContext ist innerhalb eines Spark-Jobs eindeutig. Wenn Sie mehrere Streams in den gleichen Job lesen möchten, können Sie das tun, indem Sie die gleiche StreamingContext zweimal an verschiedene Methoden KafkaUtils.createStream übergeben.

Wenn Sie mehrere Jobs haben, die Sie an Spark senden, dann kann jeder seine eigene StreamingContext haben. Jeder Job hat seine eigene JVM-Instanz.

Also, wenn ich den Funken Job aus irgendeinem Grund stoppen muss, was ist der Weg , um es neu gestartet zu bekommen?

Ein möglicher Weg zu erreichen, was Sie wollen, ist Spark Cluster-Modus unter Verwendung von Streaming-Job und das Bestehen der --supervise Flagge laufen. Der Spark Master stellt sicher, dass der Job bei einem Fehler erneut gestartet wird.

Sie können mehr darüber in Sparks "Submitting Applications" Dokumentation lesen.