目录
Hue开发指南
1.Spark文件打包成一个Jar包提交Hue运行
1.1 上传Spark Jar包至HDFS文件系统
1.2.Hue中创建Spark任务
2.多jar包导入执行(依赖jar包与主程序jar包分开打包)
2.1 修改worksapce
2.2 添加程序依赖jar包
Hue开发指南
Hue是面向 Hadoop 的开源用户界面,可以让您更轻松地运行和开发 Hive 查询、管理 HDFS 中的文件、运行和开发 Pig 脚本以及管理表。
1.Spark文件打包成一个Jar包提交Hue运行
1.1 上传Spark Jar包至HDFS文件系统
上传方式不做具体介绍
1.2.Hue中创建Spark任务
打开Workflow
选择 ACTIONS
添加Spark任务,将Spark移动到Workflow
填写文件位置,与jar包名称
Files与Jar/py name 相同即可
添加完成后填写运行类名,运行参数
点击配置可设置提交方式
设置提交方式
运行Spark
运行成功,我们可以设置Schedule进行任务定时执行
2.多jar包导入执行(依赖jar包与主程序jar包分开打包)
日常开发中,把所有相关依赖jar包打成一个包,后续每次程序更新都需要更新比较大jar包,我们把自己开发的源码和相关依赖jar包单独出来,后续每次只需要更新我们自己开发的源码就可以了
2.1 修改worksapce
修改workspace,可以选择程序所在目录,程序运行时会自动读取Workspace目录下名称为 lib 的目录 的jar包,所以设置Workspace时,我们在Workspace目录下创建lib目录并把依赖的jar包放在下面就可以了,下一步的 oozie.libpath 参数可以不进行设置,(这里可以不修改,修改是为了后期查看相关配置文件比较方便)
2.2 添加程序依赖jar包
单独设置目录,添加依赖jar包 ,这里很重要依赖的jar包就从这里导入
注意的是oozie.libpath 是我们上传的依赖jar包
依赖jar包不能和oozie的系统spark jar包重复,如果重复会提示异常
org.apache.oozie.action.ActionExecutorException: JA009: cache file (mapreduce.job.cache.files) scheme: "hdfs" host: "nameservice1" port: -1 file: "/jast/spark-job/lib/chill_2.11-0.8.0.jar" conflicts with cache file (mapreduce.job.cache.files) hdfs://nameservice1/user/oozie/share/lib/lib_20180925112207/spark/chill_2.11-0.8.0.jar
oozie spark引用的系统jar包在
hdfs dfs -ls /user/oozie/share/lib/lib_20180925112207/spark
可通过以下命令对我们自己依赖jar包进行去重后,再上传到依赖jar包
#删除dir1目录重复数据 rm `diff -rs dir1 dir2 |grep '相同'|awk '{print $2}'`
选择我们程序的所有相关jar包
选择后关闭,在workflow中保存
添加spark程序
刚刚修改了Workspace 这里 Files和Jar/py name 可以直接使用相对路径,(建议还是是使用绝对路径,比较明了)
设置执行类和启动参数
保存运行。成功。
3. 加入 Schedule 任务
在workflow中选择Schedule
填写参数并设置 执行时间
注意如果上面自己指定了 oozie.libpath ,这里也要设置 oozie.libpath ,否则提示缺少jar包
所以上面如果我们自己设置Workspace目录,并把依赖传到lib目录,这里就不用设置了,他默认会去读取
保存运行
时区问题参考:https://blog.csdn.net/zhangshenghang/article/details/84540403