1

我正在尝试在运行 Vista 操作系统的 Windows PC 上安装 Apache Pig,以便将其用作学习工具;我不打算在这台机器上用 Pig 做任何严肃的数据处理。-x local我想要的是单节点、单 JVM设置。

我来自 Windows 背景,所以 UNIX 对我来说是一个重要的学习曲线,但是按照在线 Apache Pig 文档Getting Started中的建议,我已经安装了 cygwin,它似乎工作正常。按照Getting Started中的建议,我在我的 cygwin 下载和安装中包含了 Perl 包,这似乎也可以正常工作 - /bin 目录包含 perl.exe,我可以访问所有 Perl 文档。

然后,我下载了 pig-0.11.1,将其解压缩tar -xzvf pig-0.11.1.tar.gz并使用了我在尝试研究 Bash 参考手册并浏览 pig shell 脚本时遇到的错误,花了几天(大部分时间都很愉快)pig -x local,我想我现在已经非常了解了. 在此脚本中调整了对 cygwin 实用程序的调用cygpath,以便找到 pig.jar 并且传递给 java.exe 的参数仍然转换cygpath为 java.exe 可以理解的形式,我得到一个咕噜声提示。但我的欢呼是短暂的。

事实上,正如 RELEASE_NOTES.txt 所描述的那样,我在下载、安装和使用开箱即用的 pig-0.7.0 时得到了相同的 grunt 提示,pig -x local根本没有对其 pig shell 脚本进行任何篡改。但不幸的是,它与 pig-0.11.1 得到的咕噜声提示相同:一个奇怪的伪咕噜声提示,其中箭头键可以将光标移动到整个提示符上,实际上是在整个屏幕上,而不是之前给出的命令美元提示符,并且返回键(前面是;)除了将光标跳到新行之外什么都不做。文本可以写入但不能输入,并且只有 ^c 和 ^\ 似乎有效 - 幸运地返回了 bash 美元提示和一点理智。

  • 在我的 pig-0.7.0 目录中,键入bin/pig -help会给出正确的读数:

    Apache Pig version 0.7.0 (r941408)<br />
    compiled May 05 2010, 11:15:55<br />
    USAGE: Pig [options] [-] : Run interactively in grunt shell.</br >
       Pig [options] -e[xecute] cmd [cmd ...] : Run cmd(s).<br />
    Pig [options] [-f[ile]] file : Run cmds found in file.
    options include: ... *etc etc*<br />
    
  • 在我的 pig-0.7.0 目录中,键入bin/pig -x local会产生以下响应:

    13/04/18 10:37:51 INFO pig.Main: Logging error messages to: C:\cygwin\home\Richard\pig_installation\pig-0.7.0\pig_1366277871311.log<br />
    2013-04-18 10:37:51,540 [main] INFO  org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: file:///<br />
    
  • 在任何目录中,由于我已将 PATH 设置为我的 pig-0.11.1/bin 目录,因此键入pig -x local会导致以下响应:

    which: no hadoop in (usr/local/bin:/cygdrive/c/Program Files ... *etc etc* .. )<br />
    2013-04-18 10:48:59,946 [main] INFO  org.apache.pig.Main - Apache Pig version 0.11.1 (r1459641) compiled Mar 22 2013, 02:13:53<br />
    2013-04-18 10:48:59,946 [main] INFO  org.apache.pig.Main - Logging error messages to: C:\cygwin\home\Richard\pig_installation\pig-0.7.0\pig_1366278539943.log<br />
    2013-04-18 10:48:59,965 [main] INFO  org.apache.pig.impl.util.Utils - Default bootup file C:\Users\Richard/.pigbootup not found<br />
    2013-04-18 10:49:01,404 [main] INFO  org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: file:///<br />
    

这是一个致命的错误还是我只是错过了一个技巧?pig-0.11.1 中的 pig shell 脚本似乎暗示如果未找到 hadoop,则 pig.jar 或 pig-?.!(*withouthadoop).jar(例如 pig-0.11.1.jar)将代替,并且文档告诉我,支持带有 cygwin 的 Windows 上的 pig(用于-x local但不支持-x mapreduce)。这个伪 grunt> 提示符是完全的海市蜃楼,还是表示部分成功?

  • 上面的后记:我按照 Apache 的 Pig 文档Getting Started中的 Pig Tutorial 部分,设置环境变量,按照说明编辑 pig-0.7.0/tutorial/build.xml 文件,运行ant命令,创建 pigtutorial .tar.gz 文件,移动它,解压它,找到 pig 脚本 1 并运行pig -x local script1-local.pig它!输出文件 - part-r-00000 - 完全不包含任何警告,只有五列记录,正如预期的那样。但是,使用 获取交互模式的新尝试会pig -x local导致相同的伪 grunt> 提示。
4

0 回答 0