Desidero utilizzare il ragionatore Web-scale Parallel Inference Engine (WebPIE) sulla piattaforma Hadoop. Ho già implementato la struttura Hadoop con due macchine virtuali Ubuntu e funziona bene. Quando voglio utilizzare WebPie per eseguire il ragionamento su file RDF, il processo non riesce a causa della necessità del formato file di sequenza. Il WebPIE tutorial non ha menzionato nulla sul formato del file di sequenza come prerequisito per il ragionamento in Hadoop. Per produrre il formato file di sequenza ho scritto il seguente codice:Ragionamento del Web semantico in sistemi distribuiti
public static void main(String[] args) {
FileInputStream fis = null;
SequenceFile.Writer swriter = null;
try {
Configuration conf = new Configuration();
File outputDirectory = new File("output");
File inputDirectory = new File("input");
File[] files = inputDirectory.listFiles();
for (File inputFile : files) {
//Input
fis = new FileInputStream(inputFile);
byte[] content = new byte[(int) inputFile.length()];
fis.read(content);
Text key = new Text(inputFile.getName());
BytesWritable value = new BytesWritable(content);
//Output
Path outputPath = new Path(outputDirectory.getAbsolutePath()+"/"+inputFile.getName());
FileSystem hdfs = outputPath.getFileSystem(conf);
FSDataOutputStream dos = hdfs.create(outputPath);
swriter = SequenceFile.createWriter(conf, dos, Text.class,
BytesWritable.class, SequenceFile.CompressionType.BLOCK, new DefaultCodec());
swriter.append(key, value);
}
fis.close();
swriter.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
Questo codice produce corretto formato di file di sequenza con alcuni file RDF, ma non funziona in modo corretto al 100%, e talvolta produce file danneggiati. C'è qualche soluzione dall'inizio per evitare questo codice, e se non c'è, come posso migliorare questo codice per funzionare correttamente con qualsiasi file RDF come input?
Puoi dire di più sull'errore che stai incontrando. Come dici tu, l'esercitazione WebPIE non menziona Sequence Files. Puoi fare tutto quanto descritto nel tutorial come è scritto? Hai problemi con il tutorial. Il wiki Hadoop parla di [file di sequenza] (http://wiki.apache.org/hadoop/SequenceFile) e potrebbe essere una risorsa utile. –