2017-09-07 2 views
0

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?

Antwort

1

Fügen Sie die Details zu (/ etc/hive/conf) hinzu.

dh

property> 
    <name>hive.aux.jars.path</name> 
    <value>file:///location/fle.jar</value> 
</property> 

Restart hive

+0

Gibt es zusätzliche benötigt ein neues Protokoll für HDFS kompatibeles Dateisystem zu erkennen? – jscott

+0

Ich glaube nicht, also nur Hive-Version sollte kompatibel sein. –

+0

Ich werde meine ursprüngliche Frage mit dem Fehler, den ich noch sehe, ändern. – jscott

Verwandte Themen