【问题标题】:Spark - Call Spark jar from java with arguments [closed]Spark - 从带有参数的java调用Spark jar [关闭]
【发布时间】:2016-12-13 15:34:37
【问题描述】:

我想从 java 中调用 spark jar(在 yarn 上运行 spark 进程),并尝试使用这个 link 代码。

它看起来适合我的情况,但我需要将 hashmap 和一些 java 值传递给 spakr jar。是否能够将 java 对象传递给 spark jar?

java 端是否能够知道 spark jar 进程是如何进行的,或者它是否完成了?如果有,怎么做?

【问题讨论】:

    标签: java apache-spark hadoop-yarn


    【解决方案1】:

    我认为您误解了 data-algorithms 中给出的内容

    有两种方式提交作业

    1) Spark-submit 像下面的 shell 脚本示例

    cat run_secondarysorting.sh
    
    #!/bin/bash
    export JAVA_HOME=/usr/java/jdk7
    export SPARK_HOME=/home/hadoop/spark-1.1.0
    export SPARK_MASTER=spark://myserver100:7077
    BOOK_HOME=/home/mp/data-algorithms-book
    APP_JAR=$BOOK_HOME/dist/data_algorithms_book.jar
    INPUT=/home/hadoop/testspark/timeseries.txt
    # Run on a Spark standalone cluster
    prog=org.dataalgorithms.chap01.spark.SparkSecondarySort
    $SPARK_HOME/bin/spark-submit \
    --class $prog \
    --master $SPARK_MASTER \
    --executor-memory 2G \
    --total-executor-cores 20 \
    $APP_JAR
    

    2) 来自链接中描述的 Yarn 客户端。

    Yarn 客户端的用法是

    想要从 Java 代码(例如 Java servlet 或 其他 Java 代码,例如 REST 服务器)。

    当你调用这个 yarn 客户端时......那么你需要在你的 rest-service 或 servlet 等中调用 as 方法......(即通过 web)你还可以在其中传递参数,如HashMap 或任何 java 对象类型...

    出于演示目的,他编写了独立客户端(带有 public static void main)

    希望你能理解..

    【讨论】:

    • 从现在开始,我在核心java项目中嵌入了spark jar,并用spark main方法调用它来传递一些对象。 (而且效果很好),但与 spark 处理的文件一样大,我认为如果文件越来越大,satndalone 模式是不够的。
    • 那么有什么问题,你想通过 rest-service 或 servlet 用 yarn 客户端来做?
    • 是的。你说的对。我的回答是否有助于更好地理解?
    • 查看此独立模式:这是默认设置。你在一个主节点上启动 Spark 主节点,在每个从节点上启动一个“worker”,然后将你的 Spark 应用程序提交给 Spark 主节点。 YARN 客户端模式:在此模式下,您不会启动 Spark 主节点或工作节点。相反,您将 Spark 应用程序提交给 YARN,YARN 在提交应用程序的客户端 Spark 进程中运行 Spark 驱动程序。 YARN 集群模式 在此模式下,您不会启动 Spark 主节点或工作节点。相反,您将 Spark 应用程序提交给 YARN,YARN 在 YARN 的 ApplicationMaster 中运行 Spark 驱动程序。
    • 对于 webapps Yarn-client 模式在我看来更好。
    猜你喜欢
    • 2021-05-03
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2018-07-08
    • 2016-11-18
    • 2017-03-03
    相关资源
    最近更新 更多