将 jar 上传到 Apache Livy 交互式会话

问题描述 投票:0回答:2

使用 Amazon emr-5.30.1Livy 0.7Spark 2.4.5

我们愿意使用 Apache Livy 作为 Spark 的 REST 服务。 我们想要使用的模式是会话而不是批处理。 尝试使用以下方法将 jar 上传到会话(通过正式 API):

curl -X POST \
     -d '{"conf": {"kind" : "spark","jars": "s3://cjspro-emr-data/spark-examples.jar"}}' \
     -H "Content-Type: application/json" localhost:8998/sessions

查看会话日志给人的印象是 jar 没有被上传。 更不用说使用请求的 jar 的代码片段不起作用。

有什么帮助吗?

java apache-spark amazon-emr livy
2个回答
0
投票

我不确定 s3 中的 jar 引用是否有效,但我们使用引导操作并更新 Spark 配置做了同样的事情。

第1步:创建引导脚本并添加以下代码;

aws s3 cp s3://cjspro-emr-data/spark-examples.jar /home/hadoop/jars/

第 2 步:创建 Livy 会话时,使用 Livy 会话 API 中的 conf 键设置以下 Spark 配置

'conf':{'spark.driver.extraClassPath':'/home/hadoop/jars/*,
        'spark.executor.extraClassPath':'/home/hadoop/jars/*'}

第 3 步:使用 Livy 会话 API 中的 jars 密钥发送要添加到会话的 jar。

'jars':['local:/home/hadoop/spark-examples.jar']

因此创建 Livy 会话的最终数据如下所示;

{
'kind':'pyspark',
'conf':'above mentioned dict',
'jars':['local:/home/hadoop/spark-examples.jar'],
'executorCores':'',
'executorMemory':'',
.
.
.
}

0
投票

如何从上传的jar中调用函数?

© www.soinside.com 2019 - 2024. All rights reserved.