So ist es einfach genug, externe Gläser zu handhaben, wenn Sie Hadoop direkt verwenden. Sie haben die Option -libjars, die dies für Sie tun wird. Die Frage ist, wie Sie das mit EMR tun. Es muss einen einfachen Weg geben, es zu tun. Ich dachte -cachefile Option der CLI würde es tun, aber ich konnte es irgendwie nicht funktionieren. Irgendwelche Ideen jemand?
Danke für die Hilfe.
Das beste Glück, das ich mit externen jar-Abhängigkeiten hatte, ist, sie (über die Bootstrap-Aktion) in /home/hadoop/lib
im gesamten Cluster zu kopieren. Dieser Pfad befindet sich auf dem Klassenpfad jedes Hosts. Diese Technik scheint die einzige zu sein, die funktioniert, unabhängig davon, wo der Code lebt, der auf externe Jars zugreift (Tool, Job oder Task).
FYI für neuere Versionen von EMR / home / hadoop / lib wird nicht mehr verwendet. / usr / lib / hadoop-mapreduce sollte verwendet werden.
Tags und Links hadoop jar amazon-emr