This crate provides an Apache Livy REST API client.
First, add the following settings to Cargo.toml
:
[dependencies]
livy = "0.2"
Next, add the following line to the crate root:
extern crate livy;
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"
)
}
)
}
]
)
}
*/
}
- 0.3.0
- 0.4.0