我正在尝试从JAVA启动一个 pig 脚本。这是我的代码:

import java.io.IOException;
import java.util.Properties;
import org.apache.pig.ExecType;
import org.apache.pig.PigServer;
import org.apache.pig.backend.executionengine.ExecException;


public class pigCV {


public static void main(String args[]){

    PigServer pigServer;
    try {

        Properties props = new Properties();
        props.setProperty("fs.default.name", "hdfs://hdfs://localhost:8022");
        props.setProperty("mapred.job.tracker", "localhost:8021");

        pigServer = new PigServer(ExecType.MAPREDUCE, props);

        pigServer.registerScript("Desktop/text_v3.pig");

    }
    catch (ExecException e) {   e.printStackTrace(); }
    catch (IOException e) { e.printStackTrace(); }

}


}

但是抛出了一些异常:



你有什么主意要帮我吗?

谢谢。

最佳答案

您的类路径中可能有一个(旧的)Xerces实现。
尝试设定

-Djavax.xml.parsers.DocumentBuilderFactory=
   com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl

(在Eclipse:VM参数中)或在代码中:
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
  "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");

备注:fs.default.name中可能有一个错字:不是hdfs://localhost:8022而不是hdfs://hdfs://localhost:8022吗?

10-01 21:42