Я пытаюсь написать интерфейс на C ++ для записи файлов в формате hdf, используя libhdfs.so. Моя целевая версия hadoop — 2.0.2-alpha
Код ниже
hdfsFS fs = hdfsConnect("127.0.0.1",8020);
if (!fs)
{
printf("Hadoop file system returned null. \n");
return 0;
}
выдает следующую ошибку при запуске:
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
Обновил CLASSPATH соответственно, но все еще получаю эту ошибку.
Есть идеи, какой шаг я здесь пропускаю? Все файлы .so связаны правильно.
Вы можете использовать следующую команду, чтобы найти путь к классу Java, необходимый для hadoop
$ hadoop classpath
И добавьте все эти пути в переменную окружения CLASSPATH
$ export CLASSPATH = $ CLASSPATH: `путь к классу hadoop`
Вот пример libhdfs для CDH4 Обратите внимание на настройки среды в exec.sh
Других решений пока нет …