Apache Livy REST API Client

Crates.io codecov Build Status Released API docs

Abstract

This crate provides an Apache Livy REST API client.

Setup

First, add the following settings to Cargo.toml:

toml [dependencies] livy = "0.1"

Next, add the followling line to the crate root:

rust extern crate livy;

Examples

```rust extern crate livy;

use livy::v040::Client;

fn main() { // http(s)://[livyhost]:[livyport] let url = "http://example.com:8999";

// The following configuration is useful to send an HTTP request
// to a Livy REST API endpoint on a Kerberized Hadoop cluster.
//
// ```
// let gssnegotiate = Some(true);
// let username = Some("xxxx".to_string());
// ```
let gssnegotiate = None;
let username = None;

let client = Client::new(url, gssnegotiate, username);

let from = None;
let size = None;

let res = match client.get_sessions(from, size) {
    Ok(res) => res,
    Err(err) => {
        println!("error: {}", err);
        return;
    }
};

println!("response: {:#?}", res);

/*
    response: Sessions {
        from: Some(
            0
        ),
        total: Some(
            1
        ),
        sessions: Some(
            [
                Session {
                    id: Some(
                        1
                    ),
                    app_id: Some(
                        "application_1111111111111_11111"
                    ),
                    owner: Some (
                        "xxxx"
                    ),
                    proxy_user: Some(
                        "xxxx"
                    ),
                    kind: Some(
                        Spark
                    ),
                    log: Some(
                        [
                            "\t ApplicationMaster host: N/A",
                            "\t ApplicationMaster RPC port: -1",
                            "\t queue: default",
                            "\t start time: 1111111111111",
                            "\t final status: UNDEFINED",
                            "\t tracking URL: http://xxxx:8088/proxy/application_1111111111111_11111/",
                            "\t user: xxxx",
                            "17/12/01 15:27:38 INFO ShutdownHookManager: Shutdown hook called",
                            "17/12/01 15:27:38 INFO ShutdownHookManager: Deleting directory /tmp/spark-11111111-1111-1111-1111-111111111111",
                            "\nYARN Diagnostics: "
                        ]
                    ),
                    state: Some(
                        Starting
                    ),
                    app_info: Some(
                        {
                            "sparkUiUrl": Some(
                                "http://xxxx:8088/proxy/application_1111111111111_11111/"
                            ),
                            "driverLogUrl": Some(
                                "http://xxxx:8042/node/containerlogs/container_111_1111111111111_11111_11_111111/xxxx"
                            )
                        }
                    )
                }
            ]
        )
    }
*/

} ```

Documentation

https://docs.rs/livy/

Supported Versions of Apache Livy