2016-07-12 3 views
0

У меня есть основной вопрос об использовании искрового приложения.Как запустить Spark Application в качестве демона

У меня есть клиент Java, который отправит мне запрос на данные запроса, который находится в HDFS.

Запрос, который я получаю, - это API REST через HTTP, и мне нужно интерпретировать запрос и формировать запросы Spark SQL и возвращать ответ клиенту.

Я не могу понять, как я могу сделать свое искровое приложение в качестве демона, ожидающего запроса, и выполнить запросы, используя предварительно созданный SQL-контекст?

ответ

0

У вас может быть поток, который работает в бесконечном цикле, чтобы выполнять вычисления с помощью Spark.

while (true) { 
    request = incomingQueue.poll() 
    // Process the request with Spark 
    val result = ... 
    outgoingQueue.put(result)  
} 

Затем в потоке, которые обрабатывают запрос REST, вы помещаете запрос в incomingQueue и ждать результата от outgoingQueue.

// Create the request from the REST call 
val request = ... 
incompingQueue.put(request) 
val result = outgoingQueue.poll() 
return result 
1

Самый лучший вариант, я видел для этого случая использования является Spark Job Server, который будет приложение демон с кодом драйвера развернутом к нему в качестве имени приложения.

Этот параметр дает вам еще больше возможностей, таких как настойчивость.

С сервером заданий вам не нужно вводить код своего собственного демона, и ваши клиентские приложения могут отправлять запросы REST непосредственно на него, что, в свою очередь, будет выполнять задачи «исправить».

Смежные вопросы