Pig

15次阅读
没有评论

这篇文章将为大家详细讲解有关 Pig-0.13.0 如何编译,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1、下载 pig 到本地目录,运行 ant。

[wukong@bd23 pig-0.13.0]$ ant clean jar-withouthadoop -Dhadoopversion=23
Buildfile: build.xml
BUILD FAILED
/home/wukong/usr/pig-0.13.0/build.xml:750: Problem: failed to create task or type scriptdef
Cause: the class org.apache.tools.ant.taskdefs.optional.script.ScriptDef was not found.
 This looks like one of Ant s optional components.
Action: Check that the appropriate optional JAR exists in
 -/usr/share/ant/lib
 -/home/wukong/.ant/lib
 -a directory added on the command line with the -lib argument
Do not panic, this is a common problem.
The commonest cause is a missing JAR.
This is not a bug; it is a configuration problem
Total time: 1 second

2、失败的原因是 centos 自带的 ant 功能不全(这一步的 ant 报错可参考 Hadoop 集群中 pig 工具的安装过程记录)。解决办法是自行安装 ant 最新版本(这里安装的是 ant-1.9.4)并配置环境变量。以下是参考配置方法

[wukong@bd23 apache-ant-1.9.4]$ pwd
/usr/local/apache-ant-1.9.4
[wukong@bd23 apache-ant-1.9.4]$ vim /etc/profile
......
export JAVA_HOME=/usr/local/jdk1.7.0_65
export ANT_HOME=/usr/local/apache-ant-1.9.4
export MAVEN_HOME=/usr/local/apache-maven-3.2.2
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$MAVEN_HOME/bin:$PATH

3、安装配置并 source 配置文件后,再次运行 ant。经过大概一套煎饼果子加一碗豆腐脑的功夫,基本上就运行结束了。然后你会发现还是不对。。。

[wukong@bd23 pig-0.13.0]$ ant clean jar-withouthadoop -Dhadoopversion=23
...... 
[ivy:resolve] http://repository.jboss.com/nexus/content/groups/public/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.zip
[ivy:resolve] ==== apache-snapshots: tried
[ivy:resolve] http://repository.apache.org/content/groups/snapshots-group/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.zip
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: UNRESOLVED DEPENDENCIES ::
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: com.sun.jersey#jersey-bundle;1.8: not found
[ivy:resolve] :: com.sun.jersey#jersey-server;1.8: not found
[ivy:resolve] :: com.sun.jersey.contribs#jersey-guice;1.8: configuration not found in com.sun.jersey.contribs#jersey-guice;1.8:  master . It was required from org.apache.pig#pig;0.13.1-SNAPSHOT hadoop23
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: FAILED DOWNLOADS ::
[ivy:resolve] :: ^ see resolution messages for details ^ ::
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: org.mortbay.jetty#jetty;6.1.26!jetty.zip
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :::: ERRORS
[ivy:resolve] SERVER ERROR: Connection timed out url=http://repo2.maven.org/maven2/xmlenc/xmlenc/0.52/xmlenc-0.52-sources.jar
[ivy:resolve] SERVER ERROR: Connection timed out url=http://repo2.maven.org/maven2/xmlenc/xmlenc/0.52/xmlenc-0.52-src.jar
[ivy:resolve] SERVER ERROR: Connection timed out url=http://repo2.maven.org/maven2/xmlenc/xmlenc/0.52/xmlenc-0.52-javadoc.jar
[ivy:resolve] SERVER ERROR: Connection timed out url=http://repo2.maven.org/maven2/com/sun/jersey/jersey-bundle/1.8/jersey-bundle-1.8.pom
[ivy:resolve] SERVER ERROR: Connection timed out url=http://repo2.maven.org/maven2/com/sun/jersey/jersey-bundle/1.8/jersey-bundle-1.8.jar
[ivy:resolve] SERVER ERROR: Backend is unhealthy url=http://repo2.maven.org/maven2/com/sun/jersey/jersey-server/1.8/jersey-server-1.8.pom
[ivy:resolve] SERVER ERROR: Connection timed out url=http://repo2.maven.org/maven2/com/sun/jersey/jersey-server/1.8/jersey-server-1.8.jar
[ivy:resolve] SERVER ERROR: Connection timed out url=http://repo2.maven.org/maven2/com/sun/jersey/contribs/jersey-guice/1.8/jersey-guice-1.8.pom
[ivy:resolve] 
[ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
BUILD FAILED
/home/wukong/usr/pig-0.13.0/build.xml:1599: impossible to resolve dependencies:
 resolve failed - see output for details
Total time: 13 minutes 25 seconds

4、导致以上问题的原因是下载 jersey-1.8 和 jetty-6.1.26 失败。所以要下载并且导入 maven。导入命令如下

mvn install:install-file -Dfile= 外部包的路径  \
 -DgroupId= 外部包的 groupId \
 -DartifactId= 外部包的 artifactId \
 -Dversion= 外部包的版本号  \
 -Dpackaging=jar
[wukong@bd23 pig-0.13.0]$ mvn install:install-file -Dfile=/home/wukong/res/jersey-archive-1.18.zip -DgroupId=com.sun.jersey -DartifactId=jersey-core -Dversion=1.8 -Dpackaging=zip
[wukong@bd23 pig-0.13.0]$ mvn install:install-file -Dfile=/home/wukong/res/jetty-6.1.26.zip -DgroupId=org.mortbay.jetty -DartifactId=jetty -Dversion=6.1.26 -Dpackaging=zip

5、导入后再次编译,发现还是不行。真泥马坑爹。。

[ivy:resolve] :: problems summary ::
[ivy:resolve] :::: WARNINGS
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: UNRESOLVED DEPENDENCIES ::
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] :: com.sun.jersey.contribs#jersey-guice;1.8: configuration not found in com.sun.jersey.contribs#jersey-guice;1.8:  master . It was required from org.apache.pig#pig;0.13.1-SNAPSHOT hadoop23
[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:resolve] 
[ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
BUILD FAILED
/home/wukong/usr/pig-0.13.0/build.xml:1599: impossible to resolve dependencies:
 resolve failed - see output for details

6、然后再在 maven 中安装 jersey-guice-1.8

[wukong@bd23 pig-0.13.0]$ mvn install:install-file -Dfile=/home/wukong/res/jersey-guice-1.8.jar -DgroupId=com.sun.jersey.contribs -DartifactId=jersey-guice -Dversion=1.8 -Dpackaging=jar

7、再次用 ant build pig。终于过了!

关于“Pig-0.13.0 如何编译”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。