Archives of Support Questions (Read Only)

This is an archived board for historical reference. Information and links may no longer be available or relevant
Announcements
This board is archived and read-only for historical reference. To ask a new question, please post a new topic on the appropriate active board.

Livy rest api with web app

avatar

Hi,

I have a requirement to train a predictive machine learning model from web application. User can change tuning parameters/ algorithm from User Interface which goes to Spark job and returns regression metric.

Right now, I have developed a web application REST API with Jersey and Jetty.

I have a Spark machine learning application which implements Livy job. I am referring this jar from web application.

The flow is as follows. User changes tuning parameter/ algorithm from UI -> Jersey API calls Livy client with parameters -> Livy job runs in YARN and returns metric results -> Jersey returns metric results to UI.

Am I doing it correct? Is there any other way that I can interact with SPARK from web app? I am creating LivyClient singleton object and I am using this object for submitting job throughout the application. The code was working fine. I am getting the below exception now. Do I have to create LivyClient object and upload jar (Spark machine learning application with Livy) each and every time?

javax.servlet.ServletException: java.util.concurrent.ExecutionException: java.io.IOException: Not Found: "Session '339' not found."

1 ACCEPTED SOLUTION

avatar
Super Collaborator

The flow seems right. Thats a good use case for livy. Assuming it goes YourApp->Livy->Spark and back.

You will need to look at Livy client logs or livy logs for session id 339. Seems like the client is asking for a session (livy spark job) that does not exist anymore. Could have been not started and abandoned or lost.

View solution in original post

2 REPLIES 2

avatar
Super Collaborator

The flow seems right. Thats a good use case for livy. Assuming it goes YourApp->Livy->Spark and back.

You will need to look at Livy client logs or livy logs for session id 339. Seems like the client is asking for a session (livy spark job) that does not exist anymore. Could have been not started and abandoned or lost.

avatar

@Bikas, Is this correct to create LivyClient object during application start up and use that object for all the API requests to submit jar?