/ / Klassenpfad für MapR / Hadoop / Hive - Java, Hadoop, Mapr

Classpath für MapR / Hadoop / Hive - Java, Hadoop, Mapr

Ich versuche einen Java-Code für hadoop zu kompilierenund müssen wissen, welchen Klassenpfad ich angeben muss. Für Cloudera verwende ich das unten, aber was verwende ich für eine MapR-Installation? Überraschenderweise konnte ich nur herausfinden, wie man den Klassenpfad in Google einstellt und nicht, worauf man ihn setzt.

javac -classpath "/opt/cloudera/parcels/CDH-4.6.0-1.cdh4.6.0.p0.26/lib/hadoop/client/*" mr.java -d mr

Antworten:

0 für die Antwort № 1

Fand die Antwort durch Versuch und Irrtum. Seltsamerweise ist Google sehr still darüber und all die Bücher und Beispiele, die ich gelesen habe, scheinen davon auszugehen, dass dies zu offensichtlich ist, um das Drucken zu stören.

mkdir MyClass
javac -classpath "/opt/mapr/hadoop/hadoop-0.20.2/lib/*" MyClass.java -d MyClass
jar -cvf MyClass.jar -C MyClass .

Wenn Sie die Hive-Bibliotheken haben wollen, zB um eine Hive-UDF zu kompilieren:

javac -classpath "/opt/mapr/hadoop/hadoop-0.20.2/lib/*:/opt/mapr/hive/hive-0.12/lib/*" MyClass.java -d MyClass

EDIT: eine Sache, die ich hinzufügen würde, stellen Sie sicher, dass Sie Zitate um den Pfad setzen, sonst Linux erweitert es auf der Kommandozeile, die nicht das ist, was Sie wollen. Das * im Pfad muss an Java übergeben werden, so wie es ist.