Run install pig from ozzie hadoop



我已经在我的系统上安装了oozie,我也安装了pig。现在我想让ozzie从安装在我系统上的pig运行工作流,而不是从ozzie sharelib。请帮忙,因为我得到以下错误:

2015-08-19 17:15:25,724  WARN PigActionExecutor:523 - SERVER[edb-node1] USER[hduser] GROUP[-] TOKEN[] APP[pig-wf] JOB[0000002-150819170943510-oozie-hdus-W] ACTION[0000002-150819170943510-oozie-hdus-W@pig-node] Launcher ERROR, reason: Main class [org.apache.oozie.action.hadoop.PigMain], exception invoking main(), java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.PigMain not found
2015-08-19 17:15:25,728  WARN PigActionExecutor:523 - SERVER[edb-node1] USER[hduser] GROUP[-] TOKEN[] APP[pig-wf] JOB[0000002-150819170943510-oozie-hdus-W] ACTION[0000002-150819170943510-oozie-hdus-W@pig-node] Launcher exception: java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.PigMain not found
java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.PigMain not found
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2074)
    at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:234)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:450)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:343)
    at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runSubtask(LocalContainerLauncher.java:370)
    at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.runTask(LocalContainerLauncher.java:295)
    at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.access$200(LocalContainerLauncher.java:181)
    at org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler$1.run(LocalContainerLauncher.java:224)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: Class org.apache.oozie.action.hadoop.PigMain not found
    at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1980)
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2072)
    ... 13 more

您得到的错误消息清楚地表明您有一个不完整的CLASSPATH。

这是因为 pig 命令行做了很多事情,其中包括在调用PigMain Java类之前在CLASSPATH中静默地设置适当的Pig jar。但是Oozie直接调用Java类;CLASSPATH问题应该被处理…

  • 由猪共享,激活时
  • 或由您(作为一名知识渊博的Java开发人员)决定——毕竟,这是您的选择不使用默认的方式来运行Pig,这样你就知道了正在做什么,对吧?

在问你的问题之前,你有没有尝试用以下关键词在StackOverflow(和/或Google)上搜索?这些结果可能是有用的。

oozie pig自定义类路径

在上述情况下,您是否检查过您是否能够访问Pig CLI {grunt shell},或者您是否能够手动运行Pig脚本,而不使用Oozie

发生的情况是Pig Jar无法访问,而你试图通过Oozie使用,最好的情况是使用Oozie - - sharelib,但正如你提到的,你不希望同样的工作使用sharedlib,然后使用一些替代情况,如:

  1. 更新Hadoop ClassPath中的Pig Home Path。这将有助于MR在每次Oozie向MR提交请求时获取HDFS Temp Location中的jar列表。

  2. 更新BashProfile中的Pig Home{如果Pig在访问GRANT Shell时显示错误并且Command not Found}

相关内容

  • 没有找到相关文章