我想从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/