【问题标题】:How to set proxy user in Livy Job submit through its Java API如何通过其 Java API 在 Livy Job 提交中设置代理用户
【发布时间】:2017-11-20 21:20:17
【问题描述】:

我正在使用 Livy 的 Java API 在集群上的 YARN 上提交 spark 作业。目前,作业正在以“livy”用户身份提交,但我想以 Livy 的代理用户身份提交作业。

可以通过向 Livy 服务器发送 POST 请求,通过在 POST 数据中传递一个字段来做到这一点。我在想这是否可以通过 Livy 的 Java API 来完成。

我正在使用标准方式提交作业:

LivyClient client = new LivyClientBuilder()
  .setURI(new URI(livyUrl))
  .build();

try {
  System.err.printf("Uploading %s to the Spark context...\n", piJar);
  client.uploadJar(new File(piJar)).get();

  System.err.printf("Running PiJob with %d samples...\n", samples);
  double pi = client.submit(new PiJob(samples)).get();

  System.out.println("Pi is roughly: " + pi);
} finally {
  client.stop(true);
}

【问题讨论】:

    标签: apache-spark cloudera livy


    【解决方案1】:

    发布我自己问题的答案。 目前无法通过 LivyClientBuilder 设置代理用户。

    解决方法是:

    1. 通过 REST API 创建会话(向< livy-server >/session/ 发送请求)并从请求的响应中读取会话 ID。代理用户可以通过 REST API 设置,方法是在 POST 数据中传递它:{"kind": "spark", "proxyUser": "lok"}
    2. 创建会话后,通过 LivyClientBuilder 使用 ID 连接到它( livyURL 将是 < livy-server >/sessions/< id >/ )。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 2022-07-24
      • 2018-09-09
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多