最近我对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();
}
}
}
1条答案
按热度按时间qq24tv8q1#
类路径错误。在linux中,以
/
是绝对的,即从根目录。我想你是说-cp pigjar/pig.jar
. 您还忘了包括当前目录.
,其中包含您的代码;这会自动包含在类路径中,但前提是您实际上没有-cp
争论或CLASSPATH
环境变量。失踪者.
是导致此错误消息的原因,但您需要两个更改: