- Sie können auf keinen Fall Versionen der Hadoop-common-, hadoop-aws-, aws-s3-sdk- und Jackson-Versionen mit dem mischen, was alles erwartet, oder Sie werden Stacktraces sehen.
- Und es ist alles Open Source. Wenn Sie also alle Source-JARs lokal per D/L ausführen, hilft Ihnen Ihre IDE dabei, die Ursache des Stack-Trace zu finden. Das tun wir alle . Es ist keine Zauberei, moderne IDEs (intellij IDEA) haben sogar ein spezielles Stack-Debugging.
Dieser kommt herein, weil der Wert von fs.s3a.multipart.size
festgelegt in hadoop-commons /core-default.xml
Ressource ist 100M, die mit HADOOP-13680
hereinkam und die Bereichsanalyse behandelt Zahlen wie "100M" anstelle von 104857600 . Dieser Stack-Trace sagt „Hadoop 2.8+ Konfiguration“
Sie könnten versuchen, die Eigenschaft in Ihren Konfigurationen auf diesen numerischen Wert zu setzen, aber das ist ein Warnzeichen, dass Versionen von JARs nicht synchron sind, und Sie werden wahrscheinlich nur ein paar Zeilen weiterkommen, bevor etwas anderes kaputt geht.
Behebung:Stellen Sie sicher, dass hadoop-common.jar
und hadoop-aws.jar
sind synchron. Es sieht so aus, als hätten Sie Jackson und Aws in einer Reihe, obwohl Jackson so komplex ist, dass Sie das niemals als selbstverständlich ansehen können.