11

Próbuję zbudować system Movie Recommender za pomocą Apache Spark MLlib. Napisałem kod dla polecającego w java i jego działa poprawnie, gdy uruchamiam przy użyciu polecenia spark-submit.Jak zintegrować Apache Spark z aplikacją internetową Spring MVC do interaktywnych sesji użytkownika

Moja uruchomić polecenie wygląda następująco

bin/spark-submit --jars /opt/poc/spark-1.3.1-bin-hadoop2.6/mllib/spark-mllib_2.10-1.0.0.jar --class "com.recommender.MovieLensALSExtended" --master local[4] /home/sarvesh/Desktop/spark-test/recommender.jar /home/sarvesh/Desktop/spark-test/ml-latest-small/ratings.csv /home/sarvesh/Desktop/spark-test/ml-latest-small/movies.csv

Teraz chcę używać mojego scenariusza dzia rekomendacji w rzeczywistym świecie, jako aplikacja internetowa, w której można kwerendy dzia rekomendacji dać jakiś rezultat.

Chcę zbudować aplikację internetową Spring MVC, która może wchodzić w interakcję z kontekstem Spache'a Apache i dawać mi wyniki na żądanie.

Moje pytanie brzmi: w jaki sposób mogę zbudować aplikację współpracującą z Apache Spark, która działa w klastrze. Tak więc, gdy żądanie przychodzi do kontrolera, powinno wziąć zapytanie użytkownika i pobrać ten sam wynik, co dane wyjściowe polecenia spark-submit na konsoli.

O ile szukałem, stwierdziłem, że możemy używać Spark SQL, integrować z JDBC. Ale nie znalazłem żadnego dobrego przykładu.

Z góry dziękuję.

Odpowiedz

1

Aby wchodzić w interakcje z modelem danych (wywołać metodę invoke?), Można zbudować usługę odpoczynku wewnątrz sterownika. Ta usługa nasłuchuje żądań i wywołuje metodę przewidywania modelu z wprowadzeniem z żądania i zwraca wynik.

http4s (https://github.com/http4s/http4s) może być używany do tego celu.

Spark SQL nie jest istotny, ponieważ obsługuje analitykę danych (którą już wykonałeś) z funkcjami sql.

Mam nadzieję, że to pomoże.

0

do izolowania sesje użytkowników i pokazując wyniki w sposób izolowany, może być konieczne użycie kolejek z powiązaną tożsamością użytkownika. Osiągnięcie rezultatów wymaga czasu, dzięki tej tożsamości możesz wyświetlić odpowiednie wyniki dla użytkownika.

1

prostu przejść kontekst zapłonową i sesję jako fasoli wiosną

@Bean 
public SparkConf sparkConf() { 
    SparkConf sparkConf = new SparkConf() 
      .setAppName(appName) 
      .setSparkHome(sparkHome) 
      .setMaster(masterUri); 

    return sparkConf; 
} 

@Bean 
public JavaSparkContext javaSparkContext() { 
    return new JavaSparkContext(sparkConf()); 
} 

@Bean 
public SparkSession sparkSession() { 
    return SparkSession 
      .builder() 
      .sparkContext(javaSparkContext().sc()) 
      .appName("Java Spark Ravi") 
      .getOrCreate(); 
} 

Podobnie dla układu xml konfiguracji

kod pełni pracuje ze sprężyną i iskry występuje tu

https://github.com/ravi-code-ranjan/spark-spring-seed-project

Powiązane problemy