我想从java调用spark jar(在yarn上运行spark进程),并尝试使用这个link代码。
它看起来很适合我的情况,但我需要将hashmap和一些java值传递给spakr jar。是否能够将java对象传递给spark jar?
并且java方面能够知道如何使用火花罐子过程或者它是如何完成的?如果是这样,怎么样?
答案 0 :(得分:2)
我认为您误解了数据算法中给出的内容
有两种提交作业的方式
1)如下例所示,从shell脚本
中提交Spark-submitcat 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 Client。
Yarn客户端的用法是
想要从Java代码提交Spark作业(例如Java servlet或 其他Java代码,如REST服务器)。
当您调用此纱线客户端时......您需要在休息服务或servlet等中调用方法...(即通过Web),您也可以在其中传递参数HashMap或任何java对象类...
出于演示目的,他编写了独立客户端(使用public static void main)
希望你能理解......