2016-07-15 9 views
0

Das folgende Stück Code ist Teil unseres Produktionssystems.Warum FileSystem.get() zurückgibt com.pepperdata.supervisor.agent.resource.DistributedFileSystemWrapperClassic

import com.turn.util.hadoop.ConfigurationFactory; 
import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.fs.FileSystem; 

FileSystem fs = FileSystem.get(ConfigurationFactory.newInstance().getConfiguration()); 
if (fs instanceof DistributedFileSystem) { ACTION } 

Als Oozie den Job startete. Der ACTION-Teil des Codes wurde nicht ausgeführt. Und gibt com.pepperdata.supervisor.agent.resource.DistributedFileSystemWrapperClassic zurück.

Ich habe versucht, den obigen Code mannualy durch bin/java ausführen, die gleichen Klassenpfad und Java-Eigenschaften, die ich von oozie syslog erhalten. Das Ergebnis ist org.apache.hadoop.hdfs.DistributedFileSystem.

Ich verwende hadoop-common-2.0.0-cdh4.7.1.jar und der Klassenpfad hat CDH-4.7.1-1.cdh4.7.1.p0.47/lib/hadoop-0,20-mapreduce/lib /PepperdataSupervisor.jar. und /opt/pepperdata/lib/PepperdataSupervisor.jar

Ich bin neu in Java-Ökosystem. Was ist der com.pepperdata.supervisor.agent.resource.DistributedFileSystemWrapperClassic? Warum unterscheidet sich das Ergebnis zwischen manueller Ausführung und Oozie-Start?

Vielen Dank.

Antwort

0

"Pepperdata Supervisor wird auf dem Resource Manager-Knoten (oder JobTracker) ausgeführt und kommuniziert mit Agenten, die auf jedem Datenknoten im Cluster ausgeführt werden."

com.pepperdata.supervisor.agent.resource.DistributedFileSystemWrapperClassic
erweitert
org.apache.hadoop.fs.FilterFileSystem
erweitert
org.apache.hadoop.fs.FileSystem

So bei der Verwendung von pepperdata sollten wir die zurückgegebenen fs nicht als Unterklasse testen oder einen manuellen Typcast von org.apache.hadoop.fs.DistributedFileSystem ausführen. Stattdessen sollten wir die zurückgegebenen fs direkt als org.apache.hadoop.fs.FileSystem verwenden. z.B.

FileSystem fs = FileSystem.get(ConfigurationFactory.newInstance().getConfiguration()); 
fs.exists(inputPath); 
Verwandte Themen