Ошибка компоновщика с Hadoop Pipes

Hadoop n00b здесь, только начал играть с Hadoop Pipes. Я получаю ошибки компоновщика при компиляции простого примера WordCount с использованием hadoop-0.20.203 (текущая самая последняя версия), которые не появлялись для того же кода в hadoop-0.20.2

Ошибки компоновщика вида: неопределенная ссылка на `EVP_sha1' в HadoopPipes.cc.

EVP_sha1 (и все неопределенные ссылки, которые я получаю) являются частью библиотеки openssl, которую использует HadoopPipes.cc из hadoop-0.20.203, но не использует hadoop-0.20.2.

Я попытался настроить свой make-файл для ссылки на библиотеки ssl, но мне все еще не повезло. Любые идеи очень приветствуются. Спасибо!

PS, вот мой текущий makefile:

CC = g++

HADOOP_INSTALL = /usr/local/hadoop-0.20.203.0

SSL_INSTALL = /usr/local/ssl

PLATFORM = Linux-amd64-64

CPPFLAGS = -m64 -I$(HADOOP_INSTALL)/c++/$(PLATFORM)/include -I$(SSL_INSTALL)/include

WordCount: WordCount.cc

    $(CC) $(CPPFLAGS) $< -Wall -Wextra -L$(SSL_INSTALL)/lib -lssl -lcrypto -L$(HADOOP_INSTALL)/c++/$(PLATFORM)/lib -lhadooppipes -lhadooputils -lpthread -g -O2 -o $@

Фактическую программу, которую я использую, можно найти по адресу http://cs.smith.edu/dftwiki/index.php/Hadoop_Tutorial_2.2_--_Running_C%2B%2B_Programs_on_Hadoop


person tdp2110    schedule 18.05.2011    source источник


Ответы (2)


Здесь была такая же проблема: ответ - добавить -lcrypto в командную строку компиляции:

http://grokbase.com/p/hadoop.apache.org/common-user/2011/06/re-linker-errors-with-hadoop-pipes/09zqdt5grdudu7no7q6k3gfcynpy

Вот патч для исправления процесса сборки:

diff --git src/examples/pipes/Makefile.in src/examples/pipes/Makefile.in
index 17efa2a..1d8af8e 100644
--- src/examples/pipes/Makefile.in
+++ src/examples/pipes/Makefile.in
@@ -233,7 +233,7 @@ AM_CXXFLAGS = -Wall -I$(HADOOP_UTILS_PREFIX)/include \
         -I$(HADOOP_PIPES_PREFIX)/include

LDADD = -L$(HADOOP_UTILS_PREFIX)/lib -L$(HADOOP_PIPES_PREFIX)/lib \
-      -lhadooppipes -lhadooputils
+      -lhadooppipes -lhadooputils -lcrypto


# Define the sources for each program
person Eugene Koontz    schedule 18.01.2012

Вам просто нужно внести некоторые изменения в ваш Makefile. Библиотеки, изначально сопровождающие Hadoop, похоже, этого не делают. Вам нужно будет «переделать» их и изменить связанный путь. Подробный ответ на этот вопрос можно найти по адресу http://goo.gl/y5iGZF.

person fasholaide    schedule 16.10.2014