尝试在 Hue 中运行工作流时出现 Oozie 错误

Posted

技术标签:

【中文标题】尝试在 Hue 中运行工作流时出现 Oozie 错误【英文标题】:Oozie error when trying to run a workflow in Hue 【发布时间】:2015-04-01 12:56:44 【问题描述】:

我目前无法让 Oozie 在我的 hadoop 安装中正常工作。 感谢任何输入,因为我是所有这一切的完整初学者。 我用: hadoop 2.6.0(带纱线),oozie 4.0.1,hive 1.0.0,hue 3.7.1,pig 0.12 它是我在伪分布式中运行的本地安装。 我从 tars 安装了所有内容并手动配置它,因为可悲的是从 cloudera 一键安装在 OS X 中不起作用。

据我所知,Hadoop+Hive 在 CLI 和 Hue 中似乎都可以正常工作。

Hue 的 Pig 编辑器还不能正常工作,我可以从 HDFS 访问和使用文件,但是当我尝试使用 HCatalog 访问 Hive 表时出现错误(错误 2245:无法从 loadFunc org.apache.hcatalog.pig 获取架构.HCatLoader)。

但现在更重要的是 Oozie 调度程序可以工作,但它没有。 例如,当我尝试在 Oozie 工作流程中运行 shellscript 时,我收到此错误:

无法运行程序“testscript.sh”(在目录中 “/Volumes/WS2Data/hadoop_hdfs/tmp/nm-local-dir/usercache/admin/appcache/application_1427878722813_0003/container_1427878722813_0003_01_000002”): error=2, 没有这样的文件或目录

现在我试图了解这里发生了什么:Hadoop 试图在 appcache 目录中缓存什么?剧本? (脚本本身不涉及 I/O,它只是一个简单的 shell 命令)

Afaik 缓存在这些目录中的 hadoop,而不是 Oozie,对吗?那为什么Oozie 找不到应用容器呢?我可以毫无问题地使用 Hive 运行 mapreduce 作业,如果 Hadoop 在缓存方面存在问题或配置错误,这也不起作用?

我基本上是按照这个指南http://gauravkohli.com/2014/08/26/apache-oozie-installation-on-hadoop-2-4-1/ 安装 Oozie,除了我跳过了他为不同的 hadoop 版本重新配置 pom.xml 的部分,因为没有任何 2.6.0 的存储库

我只是用 "mkdistro.sh -P hadoop-2 -DskipTests" 为 hadoop 版本 2.3.0 构建它,然后将 /libext 目录中的库替换为版本 2.6.0 中的库

之后,我将 hadoop/conf 中的 *-site.xml 文件链接到 oozies /conf/hadoop-conf 文件夹中。

Oozie 服务器已启动且响应迅速,从 Hue 运行一个使用 Oozie 的简单 Pig 脚本也可以正常工作(上述例外情况除外)。

【问题讨论】:

HCat 错误应该用github.com/cloudera/hue/commit/… 怪异的来修复。你在尝试一个有效的脚本吗?关于“testscript.sh”,您是否将其作为“文件”包含在 Shell 操作中? Oozie 需要将此文件发送到它将运行它的节点上。 我只将 testscript.sh 包含为“shell”而不是“文件”......现在将脚本包含在两者中都可以正常工作!非常感谢罗曼! 【参考方案1】:

当你创建 shell 动作时,你需要在两个地方指定你的 shell 脚本。

    Shell 命令 文件

“文件”框告诉 Oozie 将 shell 脚本复制到为作业运行创建的目录中。

【讨论】:

谢谢,我会将此标记为正确答案,即使 Romain 已经在他的评论中给出了我的问题的解决方案,因此其他人更容易看到。

以上是关于尝试在 Hue 中运行工作流时出现 Oozie 错误的主要内容,如果未能解决你的问题,请参考以下文章

运行 oozie fork 时出现 LeaseExpiredException

创建目录时出现 Oozie shell 操作问题

基于Hue和Oozie的自动化调度

在 Cloudera Hue 中为 Oozie(调用 PIG 脚本)配置正确的端口

Oozie - 运行 sqoop 时出现异常:无法加载数据库驱动程序类:com.mysql.jdbc.Driver

sqoop从hive导入数据到mysql时出现主键冲突