Pig错误:无法找到或加载主类org.apache.pig.Main

可能

我是PIG的初学者。

我在WIKI之后编写了一个程序,将文件中的单词转换为大写。

--cat UPPER.java

package com.bigdata.myUdf;

import java.io.IOException;
import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
import org.apache.pig.impl.util.WrappedIOException;

public class UPPER extends EvalFunc<String> {

public String exec(Tuple input) throws IOException {
    if (input == null || input.size() == 0)
    return null;
    try{
    String str = (String)input.get(0);
    return str.toUpperCase();
    }catch(Exception e){
    throw WrappedIOException.wrap("Caught exception processing input row ", e);
    }
    }

}

-猫/home/hduser/lab/mydata/myscript.pig

REGISTER /home/hduser/software/myUdfs/UPPER.jar
std_det = LOAD '/pigdata/udf1.txt' USING PigStorage(',') as (name:chararray);
B = FOREACH std_det GENERATE com.bigdata.myUdf.UPPER(name);
dump B;

但是,当我运行它时,我得到了错误。

 java -cp com.bigdata.myUdf.UPPER.jar org.apache.pig.Main -x local /home/hduser/lab/mydata/myscript.pig

错误

Error: Could not find or load main class org.apache.pig.Main

猫.bashrc

export PIG_INSTALL=/home/hduser/software/pig
export PATH="${PATH}:${PIG_INSTALL}/bin"
export PIG_CLASSPATH=$HADOOP_CONF_DIR:${PIG_INSTALL}:.
export CLASSPATH=.:${PIG_CLASSPATH}

猪脚本位于:/home/hduser/lab/mydata/myscript.pig

该JAR文件位于:/home/hduser/software/myUdfs/UPPER.jar

请帮助我了解我在做什么错。提前致谢。在遵循Shivashakti的指示之后。该程序已运行,但未提供任何输出。

 pig -x local myScript.pig

 15/01/05 04:47:57 INFO pig.ExecTypeProvider: Trying ExecType : LOCAL
15/01/05 04:47:57 INFO pig.ExecTypeProvider: Picked LOCAL as the ExecType
2015-01-05 04:47:57,920 [main] INFO  org.apache.pig.Main - Apache Pig version 0.14.0 (r1640057) compiled Nov 16 2014, 18:02:05
2015-01-05 04:47:57,921 [main] INFO  org.apache.pig.Main - Logging error messages to:       /home/hduser/lab/piglog/pig_1420462077918.log
2015-01-05 04:47:57,959 [main] INFO  org.apache.hadoop.conf.Configuration.deprecation - user.name is deprecated. Instead, use mapreduce.job.user.name
2015-01-05 04:47:58,314 [main] INFO  org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS
2015-01-05 04:47:58,315 [main] INFO  org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address
2015-01-05 04:47:58,318 [main] INFO  org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at:   file:///
2015-01-05 04:47:58,463 [main] INFO  org.apache.hadoop.conf.Configuration.deprecation -   fs.default.name is deprecated. Instead, use fs.defaultFS
2015-01-05 04:47:59,070 [main] INFO  org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS
2015-01-05 04:47:59,227 [main] INFO  org.apache.pig.Main - Pig script completed in 2 seconds and 505 milliseconds (2505 ms)
锡瓦萨克(Sivasakthi jayaraman)

您可以按照以下步骤进行吗?

1.从以下链接下载3个jar文件(pig-0.11.1.jar,hadoop-common-0.21.0.jar和piggybank.jar)

http://www.java2s.com/Code/Jar/p/Downloadpig0111jar.htm
http://www.java2s.com/Code/Jar/h/Downloadhadoopcommon0210jar.htm
http://www.java2s.com/Code/Jar/p/Downloadpiggybankjar.htm

2.将上述3个jar文件全部设置为您的类路径

export CLASSPATH=/tmp/pig-0.11.1.jar:/tmp/hadoop-common-0.21.0.jar:/tmp/piggybank.jar

3.从当前目录创建目录名称“ com / bigdata / myUdf /”

>>mkdir -p com/bigdata/myUdf/

4.编译UPPER.java文件,并确保正确设置JAVA_HOME,并且上述所有三个jar文件都包含在类路径中,否则将出现编译问题

>>javac UPPER.java

5.将已编译的UPPER.class文件移至“ com / bigdata / myUdf /”文件夹

>>mv UPPER.class com/bigdata/myUdf/

6.创建一个jar文件名UPPER.jar

>>jar -cvf UPPER.jar com/

7.现在将UPPER.jar包含在您的Pig脚本中,并运行以下命令

   >>pig -x local myscript.pig 

一旦运行了上面的命令,您将获得实际的输出。

输入示例

hello
world

myscript.pig

REGISTER UPPER.jar; 
std_det = LOAD 'input' USING PigStorage(',') as (name:chararray);
B = FOREACH std_det GENERATE com.bigdata.myUdf.UPPER(name);
dump B;

输出:

(HELLO)
(WORLD)

示例命令:

$ ls
UPPER.java      input   myscript.pig

$ mkdir -p com/bigdata/myUdf/
$ javac UPPER.java
$ mv UPPER.class com/bigdata/myUdf/
$ jar -cvf UPPER.jar com/
$ pig -x local myscript.pig 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Apache Pig错误-无法跟踪

来自分类Dev

Apache PIG,JSON加载程序

来自分类Dev

Apache Pig,编程问题

来自分类Dev

Apache Pig GROUP BY,ORDER BY

来自分类Dev

Pig错误:未处理的内部错误。找到了接口org.apache.hadoop.mapreduce.TaskAttemptContext,但是需要使用类

来自分类Dev

错误org.apache.pig.tools.grunt.Grunt-错误1000

来自分类Dev

Pig AvroStorage +记录中不受支持的类型:类org.apache.pig.data.DataByteArray

来自分类Dev

Apache Pig UDF解析问题

来自分类Dev

Apache Pig中的“ substr”语句

来自分类Dev

Apache Pig条件foreach生成

来自分类Dev

Apache Pig Rank函数的用法

来自分类Dev

Apache Pig转义列名称

来自分类Dev

从时间戳至今的Apache Pig

来自分类Dev

在 Apache Pig 中过滤数据

来自分类Dev

使用 Apache Pig 过滤日期

来自分类Dev

Apache Pig-说明命令错误

来自分类Dev

如何解决以下Apache Pig错误?

来自分类Dev

Apache Pig-说明命令错误

来自分类Dev

错误1070 Apache Pig,使用内置UDF

来自分类Dev

如何解决以下Apache Pig错误?

来自分类Dev

错误1070:无法使用导入来解析Pigstorage:[,java.lang。,org.apache.pig.builtin。,org.apache.pig.impl.builtin。]

来自分类Dev

apache Pig查询在Pig Latin中花费的Cpu时间

来自分类Dev

Derby错误:无法找到或加载主类org.apache.derby.drda.NetworkServerControl

来自分类Dev

Apache Pig关于排序前n个

来自分类Dev

在Apache Pig中使用Python UDF

来自分类Dev

用Apache Pig递归列出目录

来自分类Dev

Apache PIG中的超前/滞后功能

来自分类Dev

在哪里贡献Apache Pig UDF?

来自分类Dev

Getting incorrect values from JsonLoader Apache Pig