问题标签 [livy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - sparklyr livy 协议中的 Kerberos 参数
我想从加入域的 VM 连接到 Azure 中加入域的 HDInsight 群集。不幸的是,我不知道如何确保sparklyr
使用 Kerberos 身份验证启动会话。
我可以使用哪个参数来指定 Kerberos 协议?
linux - Apache Livy 安全
我们正在尝试构建一个设置,其中我们有一个服务器,该服务器通过 REST API 将不同用户的作业提交到 Livy 服务器。我们建立了一个 kerberos 服务器来针对 livy 进行身份验证。但是我们要禁止用户访问不同用户的数据、文件系统和网络。
那么我的问题是,livy 的安全性如何?用户可以注入自定义代码以在 livy 上运行,但这使他们能够访问 livy 服务器所在主机上的文件系统。即使我们使用不同的 unix 用户运行 livy,该用户对文件系统的权限很小,从我的角度来看,可能存在潜在危险,他们也可能访问 livy 服务器上的密钥表。他们还可能注入恶意软件并运行它。
我知道创建的会话也创建了一个 JVM,所以一个会话存在于一个 JVM 中,如果没有 kerberos 票证,就不可能看到另一个会话的数据等,但是我可以将该 JVM 的安全设置更改为仅访问特定仅路径和特定 IP 地址?这是否意味着我要更改 livy 的源代码?
在使用带有活动目录的 HDFS 来保护数据系统的情况下,用户需要指定一个 kerberos 密钥来访问他们的文件,我如何在一台服务器中管理多个主体,以使其正常工作?
我的conf文件如下:
PS:启用launch.kerberos 是否提供额外的安全性来保护keytab?
对任何问题的任何帮助都非常感谢,
感谢正手
apache-spark - 我想在 livyServer 中实现 javamelody,请问我该怎么做
嗨,我需要实现 javamelody,以便我可以知道哪个调用消耗了多少时间。所以请帮我实现这个。
azure - 使用 Livy 为 Zeppelin 和 HDInsights Spark 导入依赖项
我正在尝试编写一个 HDInsight Spark 应用程序,它从 Azure EventHub 读取流数据。我正在使用带有 Livy 解释器的 Zeppelin 笔记本。
我需要导入依赖
com.microsoft.azure:azure-eventhubs-spark_2.11:2.3.2
为此,我将其添加到
livy.spark.jars.packages
Livy 解释器的财产。但是,这破坏了我的代码。即使没有线
导入 org.apache.spark.eventhubs._
我还是失败了。(我通常不使用通配符导入,但这只是概念应用的证明)
我得到的错误是
我怀疑这真的不是 Livy 或 Zeppelin 的问题,而只是我设置错误的一些配置,或者我需要更改默认设置,可能与下载 jar 有关。
任何帮助,将不胜感激
apache-spark - Apache Livy 批处理请求正文中的 Spark AppName
从 Apache Livy 提交批处理作业时如何设置 Spark 应用程序名称?
livy - 在 POST/批处理请求中使用现有的 SparkSession
我正在尝试使用Livy
远程提交几个Spark
作业。假设我想spark-submit
远程执行以下任务(使用所有选项)
注意:JAR
(--start
等--end
) 后面的选项特定于我的Spark
应用程序。我正在使用scopt
这个
我知道我可以使用request 提供
spark-submit
上述命令中的所有各种选项。Livy
POST/batches
但由于我必须
spark-submit
远程制作超过 250 秒,我想利用Livy
的会话管理功能;即,我想Livy
创建SparkSession
一次,然后将其用于我的所有spark-submit
请求。该
POST/sessions
请求允许我指定很多用于SparkSession
远程实例化的选项。但是,我在request中没有看到任何session
论点。POST/batches
如何利用SparkSession
我使用请求创建的内容来使用POST/sessions
请求提交我的Spark
工作POST/batches
?
我参考了以下示例,但它们仅演示了在的请求中为作业提供 ( python
)代码Spark
Livy
POST
apache-spark - Jupyter 作为 Zeppelin 的替代品:多语言 Spark
我的团队正在为我们构建的应用程序尝试从 Zeppelin 过渡到 Jupyter,因为 Jupyter 似乎有更大的动力,更多的定制机会,并且通常更灵活。然而,在 Jupyter 中,有几件 Zeppelin 是我们无法实现的。
主要是支持多语言 Spark - Jupyter 是否可以在同一个笔记本中创建可通过 R、Scala、Python 和 SQL 访问的 Spark 数据帧?我们编写了一个 Scala Spark 库来创建数据帧并将它们交还给用户,用户可能想要使用各种语言来操作/询问数据帧。
Livy是Jupyter 上下文中的解决方案吗,即它是否允许多个连接(从各种语言前端)到一个公共 Spark 后端,以便它们可以操作相同的数据对象?我不能从 Livy 的网站上完全判断给定的连接是否只支持一种语言,或者每个会话是否可以有多个连接。
如果 Livy 不是一个好的解决方案,BeakerX 可以满足这个需求吗?BeakerX 网站称其两个主要卖点是:
- 多语言魔法和自动翻译,让您可以在同一个笔记本中访问多种语言,并在它们之间无缝通信;
- Apache Spark 集成,包括 GUI 配置、状态、进度、中断和表格;
但是,我们无法使用 BeakerX 连接到本地 Spark 集群以外的任何东西,因此我们无法验证多语言实现的实际工作原理。如果我们可以连接到 Yarn 集群(例如 AWS 中的 EMR 集群),多语言支持是否可以让我们使用不同的语言访问相同的会话?
最后,如果这些都不起作用,自定义魔法会起作用吗?也许可以将请求代理到其他内核,例如和spark
内核?我看到这种方法的问题是,我认为每个后端内核都有自己的 Spark 上下文,但是有没有我没有想到的解决方法?pyspark
sparkr
(我知道 SO 问题不应该征求意见或建议,所以我在这里真正要问的是,上述三种选择是否真的存在可能的成功之路,不一定我应该选择其中的哪一种。)
pyspark - 在 Zeppelin 上使用 Apache Livy 解释器时,Matplotlib 不绘图
我无法在 Zeppelin 0.8 上将 matplotlib 与 Apache Livy 0.5 一起使用。段落不显示情节。请检查下面的示例代码:
我得到以下输出
我也尝试添加plt.show()
,但该段落从未达到完成状态。
apache-spark - Livy 中未使用缓存数据集
我有一个使用 livy 提交作业的应用程序。在同一个 livy 会话中,提交了各种作业。有时这些工作可能正在处理类似的数据集,因此我想将数据从一个工作重用到另一个工作。我正在提交的作业中缓存数据集。但是,每当提交新作业时,它都不会获取缓存的数据集,而是重新缓存相同的数据。
缓存数据集是否依赖于变量?例如,如果我这样做
在随后的另一份工作中,
我可以期望只有一个缓存数据集,并且 d2 使用以前缓存的数据吗?目前,我在 spark 应用程序的存储部分看到单独的缓存数据。作为参考,我正在使用 Livy 编程 API: 此处用于提交我的工作。
java - 从 Spark 作业服务器迁移到 Apache Livy
我一直在使用带有 Jobserver 的独立 Spark 服务器。出于 x 的原因,我不得不迁移到 Ambari 集群,然后像 Livy 一样,我认为使用它而不是 Jobserver 更好。
现在,我在尝试将我的实际 Java Jobserver 代码迁移到 Livy 时迷失了方向。我已经阅读了 Livy 文档,这就是我发现的:
在 Livy 中,您可以执行类似于 Jobserver 中的 Ad-Hoc 模式的批处理。还有会话,每个会话可以使用单个 Spark 上下文来执行语句。我对吗?
- 有没有一种方法可以像在 Jobserver 中一样以同步的方式执行批处理或语句,因此只需一个请求即可获得结果?实际上我只能看到异步模式。
- 在 Jobserver 中,您可以引用实现您的功能的 java 类,而这个只需要实现该类,
JSqlJob<String>
然后作业服务器就知道它必须执行run()
该类的方法。但在 Livy 中,我尝试执行 Pi 计算,但它失败了。
我使用以下卷曲:curl -X POST -d '{ "file": "hdfs://a1:8020/user/value_iq/Livy_Pi_Example-1.0-SNAPSHOT-dep.jar", "className": "value_iq.viq.PiJob","proxyUser": "hdfs", "name": "Livy Pi Example", "conf": {"executorCores":1, "executorMemory":"2G", "driverCores":1, "driverMemory":"512m", "queue":"uno"}, "args" : ["100"] }' -H "Content-Type: application/json" -H "X-Requested-By: admin" http://ambari.value-iq.com:8999/batches
我需要在这样的主要方法中实现什么?
这是我的java类:
我从https://livy.incubator.apache.org/docs/latest/programmatic-api.html获得了这个类,它说:要使用 Livy 提交此代码,请创建一个 LivyClient 实例。我是否必须创建另一个 jar 文件才能上传带有 Pi Job 的文件???我不能像我正在尝试的那样上传jar并在curl中指定java类吗?