Ho problemi ad aggiungere dati a un file esistente in HDFS. Voglio che se il file esiste allora aggiungi una riga, altrimenti, crea un nuovo file con il nome dato.Aggiunta di dati a file esistenti in HDFS Java
Ecco il mio metodo per scrivere in HDFS.
if (!file.exists(path)){
file.createNewFile(path);
}
FSDataOutputStream fileOutputStream = file.append(path);
BufferedWriter br = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
br.append("Content: " + content + "\n");
br.close();
In realtà questo metodo scrive in HDFS e creare un file, ma come ho detto non è aggiungendo.
Questo è quanto ho testare il mio metodo:
RunTimeCalculationHdfsWrite.hdfsWriteFile("RunTimeParserLoaderMapperTest2", "Error message test 2.2", context, null);
Il primo param è il nome del file, la seconda il messaggio e gli altri due params non sono importanti.
Quindi qualcuno ha un'idea di ciò che mi manca o che non funziona?
Per prima cosa è necessario sapere che hdfs è un file system di scrittura una tantum. Non possiamo aggiungere o sovrascrivere in hdf. Tuttavia, possiamo leggere tutte le volte che possiamo. Si prega di consultare il libro "Hadoop: The definitive Guide" per questo. –
Qual è il tipo della variabile 'file'? – Chaos
Controlla http://www.slideshare.net/dataera/inside-hdfs-append – matanster