2014-10-10 3 views
5

Der Versuch, Hadoop aus Quellen unter Windows 7 x64 zu bauen. Nach Anleitung Hadoop2OnWindows und BUILDINGWie bauen Hadoop-Quellen unter Windows?

I hadoop Quellen aus git geklonten Kasse origin/branch-2.5 (SHA-1: fa3bb675a728105d69614f53abe4339958550adf) Dann von Windows-Konsole I laufen:

  1. set Platform=x64
  2. clean install -Pdist,native-win -DskipTests -Dtar

Und erhalten Fehler - [ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.5.0-SNAPSHOT:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: 'protoc --version' did not return a version -> [Help 1]

Irgendwelche Ideen, wie man das löst?

Antwort

0

Es scheint, dass Sie den protoc Compiler vermissen.

Sie können die 2.5.0 binär von here

herunterladen und installieren Dann können Sie HADOOP_PROTOC_PATH auf das Installationsverzeichnis zu verweisen.

+0

zu bauen protobuf auf Mac/OS X Download: https: //protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2 Kompilierung Protokollpuffer mit Klirren/libC++: tar xfvj protobuf-2.5.0.tar.bz2 cd protobuf-2.5.0 configure CC = Klirren CXX = clang ++ CXXFLAGS = '- std = C++ 11 -stdlib = libC++ -O3 -g' LDFLAGS = '- stdlib = libC++' LIBS = "- lC++ -lC++ abi" make -j 4 sudo make install Siehe https://wiki.ripple.com/OSX_Build_Instructions – amar

6

Das erste, was die Protoc mojo des Hadoop-Maven-Plugins ist nicht nutzt java.lang.Process Klasse Java um zu versuchen, den folgenden Befehl auszuführen:

protoc --version 

Im Grunde ist es das, dass die Version von überprüfen tun Der Protocol Buffer Compiler (Protokoll) auf Ihrem System entspricht der Version protobuf JAR.

Es gibt 4 Ergebnisse für diesen:

  • es nicht den protoc Befehl auszuführen finden kann (es erhält einen Exit-Wert von 127)
  • es nicht nicht den Ausgang Wert von 127 erhalten , sondern erhält auch eine Version Wert
  • eine Version nicht zurückgegeben wird zurückgegeben, sondern die des protobuf jar
  • eine Version zurückgegeben wird, und es ist, dass der protobuf jar nicht
  • 012 entspricht entspricht

Sie erleben die 2. Ausgabe.

Wenn Sie versuchen, protoc --version von der Befehlszeile ausgeführt wird, funktioniert es? Wenn sie in ihrem System mehrere Versionen von protoc in Ihrem System haben, können Sie in Ihrer Build-Shell die Umgebungsvariable HADOOP_PROTOC_PATH so einstellen, dass sie auf diejenige verweist, die Sie für die Hadoop-Erstellung verwenden möchten. Wenn Sie diese Umgebungsvariable nicht definieren, wird protoc im PATH nachgeschlagen. Ist es auf Ihrem PATH verfügbar?

Wenn Sie nicht das Protokoll Buffer-Compiler installiert haben Sie es unter der folgenden Adresse heruntergeladen werden: https://developers.google.com/protocol-buffers/docs/downloads