Ich möchte etwas wie das tun:Wie kann ich MySQL von einem Knoten abfragen und dann nach Funken filtern?
Zuerst generieren Sie eine Zufallszahl, und dann abfragen in mysql
. Wenn es in mysql database
existiert, werde ich weitere Informationen darüber in spark
suchen.
Allerdings, wenn ich den Job zu spark cluster
, jeder Knoten des Clusters submit
wird eine andere Zufallszahl erzeugen und es dann in spark
in mysql
und als Suchkriterien. Habe ich recht?
Ich möchte nur eine Maschine (Knoten) eine Zufallszahl erzeugen und es in MySQL-Abfrage, und es dann in spark cluster
suchen, wenn es in mysql
existiert.
Außerdem sollte der obige Vorgang wiederholt ausgeführt werden.
Wie kann ich es tun? Jede Hilfe oder ein Hinweis wäre willkommen.
Danke Rick. Aber wenn ich nur den Code in der Reihenfolge in scala schreibe, sagen "Erzeugen der Zufallszahl, Abfragen in mysql, Lesen der Datei von HDFS, und filter aus der Datei", wird es automatisch sie im Treiber und im Cluster separat ausführen? Wie Sie über "asynchron" gesagt haben, denke ich, dass der Producer-Consumer-Modus eine gute Wahl ist. Allerdings möchte ich einfach meinen Code jetzt einfach ~ – sizheng
Jeder Vorgang, der RDD oder DataSet-API nicht ausführt, wird nur auf dem Treiber ausgeführt. So etwas wie 1 bis 10.par.map (Random.nextInt) wird auf dem Treiber ausgeführt. Bei jeder DataSet/RDD-Operation wird zunächst nur ein Job generiert, und Sie können mehrere Jobs an Spark senden, während die erste noch ausgeführt wird. Sie müssen nur die inhärente Parallelität Ihres Codes verwenden, um dies zu tun, und Scala parallele Sammlungen oder jede andere Abstraktion über Multithreading. Ihr Code wird sehr einfach bleiben. Das Lesen von HDFS sollte mit einer initialen DataSet-Operation erfolgen, bei der die Ausführung automatisch parallelisiert wird. –