我遇到過兩種使用Hadoop 1.2.0的Hadoop管道編譯C++程序的方法,並且他們都沒有運氣。用hadoop管道編譯問題
方法1:
我碰到下面的鏈接:
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 [email protected]
然後我得到一個全噸未定義的引用
的/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'
方法2:
我碰到這個教程
http://wiki.apache.org/hadoop/C%2B%2BWordCount
我跑以下命令
ant -Dcompile.c++=yes examples
而來到收到以下錯誤
Buildfile: build.xml does not exist!
Build failed
我有ñ o想法我可以得到這個build.xml文件。我在hadoop的安裝文件夾中找到一個,但我不認爲這是正確的。
如果任何人有任何運氣與這些方法之一,您的意見將真正讚賞。