温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
1.文档编写目的
目前Oozie 的 SparkAction 仅支持Spark1.6, 而并不支持Spark2, 这是 CDH Spark2已知的局限性(https://www.cloudera.com/documentation/spark2/latest/topics/spark2_known_issues.html#ki_oozie_spark_action
),作为临时的解决方案,您可以使用 Oozie 的 ShellAction 来调用 Spark2作业。继上一篇如何使用Hue创建Spark1和Spark2的Oozie工作流的实现方式外,本文档主要讲述使用shell的方式实现Hue创建Spark2的Oozie工作流。
2.创建sparkJob.sh脚本
创建一个shell脚本用于提交Spark2作业,此处使用Spark2默认的例子Pi测试,内容如下:
[ec2-user@ip-172-31-22-86 ~]$ vim sparkJob.sh
#!/bin/bash
spark2-submit --master yarn\
--num-executors 4 --driver-memory 1g\
--driver-cores 1 --executor-memory 1g\
--executor-cores 2\
--class org.apache.spark.examples.SparkPi /opt/cloudera/parcels/SPARK2/lib/spark2/examples/jars/spark-examples_2.11-2.1.0.cloudera1.jar
在命令行测试脚本是否正常运行
[ec2-user@ip-172-31-22-86 ~]$ sh sparkJob.sh
作业运行成功
3.创建Oozie工作流
1.创建一个Oozie的工作流
2.打开Spark2Shell的WorkSpace
3.将sparkJob.sh脚本上传至该工作空间的lib目录下
4.创建Shell类型的Oozie工作流
5.选择该工作流WorkSpace空间lib目录下的sparkJob.sh脚本
6.报错Oozie工作流
7.保存成功后点击按钮运行
8.Yarn的8088显示
9.运行成功
4.总结
目前Oozie 的 SparkAction 仅支持Spark1.6, 而并不支持Spark2, 这是 CDH Spark2已知的局限性,作为临时的解决方案, 您可以使用 Oozie 的 ShellAction 来调用 Spark2作业。
通过使用Shell脚本的方式向集群提交Spark2的作业,注意在shell脚本中指定的spark-examples_2.11-2.1.0.cloudera1.jar包,要确保在集群的所有节点相应的目录存在,否则会执行失败。目录访问权限问题也会导致执行失败。
醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不肯放,数据玩的花! 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操