直接调用 spark2

参考: https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.6.0/bk_spark-component-guide/content/ch_oozie-spark-action.html#spark-config-oozie-spark2

如果在oozie 中调度 spark 2. 需要做以下修改

执行以下命令准备好相应的 jar 包

cd $SPARK_HOME

hdfs dfs -mkdir -p /share/lib/spark2

hdfs dfs -put jars/ /share/lib/spark2/

hdfs dfs -cp /user/hadoop/share/lib/lib_20190125144014/spark/oozie-sharelib-spark-*.jar /share/lib/spark2/jars

hdfs dfs -put conf/hive-site.xml /share/lib/spark2

hdfs dfs -mkdir /share/lib/spark2/python

hdfs dfs -put python/lib /share/lib/spark2/python

在 job.properties 中设置

oozie.action.sharelib.for.spark=spark2
oozie.libpath=/share/lib/spark2/jars/,/share/lib/spark2/python/lib/,/share/lib/spark2/hive-site.xml

也可以直接在 oozie 的 sharelib 上做修改,只要将上述的 /share/lib/spark2 路径修改为 oozie 的 sharelib 路径 /user/hadoop/share/lib/lib_20190125144014/spark2

然后执行命令 oozie admin –sharelibupdate 刷新 sharelib 列表, 引入 spark2.

执行命令验证 spark2 是否成功导入 oozie admin –shareliblist spark2

调用 pyspark

目前oozie 5.1.0 支持的 spark 的 lib, 为 spark 1.6.1 . pyspark 和 py4j 都是较老版本

原因是 oozie 设置的 spark lunner 里少了 环境变量 PYSPARK_GATEWAY_SECRET

从此处下载 https://github.com/apache/spark/tree/branch-1.6/python/lib 下载 py4j

将 pyspark 下载之后 按zip 压缩 上传到 oozie 的 sharelib 目录