在Hadoop环境中安装了pig工具,安装过程中碰到了一些问题,在此做一下记录:
主要安装流程参考:http://www.cnblogs.com/yanghuahui/p/3768270.html
主要碰到的问题:
由于是从直接下载的pig包,所以在mapreduce模式中会报:
Hadoop: java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected
根据步骤,需要运行:ant clean jar-all -Dhadoopversion=23重新编译,通过yum安装完ant之后,运行命令发现报错:Buildfile: build.xml
BUILD FAILED
/home/hadoop/pig-0.12.1/build.xml:720: 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/hadoop/.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: 0 seconds
而且此时,jdk环境应为ant原因已经变成Openjdk1.6。
研究Ant的官方文档,通过运行命令:
#ant -diagnostics
发现通过yum安装的ant环境,缺少了所有的的option Task,造成build.xml中使用optionTask时报错。
官方文档提示,可以通过ant -f fetch.xml -Ddest=option来安装缺少的Option Task。
但是从本地的环境中发现,缺少基本的文件fetch.xml ,造成无法运行。
因此删除原有环境
rpm -e --nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-6.1.13.4.el6_5.x86_64
rpm -e --nodeps java-1.6.0-openjdk-devel-1.6.0.0-6.1.13.4.el6_5.x86_64
rpm -e --nodeps tzdata-java-2014e-1.el6.noarch
rpm -e --nodeps java_cup-0.10k-5.el6.x86_64
rpm -e --nodeps ant-1.7.1-13.el6.x86_64
从官网下载二进制包来配置ant环境:
#tar zxvf apache-ant-1.9.4-bin.tar.gz
在环境变量中设置:
export ANT_HOME=/home/hadoop/apache-ant-1.9.4
PATH=$PATH:$ANT_HOME/bin
出处:http://www.cnblogs.com/sdjnzqr/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任