Sessions
Note
See Common UI Features or general information and common features about Unravel's UI.
Note
You must be using MySQL and have the OnDemand package installed to use this report.
Spark Sessions' are run as user unravel
so the JAR file must be accessible to unravel
. If it is not, the session fails with a file not found
exception.
Sessions lets you run your app expressly to tune its performance for either:
Speedup: Decrease the app's time (end-to-end duration) and resources (shortening the app's duration is first priority).
Reliability: In attempting to reduce resources Unravel prioritizes memory allocation to ensure the app doesn't fail due to "out of memory" exceptions.
Why use sessions when Unravel already offers insights and recommendations on an app's run?
You direct the tuning goal.
You can:
Provide multiple runs of an app to provide a larger data pool for Unravel to analyze.
Have Unravel apply the recommendations for you and run the newly configured app.
See the effects, both positive and negative, the tuning has on an app's run.
Compare the various runs' configurations.
Repeatedly tune the app until Unravel has no more recommendations.
Your session is saved and can be run again, e.g., new runs added, cluster configuration changed.
You can tune:
Spark
Hive on MapReduce
Alternatively, you can Sessions simply as a tool to compare two runs of the same app.
The Sessions tab opens displaying all current sessions sorted on Sessions Name in ascending order. The Start Time is the time of the most recent app run. Number of Apps is the number of runs inside the Session. Some of these runs were added when the session was created and some were created when the recommendations.
The four KPIs Duration, IO, vCore Seconds, and Memory Seconds are essentially what the fine-tuning hopes to minimize. The column contains a trend line that plots all the apps (vertices) contained in the Session. Beneath the trend line the average and the best value is noted. For example, VCore9, has 3 apps, for Duration the average is 19 m 24 s and the best time was 38.31% better than this. You can't draw the conclusion that the same app performed best for each KPI. Finally, the Cluster ID is listed. You can sort the table on Session Name, Start Time, and Cluster. Click the edit button to edit the session.
You can search for a session by name. Enter the string in the search box; any session name matching or containing the string will be displayed.
Creating a session
You can use sessions
Manually: To control the analysis and app of recommendations.
Automatically: To automatically analyze and apply the recommendations.
Manual session
Click Create Session. You must name your session, it doesn't have to be unique, but we recommend you do so. Chose the Application Type and Tuning Goal from the pull-down menu and the tuning goal. Add the App IDs of an app you want to tune. Click +Add another App ID to add more apps, to delete an App ID. Click Add to create the session or Cancel to close the modal.
If you are tuning a Spark App you can optionally supply the JAR path, Class Name, Class Arguments, or Files.
Auto tune session
You have the additional option to specify the maximum number of runs. When specified, the iteration stops at the maximum number or lack of recommendations, whichever comes first.
Via the events panel
If an app has events with recommendations you can create a session directly from the recommendations tab. You can create either a manual or auto tune session. Click the type of session you wish to create and a session modal is filled in except for the session name.
Once a Spark app has completed, you may select to Create a Session or Auto Tune Session from the Actions tab.
Session
The Session's APM layout is similar to all APMs. Instead of KPIs reflecting an app's KPIs they are trend lines of the app's KPIs across the various tuning runs. The example below is a session view immediately after creation.
The left tab, Applications, is the list of runs; initially it is whatever was loaded when the session was created. As analysis and applications of recommendations occur more runs are added.
Right tabs
Progress tab: Keeps a log of all the activity. See the example above.
Trends: Expanded graphs of Duration, IO, and Resources.
Compare: Allows you to compare two runs.