【问题标题】:Linker error with Hadoop PipesHadoop 管道的链接器错误
【发布时间】:2011-05-18 22:14:54
【问题描述】:

这里是 Hadoop n00b,刚刚开始使用 Hadoop Pipes。我在使用 hadoop-0.20.203(当前最新版本)编译一个简单的 WordCount 示例时遇到链接器错误,该示例在 hadoop-0.20.2 中没有出现在相同的代码中

以下形式的链接器错误:未定义对 HadoopPipes.cc 中的“EVP_sha1”的引用。

EVP_sha1(以及我得到的所有未定义引用)是 hadoop-0.20.203 中的 HadoopPipes.cc 使用的 openssl 库的一部分,但 hadoop-0.20.2 没有。

我尝试调整我的 makefile 以链接到 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找到

【问题讨论】:

    标签: hadoop pipe linker-errors


    【解决方案1】:

    这里有同样的问题:答案是将 -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
    

    【讨论】:

      【解决方案2】:

      您只需对 Makefile 进行一些更改。原生伴随 hadoop 的库似乎没有这样做。您需要“重新制作”它们并更改链接路径。 可以在http://goo.gl/y5iGZF 找到对此的全面答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多