Wenn ich MapReduce als Execution Engine hinter Hive verwende, kann ich ein alternatives Backend zu meinem defaultFS.impl verwenden. Mit ähnlicher Syntax:Wie kann ich Tez zusätzliche Bibliotheken hinzufügen, um ein anderes HDFS-Backend zu unterstützen?
LOCATION 'protocol://address:port/dir';
Ich mochte die Tez-Ausführungs-Engine anstelle von MapReduce verwenden, aber kann nicht herausfinden, wo meine Shim-Bibliotheken (JAR-Dateien) hinzuzufügen, um für Tez meines zu erkennen neues Protokoll
In welches Verzeichnis gehen diese? Muss ich der tez-site.conf Anweisungen hinzufügen?
Zusatzeingang:
Vertex failed, vertexName=Map 6,
vertexId=vertex_1504790331090_0003_1_01, diagnostics=[Vertex
vertex_1504790331090_0003_1_01 [Map 6] killed/failed due
to:ROOT_INPUT_INIT_FA
ILURE, Vertex Input: item initializer failed,
vertex=vertex_1504790331090_0003_1_01 [Map 6],
java.lang.RuntimeException: java.lang.ClassNotFoundException: Class
org.apache.
hadoop.fs.nfs.NFSv3FileSystem not found
at
org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2241)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2780)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2793)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:99)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2829)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2811)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:390)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.generateSplitsInfo(OrcInputFormat.java:1227)
at org.apache.hadoop.hive.ql.io.orc.OrcInputFormat.getSplits(OrcInputFormat.java:1285)
at org.apache.hadoop.hive.ql.io.HiveInputFormat.addSplitsForGroup(HiveInputFormat.java:307)
at org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:409)
at org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.initialize(HiveSplitGenerator.java:155)
at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:273).....
Ich habe meine NFS-Connector JAR-Dateien in/usr/hdp // hiveserver2/lib hinzugefügt und meinen Hive-Server neu gestartet. Ich habe auch den Aux-Weg hive-conf.xml:
<property>
<name>hive.aux.jars.path</name>
<value>file:///netappnfs/hadoop-nfs-connector-2.0.0.jar</value>
</property>
Ich glaube, ich brauche die Klasse zu laden, aber ich bin nicht sicher, wie so in Hive zu tun. In generic hadoop, seine beladen mit:
<name>fs.AbstractFileSystem.nfs.impl</name>
<value>org.apache.hadoop.fs.nfs.NFSv3AbstractFilesystem</value>
Gibt es eine Entsprechung für Hive?
Gibt es zusätzliche benötigt ein neues Protokoll für HDFS kompatibeles Dateisystem zu erkennen? – jscott
Ich glaube nicht, also nur Hive-Version sollte kompatibel sein. –
Ich werde meine ursprüngliche Frage mit dem Fehler, den ich noch sehe, ändern. – jscott