2016-05-15 7 views
7

Istnieje pewna nowa funkcja (wiosna 2015), która prawdopodobnie ma umożliwić programowe zgłaszanie iskier.Sposób korzystania z funkcji automatycznego zgłaszania iskier

Oto JIRA https://issues.apache.org/jira/browse/SPARK-4924

Jednakże istnieje niepewność (i liczyć mnie również) o tym, jak właściwie korzystać z tych funkcji. Oto ostatnie komentarze w JIRA:

enter image description here

Prosząc rzeczywisty autor niniejszej pracy w celu dalszego wyjaśnienia jest to „patrzeć w docs API”.

"Dokument użytkownika" to dokumentacja API Spark.

Autor nie podał dalszych szczegółów i najwyraźniej uważa, że ​​cała sprawa była oczywista. Jeśli ktokolwiek może połączyć kropki tutaj: konkretnie - gdzie w dokumentacji API jest opisana nowsza funkcja Spark Submit - byłoby to docenione.

Oto niektóre z informacji szukam -Pointers na następujące kwestie:

  • Jakie możliwości zostały dodane do API zapłonowej
  • W jaki sposób możemy z nich korzystać
  • żadnych przykładów/inny odpowiednią dokumentację i/lub kod

AktualizacjaSparkLauncher, o których mowa w przyjętym odpowiedź nie zainicjuje prosta aplikacja w trywialnych warunkach (master = local [*]). Dopiero okaże się, jak będzie on użyteczny w rzeczywistym klastrze. Po dodaniu do druku oświadczenia połączonego kodu:

println ("rozpoczęła .. i czeka ..") spark.waitFor()

widzimy:

i rozpoczęła .. czekanie ..

To chyba mały krok naprzód. Uaktualni to pytanie, gdy przejdę do rzeczywistego środowiska klastrowego.

Odpowiedz

7

Patrząc na szczegóły pull request, wydaje się, że funkcjonalność jest zapewniona przez klasę SparkLauncher, opisaną w API docs here.

public class SparkLauncher extends Object

Launcher iskry aplikacje.

Ta klasa służy do programistycznego uruchamiania aplikacji Spark. Klasa używa wzorca budowania, aby umożliwić klientom skonfigurowanie aplikacji Spark i uruchomić ją jako proces potomny.

docs API są raczej minimalne, ale znalazłem na blogu, który daje worked example (kod dostępny także w GitHub repo). Mam skopiowane uproszczoną wersję przykładzie poniżej (nietestowanego) w przypadku łącza iść zestarzeć:

import org.apache.spark.launcher.SparkLauncher 

object Launcher extends App { 
    val spark = new SparkLauncher() 
    .setSparkHome("/home/user/spark-1.4.0-bin-hadoop2.6") 
    .setAppResource("/home/user/example-assembly-1.0.jar") 
    .setMainClass("MySparkApp") 
    .setMaster("local[*]") 
    .launch(); 
    spark.waitFor(); 
} 

Zobacz także:

+0

Dzięki za skok tutaj. Czy próbowałeś użyć tej klasy bezpośrednio? Jego stosowanie jest trudne pod względem prawidłowego ustawienia środowiska. To było moje zrozumienie po przeczytaniu JIRA, że komplikacje mogły zostać zmniejszone. Po prostu przyjrzenie się dokumentom API jest * nie * będzie pomocne. Przekażę ci tutaj - za to, że wykonałeś to trochę kopania. – javadba

+0

Zaktualizowano OP, aby dokładniej wyjaśnić, czego szukam. – javadba

+0

Zobacz aktualizację za pomocą SparkLaunchera. Próbuję teraz. – javadba

Powiązane problemy