17 releases (5 breaking)

Uses old Rust 2015

0.5.0 Dec 7, 2017
0.4.0 Dec 6, 2017
0.3.0 Dec 5, 2017
0.2.0 Dec 2, 2017
0.0.9 Nov 30, 2017

#570 in HTTP client


Used in livy_manager

MIT/Apache

29KB
523 lines

Apache Livy REST API Client

Crates.io Build Status Released API docs

Abstract

This crate provides an Apache Livy REST API client.

Setup

First, add the following settings to Cargo.toml:

[dependencies]
livy = "0.2"

Next, add the following line to the crate root:

extern crate livy;

Examples

extern crate livy;

use livy::client::Client;

fn main() {
    // http(s)://[livy_host]:[livy_port]
    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

  • 0.3.0
  • 0.4.0

Dependencies

~9–17MB
~262K SLoC