Sto modificando una mappa hasdoop - riduci il lavoro che attualmente compila e gira bene senza le mie modifiche.Hadoop lanciando java.lang.VerifyError dopo aver esportato il file jar
Come parte del lavoro, mi collegherò a S3 per consegnare un file.
Ho sviluppato una (molto semplice) classe s3Connector, l'ho testata e l'ho eseguita in eclissi, quindi sono andata a collegarla al mio lavoro di riduzione. Per eseguire il lavoro in hadoop, devo esportare il progetto come file jar, quindi richiamarlo da hadoop. Il file jar sembra compilare ed esportare senza problemi da Eclipse, ma quando lo eseguo in hadoop, ottengo un'eccezione java.lang.VerifyError.
java.lang.VerifyError: (class: com/extrabux/services/S3Connector, method:
connectToS3 signature:()V) Incompatible argument to function
Diversi altri messaggi menzionare che ci possa essere la versione jar dipendenze che sono contrastanti, ma nella mia eclissi percorso di generazione, ho aggiunto tutti i file jar più recenti per le librerie specificate, e li spinsero verso l'alto del costruire ordine del percorso.
Questo è quanto di semplice come posso isolarlo verso il basso per:
import org.jets3t.service.impl.rest.httpclient.RestS3Service;
import org.jets3t.service.security.AWSCredentials;
public class S3Connector {
protected RestS3Service s3Service;
protected AWSCredentials awsCredentials;
public S3Connector()
{
this.awsCredentials= new AWSCredentials("my secret 1", "my secret 2");
}
public void connectToS3() throws Exception
{
this.s3Service = new RestS3Service(this.awsCredentials);
}
}
Anche questo semplice classe morirà .. Same messaggio. Non appena annoto le credenziali AWS nel costruttore e nel RestS3Service, il problema scompare. Fondamentalmente, penso che sia un qualche tipo di problema di esportazione di librerie da Eclipse, ma non sono sicuro di come trovarlo.
grazie per aver postato la risposta! salvato la mia giornata :) – vkris
Un passo avanti quando ho distribuito ad AWS, ho scoperto che Amazon hadoop utilizza la libreria 0.7.x. Speriamo che questo aiuti anche se stai usando il hadoop di Amazon. – Zak
Sto usando il servizio Amazon hadoop. Ho lo stesso problema, ma anche se ho rimosso il jets3t-0.6.0.jar in lib /, non funziona ancora. Ho visto i tuoi commenti Vuoi dire che dovremmo usare la versione 0.7.0 anziché 0.8.0? – user571470