【问题标题】:Use existing SparkSession in POST/batches request在 POST/批处理请求中使用现有的 SparkSession
【发布时间】:2018-08-08 12:04:35
【问题描述】:

我正在尝试使用Livy 远程提交多个Spark工作。假设我想远程执行以下 spark-submit 任务(所有选项都如此)

spark-submit \
--class com.company.drivers.JumboBatchPipelineDriver \
--conf spark.driver.cores=1 \
--conf spark.driver.memory=1g \
--conf spark.dynamicAllocation.enabled=true \
--conf spark.serializer='org.apache.spark.serializer.KryoSerializer' \
--conf "spark.executor.extraJavaOptions= -XX:+UseG1GC" \
--master yarn \
--deploy-mode cluster \
/home/hadoop/y2k-shubham/jars/jumbo-batch.jar \
\
--start=2012-12-21 \
--end=2012-12-21 \
--pipeline=db-importer \
--run-spiders

注意:JAR 之后的选项(--start--end 等)特定于我的 Spark 应用程序。我为此使用scopt


  • 我知道我可以使用Livy POST/batches request 提供上述spark-submit 命令中的所有各种选项。

  • 但由于我必须远程制作超过 250 个spark-submits,我想利用Livy会话管理功能;即,我希望 Livy 创建一次 SparkSession,然后将其用于我的所有 spark-submit 请求。

  • POST/sessions request 允许我指定相当多的选项来远程实例化SparkSession。但是,我在 POST/batches request 中看不到 session 参数

如何利用我使用POST/sessions 请求创建的SparkSession 使用POST/batches 请求提交我的Spark 作业?


我参考了以下示例,但它们仅演示了在LivyPOST 请求中为Spark 工作提供(python代码

【问题讨论】:

标签: livy


【解决方案1】:

如何使用我创建的SparkSession POST/sessions 请求提交我的Spark 工作使用 POST/batches 请求?

  • 在这个阶段,我几乎可以肯定这是不可能的现在
  • @Luqman Ghani's comment 给出了一个很好的提示,即 batch-mode 用于与 session-mode / LivyClient 不同的用例

我确定这不可能的原因如下(如果我错/不完整,请纠正我)如下

  • POST/batches 请求接受 JAR
  • 这会阻止SparkSession(或spark-shell)被重复使用(无需重新启动SparkSession),因为
    • 如何从之前的 POST/batches 请求中删除 JAR
    • 如何从当前的POST/batches 请求中添加JAR

这是一张更完整的图片

  • 其实POST/sessions可以让你通过JAR
  • 但随后与 session 的进一步交互(显然)无法使用 JARs
  • 它们(进一步的交互)只能是可以加载到session(而不是JARs)的简单脚本(如PySpark:简单python文件)

可能的解决方法

  • 所有将Spark-应用程序写在Scala/Java的人,必须捆绑在JAR中,将面临这个困难; Python (PySpark) 用户在这里很幸运
  • 作为一种可能的解决方法,您可以试试这个(我看不出它为什么不起作用)
    • 通过POST/sessions 请求使用您的JAR 启动session
    • 然后从您的JAR 调用入口点-class 通过python(提交POST /sessions/{sessionId}/statements)任意多次(可能不同参数)。虽然这不是直截了当,但听起来很有可能

最后我找到了更多的替代Livy远程spark-submitsee this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 2012-10-08
    • 2014-04-22
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多