2016-06-29 25 views
5

Sto provando a scrivere un file su HDFS, il file viene creato ma è vuoto nel cluster, tuttavia quando eseguo il codice localmente funziona come un incantesimo.Scrittura di file su HDFS utilizzando Java

ecco il mio codice:

FSDataOutputStream recOutputWriter = null; 
FileSystem fs = null; 
try { 
    //OutputWriter = new FileWriter(outputFileName,true); 
    Configuration configuration = new Configuration(); 
    fs = FileSystem.get(configuration); 
    Path testOutFile = new Path(outputFileName); 
    recOutputWriter = fs.create(testOutFile); 

    //outputWriter = new FileWriter(outputFileName,true); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
recOutputWriter.writeBytes("======================================\n"); 
recOutputWriter.writeBytes("OK\n"); 
recOutputWriter.writeBytes("======================================\n"); 

if (recOutputWriter != null) { 
    recOutputWriter.close(); 
} 
fs.close(); 

Mi sono perso qualcosa?

+0

dati a filo? https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/fs/FSDataOutputStream.html#hflush%28%29 – Pierre

+0

@Pierre grazie per la tua risposta, anche quando scarico i dati, il file è ancora vuoto! –

+0

Qual è il valore di 'outputFileName'? e hai provato l'istanza di 'fs' e' testOutFile' come questa (con URI hdfs) http://stackoverflow.com/questions/16000840/write-a-file-in-hdfs-with-java –

risposta

1

Per scrivere i dati in un file dopo averlo creato sul cluster ho dovuto aggiungere:

System.setProperty("HADOOP_USER_NAME", "vagrant"); 

Refrence - Writing files to Hadoop HDFS using Scala

+0

Ciao posso disturbarti con alcune domande noob? Non volevo aprire una nuova discussione per qualcosa di simile. Ma come si scrive effettivamente su HDFS? C'è qualche tutorial o blog che posso seguire? Sono assolutamente principiante e sono riuscito a creare un cluster dopo 36 ore di sbattere la testa sullo schermo. Grazie! –