2013-04-27 2 views
6

Ich habe einen Hadoop-Cluster eingerichtet (mit der Cloudera-Distro über Cloudera Manager) und ich führe einige Hive-Abfragen mit der Hue-Schnittstelle aus, die darunter Beeswax verwendet.Aktualisieren/Löschen des DistributedCache beim Verwenden von Hue + Bienenwachs zum Ausführen von Hive-Abfragen, die benutzerdefinierte UDFs definieren?

Alle meine Abfragen laufen gut und ich habe sogar eine benutzerdefinierte UDF erfolgreich bereitgestellt.

Aber während der Bereitstellung der UDF, stieß ich auf ein sehr frustrierendes Versionierungsproblem. In der ersten Version meiner UDF-Klasse verwendete ich eine 3rd-Party-Klasse, die eine StackOverflowError verursachte.

Ich habe diesen Fehler behoben und anschließend überprüft, ob die UDF erfolgreich von der Hive-Befehlszeile bereitgestellt und verwendet werden kann.

Dann, als ich wieder zur Verwendung von Hue und Bienenwachs ging, bekam ich den gleichen Fehler. Ich könnte das nur beheben, indem ich meinen UDF-Java-Klassennamen ändere. (Von Lower bis Lower2).

Jetzt ist meine Frage, was ist der richtige Weg, um mit dieser Art von Version Probleme umzugehen?

Von dem, was ich verstehe, wenn ich Gläser mit den praktischen Formularfelder auf der linken Seite hinzufüge, werden sie zum verteilten Cache hinzugefügt. Wie kann ich den verteilten Cache aktualisieren/löschen? (Ich konnte nicht LIST JARS; usw. erhalten aus Hive/Beeswax zu laufen. Es gibt mir einen Syntaxfehler.)

+0

Haben Sie dieses Problem gelöst? – yatul

+0

Sie könnten einen Fehler in Erwägung ziehen. –

Antwort

2

Da die Klassen auf die Beeswax Server JVM geladen werden (gleiche gilt mit HiveServer1 und HiveServer2 JVMs), Bereitstellen Eine neue Version eines JARs könnte oft einen Neustart dieses Dienstes erfordern, um solche Probleme beim Laden von Klassen zu vermeiden.

Verwandte Themen