Hadoop: как скомпилировать libhdfs.so ?

#c #ant #hadoop

#c #ant #hadoop

Вопрос:

Мы используем Hadoop через API Hadoop C / C (libhdfs.so ). Мы используем последнюю стабильную версию Hadoop, которая равна 0.20.203. К сожалению, нет четких (и актуальных) инструкций по сборке libhdfs.so . Когда я пытаюсь собрать Hadoop с помощью ant, происходит сбой и не создается libhdfs.so библиотека.

Пытался использовать следующее:

 ant -Dcompile.c  =true -Dlibhdfs=true compile-c  -libhdfs
  

Похоже, сбой в строке 1761 из build.xml . В этой строке находится следующий xml:

 <exec executable="${c  .libhdfs.src}/configure" dir="${build.c  .libhdfs}"
          failonerror="yes">
  

Есть ли у кого-нибудь инструкции по сборке libhdfs.so в Ubuntu 64bit 10.10?

Комментарии:

1. существует ли configure и имеет ли он право на исполняемый файл для текущего пользователя?

Ответ №1:

Я нашел решение своей проблемы. Произошел сбой, потому что настройка уже была выполнена, и мне нужно было выполнить «make dist clean» в каталоге «src / c / libhdfs» перед сборкой библиотеки. Теперь он работает, как ожидалось, используя:

 ant -Dcompile.c  =true -Dlibhdfs=true compile-c  -libhdfs
  

Ответ №2:

Если вы работаете над hadoop-2.7.2, вы можете использовать cmake в hadoop / hadoop-hdfs-project /hadoop-hdfs/src:

cmake -DJAVA_HOME=<your_jdk_path> -DGENERATED_JAVAH=<your_jdk_path> -DJAVA_JVM_LIBRARY=<your_jdk_path/jre/lib/amd64/server/libjvm.so> -DJAVA_INCLUDE_PATH=<your_jdk_path/include> -DJAVA_INCLUDE_PATH=<your_jdk_path/include/linux>

Затем он сгенерирует makefile для вас. Затем вы делаете: make

Комментарии:

1. Не могли бы вы указать, как это связано с решением, которое OP предоставил сам более 4 лет назад 😉 может быть, почему это лучше, если это так. Утверждается, что достаточно сделать dist чистым … почему cmake должен быть «лучше». Спасибо.