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.