如何使用Hue创建Spark2的Oozie工作流(补充)
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
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工作流。
- 内容概述
- 创建shell脚本
- 创建Oozie工作流
- 作业调度测试
- 测试环境
- Spark2.1.0
- Hue3.9.0
- Oozie4.1.0
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实操
- 一条sql语句的改进探索(r5笔记第70天)
- 【专业技术】Node.js 究竟是什么?
- Github 项目推荐 | 用 Pytorch 实现的 WaveNet-Vocoder
- 重启数据库的一场闹剧(r5笔记第68天)
- 【C语言系列】基础语法案例分析(初级篇)
- 一次ORA-00600问题的排查和分析(r5笔记第64、65天)
- SpringMVC入门就这么简单
- pl/sql中的forall简单测试(r5笔记第63天)
- SpringMVC【开发Controller】详解
- 巧用外部表备份历史数据(r5笔记第62天)
- Github 项目推荐 | 最小化类 AlphaGo Zero 引擎 —— Nochi
- 半自动化运维之快速连接到指定环境(一) (r5笔记第61天)
- Spring【DAO模块】知识要点
- 浅谈exp/imp(上) (r5笔记第81天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- java计算某日期之后的日期
- 文件上传之Html5 + jQuery上传、asp.net web api接收
- Struts2自定义结果视图(servlet验证码)
- jQuery Ajax传递数组到asp.net web api参数为空
- asp.net web api集成微信服务(使用Senparc微信SDK)
- asp.net web api添加统一异常处理
- .NET HttpClient扩展
- md5和base64加密解密
- asp.net web api添加自定义认证
- 代理模式实例
- FastDFS.Client操作文件服务器
- Oracle触发器实现监控某表的CRUD操作
- asp.net web api返回图片至前端
- sql模糊匹配中%、_的处理
- Dapper关联查询