2016-09-19 5 views
3

Ich versuche, Schwein Skripte entfernt von meiner Java-Maschine laufen zu lassen, für die ich weiter unten Code geschrieben habenFehler beim Ausführen von PigServer in Java

Code:

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 Javapig{ 
public static void main(String[] args) { 
try { 
    Properties props = new Properties(); 
    props.setProperty("fs.default.name", "hdfs://hdfs://192.168.x.xxx:8022"); 
    props.setProperty("mapred.job.tracker", "192.168.x.xxx:8021"); 

    PigServer pigServer = new PigServer(ExecType.MAPREDUCE, props); 
    runIdQuery(pigServer, "fact"); 
    } 
    catch(Exception e) { 
     System.out.println(e); 
    } 
} 
public static void runIdQuery(PigServer pigServer, String inputFile) throws IOException { 
    pigServer.registerQuery("A = load '" + inputFile + "' using org.apache.hive.hcatalog.pig.HCatLoader();"); 
    pigServer.registerQuery("B = FILTER A by category == 'Aller';"); 
    pigServer.registerQuery("DUMP B;"); 
    System.out.println("Done"); 
} 
} 

aber während der Ausführung von i unten bin immer Error.

Fehler

ERROR 4010: Cannot find hadoop configurations in classpath (neither hadoop-site.xml nor core-site.xml was found in the classpath). 

Ich weiß nicht, was ich falsch mache.

Antwort

1

Nun, selbstbeschreibende Fehler ...

weder hadoop-site.xml noch Kern-site.xml im Classpath gefunden wurde

Sie müssen diese beiden Dateien im Classpath von Ihrer Anwendung.

Sie würden idealerweise diejenigen, die aus Ihrem $HADOOP_CONF_DIR Ordner, und Sie würden sie in Ihre Java src/main/resources kopieren, vorausgesetzt, Sie haben eine Maven Struktur

Auch mit diesen Dateien, Sie lieber ein Configuration Objekt für Hadoop verwenden sollten

PigServer(ExecType execType, org.apache.hadoop.conf.Configuration conf) 
Verwandte Themen