在Hadoop 2.x中运行C++代码



我已经在 CentOS VM 中安装了 hadoop 2.5.2。我对 hadoop 很陌生,正在尝试根据教程在 hadoop 2.x 中执行 c++ 代码

我看到在Hadoop 2.x版本中,没有文件夹(HADOOP_INSTALL)/c++/$(PLATFORM)/。我看到$(HADOOP_INSTALL)/include下有包含和库文件,如hadoopipes.a $HADOOP_INSTALL/lib/native/libhadooppipes.a等。我像这样调整了我的制作文件:

 CC = g++
    HADOOP_INSTALL = /usr/local/hadoop
    CPPFLAGS = -m32 -I$(HADOOP_INSTALL)/include
    wordcount: WordCount.cpp
        $(CC) $(CPPFLAGS) $< -Wall -L$(HADOOP_INSTALL)/lib/native -lhadooppipes 
        -lhadooputils -lpthread -g -O2 -o $@
and changed in code ( rest of code is same as in the link above )
      #include "Pipes.hh" 
      #include "TemplateFactory.hh" 
      #include "StringUtils.hh"
when I compile I get
    $ make wordcount
    g++ -m32 -I/usr/local/hadoop/include WordCount.cpp -Wall -L/usr/local/hadoop/lib/native -lhadooppipes 
        -lhadooputils -lpthread -g -O2 -o wordcount
    /usr/bin/ld: skipping incompatible /usr/local/hadoop/lib/native/libhadooppipes.a when searching for -lhadooppipes
    /usr/bin/ld: cannot find -lhadooppipes
    collect2: ld returned 1 exit status

谁能给出有关如何在 hadoop 2.x 上编译 c++ 的指示。 (不过我可以在 hadoop 1.x 中执行 c++ 程序。我感兴趣的是,如何在Hadoop2.x中使用Hadoop管道执行c ++程序)提前致谢

问题

如何通过链接到 hadoop 存档来编译 32 位二进制文件(文件 格式 ELF64-x86-64 体系结构:i386:x86-64)。请指教

:为此,您需要多库。如果它已经安装在 Ubuntu 14.04 或 Arch Linux 上,则必须在 64 位系统上启用 32 位应用程序。

例如,正如该消息来源所说——

启用 multilib 存储库允许用户运行和构建 64 位 Arch Linux 安装上的 32 位应用程序。多库 创建一个包含 32 位指令集库的目录 /usr/lib32/,32 位二进制应用程序在执行时可能需要。

否则,您必须安装 multilib -

sudo apt-get install gcc-multilib

sudo apt-get install ia32-libs-dev

此链接也可以提供帮助。谷歌更多关于多库支持。

相关内容

  • 没有找到相关文章

最新更新