2011-08-30 11 views
6

Ciao Sto cercando di eseguire Apache Nutch 1.2 su EMR di Amazon.
Per fare ciò, specifico una directory di input da S3. Ottengo il seguente errore:Nutch on EMR problem reading da S3

 
Fetcher: java.lang.IllegalArgumentException: 
    This file system object (hdfs://ip-11-202-55-144.ec2.internal:9000) 
    does not support access to the request path 
    's3n://crawlResults2/segments/20110823155002/crawl_fetch' 
    You possibly called FileSystem.get(conf) when you should have called 
    FileSystem.get(uri, conf) to obtain a file system supporting your path. 

ho capito la differenza tra FileSystem.get(uri, conf) e FileSystem.get(conf). Se stavo scrivendo questo io vorrei FileSystem.get(uri, conf) tuttavia sto provando ad usare il codice Nutch attuale.

ho fatto questa domanda, e qualcuno mi ha detto che avevo bisogno di modificare hadoop-site.xml per includere le seguenti proprietà: fs.default.name, fs.s3.awsAccessKeyId, fs.s3.awsSecretAccessKey. Ho aggiornato queste proprietà in core-site.xml (hadoop-site.xml non esiste), ma ciò non ha fatto la differenza. Qualcuno ha qualche altra idea? Grazie per l'aiuto.

+0

Mai usato Nutch, ma forse controlla se la risorsa che stai cercando di ottenere è pubblicamente disponibile (non danneggerà farlo solo per il test), prova anche a sostituire (di nuovo solo per il test) s3n: // - > s3: //. Immagino che dovrebbe funzionare con s3n e con creds specificati ma più test non danneggeranno – Kris

risposta

0

tenta di specificare in

hadoop-site.xml

<property> 
    <name>fs.default.name</name> 
    <value>org.apache.hadoop.fs.s3.S3FileSystem</value> 
</property> 

Ciò accennare a Nutch che per default S3 dovrebbe essere usato

Proprietà

fs.s3.awsAccessKeyId and fs.s3.awsSecretAccessKey

specifica che avete bisogno solo nel caso in cui la vostra Gli oggetti S3 sono posti sotto autenticazione (in oggetto S3 è possibile accedere a tutti gli utenti, o solo da authenticati on)