我遇到了两种使用 Hadoop 管道为 Hadoop 1.2.0 编译 c++ 程序的方法,但其中任何一种都没有运气。
方法一:
我遇到了以下链接:
http://cs.smith.edu/dftwiki/index.php/Hadoop_Tutorial_2.2_--_Running_C%2B%2B_Programs_on_Hadoop
并制作了以下Makefile
CC = g++
HADOOP_INSTALL = /home/hduser/hadoop
PLATFORM = Linux-amd64-64
CPPFLAGS = -m64 -I$(HADOOP_INSTALL)/c++/$(PLATFORM)/include
wordcount: wordcount.cpp
$(CC) $(CPPFLAGS) $< -Wall -L$(HADOOP_INSTALL)/c++/$(PLATFORM)/lib -lhadooppipes -lhadooputils -lpthread -g -O2 -o $@
然后我得到一大堆未定义的引用
/home/hduser/hadoop/c++/Linux-amd64-64/lib/libhadooppipes.a(HadoopPipes.o): In function `HadoopPipes::BinaryProtocol::createDigest(std::string&, std::string&)':
HadoopPipes.cc:(.text._ZN11HadoopPipes14BinaryProtocol12createDigestERSsS1_[_ZN11HadoopPipes14BinaryProtocol12createDigestERSsS1_]+0x31): undefined reference to `EVP_sha1'
HadoopPipes.cc:(.text._ZN11HadoopPipes14BinaryProtocol12createDigestERSsS1_[_ZN11HadoopPipes14BinaryProtocol12createDigestERSsS1_]+0x6d): undefined reference to `HMAC_Init'
HadoopPipes.cc:(.text._ZN11HadoopPipes14BinaryProtocol12createDigestERSsS1_[_ZN11HadoopPipes14BinaryProtocol12createDigestERSsS1_]+0xa6): undefined reference to `HMAC_Update'
方法二:
我遇到了这个教程
http://wiki.apache.org/hadoop/C%2B%2BWordCount
我运行了以下命令
ant -Dcompile.c++=yes examples
并得到以下错误
Buildfile: build.xml does not exist!
Build failed
我不知道在哪里可以得到这个 build.xml 文件。我在hadoop的安装文件夹中找到了一个,但我认为那不是正确的。
如果有人对这些方法中的任何一种有任何运气,您的意见将不胜感激。