无法在ubuntu中运行pig-embbedjava程序

p8h8hvxi  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(373)

最近我对apachepig进行了研究,我正在尝试构建pig嵌入式java程序。我从一个网站上找到并复制了一个例子https://acadgild.com/blog/embedding-pig-java/)我试着在运行之前编译它。

javac pig_java.java

编译成功,没有任何错误提示。但是当我按照https://wiki.apache.org/pig/embeddedpig 并运行以下命令:

java -cp /pigjar/pig.jar pig_embbed.pig_java

它显示:

Error: Could not find or load main class pig_embbed.pig_java

以前有人遇到过这种情况吗?:'(
源代码:

package pig_embbed;

import java.util.Properties;
import org.apache.pig.ExecType;
import org.apache.pig.PigServer;

public class pig_java {
    public static void main(String[] args) {
        try { 
            PigServer pigServer = new PigServer(ExecType.MAPREDUCE); 
            runQuery(pigServer);
            Properties props = new Properties(); 
            props.setProperty("fs.default.name",
    "hdfs://<hdfs_url>:<hdfs_port>"); 
    }catch(Exception e) {
        e.printStackTrace();
        }
    }

public static void runQuery(PigServer pigServer) { 
    try {        
        pigServer.registerQuery("input1 = LOAD '/user/centos7/EA/test.txt' as (line:chararray);");       
        pigServer.registerQuery("words = foreach input1 generate FLATTEN(TOKENIZE(line)) as word;");         
        pigServer.registerQuery("word_groups = group words by word;");       
        pigServer.registerQuery("word_count = foreach word_groups generate group, COUNT(words);");       
        pigServer.registerQuery("ordered_word_count = order word_count by group desc;");         
        pigServer.registerQuery("store ordered_word_count into '/user/EA/test_output';");        
    } catch(Exception e) {       
        e.printStackTrace();         
        }        
    }
}
qq24tv8q

qq24tv8q1#

类路径错误。在linux中,以 / 是绝对的,即从根目录。我想你是说 -cp pigjar/pig.jar . 您还忘了包括当前目录 . ,其中包含您的代码;这会自动包含在类路径中,但前提是您实际上没有 -cp 争论或 CLASSPATH 环境变量。失踪者 . 是导致此错误消息的原因,但您需要两个更改:

java -cp pigjar/pig.jar:. pig_embbed.pig_java

相关问题