2013-08-16 22 views
7

Sto provando a scrivere un'interfaccia in C++ per scrivere file in hdf usando libhdfs.so. La mia versione di destinazione Hadoop è 2.0.2-alphaScrittura di file in hdf in C++ (libhdfs)

Il codice sotto

hdfsFS fs = hdfsConnect("127.0.0.1",8020); 
if (!fs) 
{ 
    printf("Hadoop file system returned null. \n"); 
    return 0; 
} 

fornisce il seguente errore durante l'esecuzione:

Error occurred during initialization of VM 
java/lang/NoClassDefFoundError: java/lang/Object 

Aggiornato CLASSPATH di conseguenza, ma ancora ottenere questo errore. Qualche idea di quale sia il passo che mi manca qui? Tutti i file .so sono collegati correttamente.

+0

immagino che questo non abbia nulla a che fare con il codice C++. perché è coinvolto java? ovunque si trovi - è qui che si trova il problema. – jheriko

+0

Controlla la tua installazione Java, cf. http://stackoverflow.com/q/11808829 – usr1234567

+0

@jheriko Hadoop è un'applicazione java. – aalku

risposta

1

È possibile utilizzare seguente comando per trovare il classpath java necessaria per Hadoop

$ Hadoop classpath

E aggiungere tutti questi percorsi di ambiente CLASSPATH variabile

$ export CLASSPATH = $ CLASSPATH: `hadoop classpath`

Here è un esempio di libhdfs per CDH4. Si noti le impostazioni dell'ambiente in exec.sh