2015-01-11 1 views
5

내 편안한 웹 서비스에서 Spark SQL 쿼리를 실행하고 싶습니다. 어떻게 Jersey 컨텍스트를 통해 Spark Context를 실행할 수 있습니까? Spark SQL 요청을 클러스터에 전달한 다음 REST API를 통해 결과를 사용자에게 반환해야합니다. 그러나 Spark Documentations에서는 jar 파일을 클러스터 (마스터/슬레이브)에 제출하지 않고 Java 코드에서 Spark SQL 쿼리를 실행할 방법이 없습니다.REST 웹 서비스의 컨텍스트에서 스파크 작업을 호출하는 방법은 무엇입니까?

답변

4

Spark 버전이 1.4 이상인 경우 SparkLauncher을 사용하여 응용 프로그램을 실행할 수 있습니다.

import org.apache.spark.launcher.SparkLauncher; 

public class MyLauncher { 
    public static void main(String[] args) throws Exception { 
    Process spark = new SparkLauncher() 
     .setAppResource("/my/app.jar") 
     .setMainClass("my.spark.app.Main") 
     .setMaster("local") 
     .setConf(SparkLauncher.DRIVER_MEMORY, "2g") 
     .launch(); 
    spark.waitFor(); 
    } 
} 

작동하려면 jar 파일을 제공해야합니다. SparkSQL 쿼리를 실행하려면 단일 jar 파일로 압축하거나 실행하려는 쿼리를 매개 변수로 가져 오는 병을 가질 수 있습니다.

주의해야 할 점은 쿼리를 실행할 때마다 SparkContext를 시작 - 중지해야한다는 것입니다. 그것을 기다리는 것이 좋다면 괜찮습니다. 그러나 시간이 중요한 것이라면 스파크 컨텍스트가 항상 올라가고 응용 프로그램이이를 호출 할 별도의 서비스를 작성하는 것이 좋습니다.

+1

나는 그 질문이 꽤 오래되었다는 것을 알았지 만, 대답이 없기 때문에 누군가가 같은 질문을했을 수도있다. 나는 대답했다. – MitsakosGR

관련 문제