java - Spark - 使用参数从 java 调用 Spark jar

标签 java apache-spark hadoop-yarn

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

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

java端是否能够知道spark jar进程有多么困惑或者已经完成了?如果是这样,怎么办?

最佳答案

我认为你误解了数据算法中给出的内容

有2种方式提交作业

1) Spark-从 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 客户端的用法是

want to submit Spark jobs from Java code (such as Java servlets or other Java code such as REST servers).

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

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

希望你能理解..

关于java - Spark - 使用参数从 java 调用 Spark jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41113712/

相关文章:

java - 移动 JavaFx8 节点的正确方法

java - Spark DataFrame 类的 union() 方法在哪里?

Hadoop+Spark - 一旦应用程序正常启动一次就会显示错误

hadoop - 当 spark 处于本地模式时,是否有任何守护进程运行?

scala - 按 Spark 分组后分组

Hadoop 多节点集群 : Connection failed with slave node

hadoop - Spark on yarn 概念理解

java - 将应用程序属性注入(inject)为 RegisterRestClient baseUri Quarkus

java 。有没有一种简单的方法来顺序化多线程应用程序以使调试更容易?

java - 从 Python 调用 Java