Skip to content

kjmrknsn/livy-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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