【问题标题】:Embedding Pig into Python将 Pig 嵌入 Python
【发布时间】:2012-12-10 06:23:03
【问题描述】:

我试图在 Python 中嵌入一个 pig 脚本,但遇到了异常,似乎找不到问题所在。我有一个 Python 脚本,其中嵌入了 pig 脚本,并安装了 Apache PIG 0.10。我可以从 shell 运行 pig 脚本,它工作正常。当我使用命令运行从 shell 嵌入 pig 的 python 脚本时

pig -x mapreduce pythonscript.py 它给了我错误

Pig 启动前的错误 ---------------------------- 错误 2998:未处理的内部错误。 org/python/util/PythonInterpreter

java.lang.NoClassDefFoundError: org/python/util/PythonInterpreter at org.apache.pig.scripting.jython.JythonScriptEngine.main(JythonScriptEngine.java:338)

在运行 pig 命令之前,我尝试将 Jython jar 添加到 shell 的 $PIG_CLASSPATH 环境变量中。它没有帮助。

我看到其他人也遇到了这个问题,但是,有没有人找到解决方案?有什么指点吗?

【问题讨论】:

    标签: python hadoop apache-pig embedding


    【解决方案1】:

    好的。已经找到解决方案。如果您也看到此错误,那么我希望这会有所帮助。

    1) 下载了 Jython 安装程序 jar。 2) 用 java -jar 运行它 3) 指定安装位置 4) 将 Jython 可执行 shell 脚本添加到我的 PATH 环境变量中。 5) 将 jython jar 从安装文件夹复制到 HADOOP_HOME/lib 文件夹。 IE。 hadoop下的lib文件夹。

    第 5 步主要是促成交易。但这些是我遵循的步骤。似乎将 Jython jar 复制/设置为 PIG 似乎没有帮助。我在伪集群模式下运行 Hadoop,上面有 Pig。而且 Pig 似乎采用了基于 HADOOP 的 jars 而不是它自己的 lib!

    在这之后它运行起来就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多