2016-09-19 5 views
1

Ich bin ein Neuling auf Apache Funken und versucht, eine einfache Anwendung zu erstellen, es in lokalen mode.I laufen erkannte, dass es ein Skript wie spark-submit hat den Antrag einzureichen.Anwendung in Apache Spark

Ich bin auf der Suche nach etwas ähnlich wie Apache Storm LocalCluster.submitTopology(), um die Anwendung programmgesteuert einzureichen. Bitte zeigen Sie mir die entsprechende API in Spark. Schätzen Sie Hilfe zu diesem Thema. Danke.

+0

was Sie unter „problematically“ bedeuten kann –

+0

er bedeutet „programmatisch“ @kamal Pradhan – avrsanjay

Antwort

0

Ich glaube, dies zu tun in der Haupt:

SparkSession sparkSession = SparkSession 
      .builder() 
      .master("local[2]") 
      .appName("appName") 
      .getOrCreate(); 

in 2.0.

In Funke 1.6 Sie würden:

SparkConf sparkConf = new SparkConf().setAppName("appName").setMaster("local[2]") 
SparkContext sc = new SparkContext(sparkConf) 
0

So haben Sie eine Funken Anwendung entweder im Cluster-Modus oder im lokalen Modus ausgeführt Cam. im Falle von Cluster können Sie entweder für Garn, Mesos Cluster oder Funke Standalone Cluster gehen.

, wenn Sie Ihre Anwendung zu Garn oder Mesos Sie Ihre Funken App in eine Fett jar müssen einreichen verpacken und sie dann von einer Konsole einreichen mit Funken einreichen.

wenn Sie wollen einen Funken App im Cluster laufen programmatisch Sie einrichten Funkenstandalone-Cluster haben und geben Sie die IP-Adresse des Master-Knotens in der setMaster() Eigenschaft. Jetzt wird die App im Cluster ausgeführt.

SparkConf sparkConf = new SparkConf().setAppName("appName").setMaster("spark://sparkmasterip:7077") 
    SparkContext sc = new SparkContext(sparkConf) 

wenn Sie programmatisch haben Sie einrichten Funken Bibliotheken in Ihrem Projekt und bieten die keine Funken App im lokalen Modus ausgeführt werden. von Threads, die in Ihrer App in der Eigenschaft setMaster() verwendet werden sollen. Jetzt wird die App im lokalen Modus ausgeführt.

SparkConf sparkConf = new SparkConf().setAppName("appName").setMaster("local[8]") 
     SparkContext sc = new SparkContext(sparkConf) 
0

können Sie die SparkLauncher verwenden, in der package summary die Bibliothek wird wie folgt beschrieben:

Diese Bibliothek ermöglicht es Anwendungen, Funken programmatisch zu starten. Es gibt nur einen Einstiegspunkt in die Bibliothek - die SparkLauncher-Klasse.

Mit ihm können Sie eine Spark-Anwendung wie diese starten:

import org.apache.spark.launcher.SparkAppHandle; 
import org.apache.spark.launcher.SparkLauncher; 

public class MyLauncher { 
    public static void main(String[] args) throws Exception { 
    SparkAppHandle handle = new SparkLauncher() 
     .setAppResource("/my/app.jar") 
     .setMainClass("my.spark.app.Main") 
     .setMaster("local") 
     .setConf(SparkLauncher.DRIVER_MEMORY, "2g") 
     .startApplication(); 
    // Use handle API to monitor/control application. 
    } 
} 

Dies gibt Ihnen eine SparkAppHandle Ihre Spark-Anwendung zu steuern. Es ist auch möglich, einen rohen Prozess zu starten, aber es wird empfohlen, den oben gezeigten Weg zu verwenden.