Próbuję zainstalować Apache Hawq do mojego węzła. Odnosi się do Apache Hawq Wiki Strona (https://cwiki.apache.org / Konfuction / Display / Hawq / Build + i + Zainstaluj) i pomyślnie zakończył wszystkie wymagane moduły zależne, w tym Hadoop, Boost, Thrift itp.

A następujący krok jest zainstalowanie Apache Hawq i poniżej są polecenia.

git clone https://git-wip-us.apache.org/repos/asf/incubator-hawq.git

# The code directory is incubator-hawq.
CODE_BASE=`pwd`/incubator-hawq

cd $CODE_BASE

# Run command to generate makefile.
./configure

make -j8

# Install HAWQ
make install

Jednak kiedy biegałem ./configure i dostałem błąd mówiąc ..

.....
checking for snappy-c.h... yes
checking for library containing snappy_max_compressed_length... -lsnappy
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking thrift/protocol/TBinaryProtocol.h usability... no
checking thrift/protocol/TBinaryProtocol.h presence... no
checking for thrift/protocol/TBinaryProtocol.h... no
configure: error: thrift is required

Chociaż zainstalowałem i skompilowałem oszczędność za pomocą configure && make && make install, polecenie Shell nie może znaleźć biblioteki oszczędnościowej.

Więc wpisałem find \ -name 'TBinaryProtocol.h*', aby znaleźć lokalizację, w której zainstalowano moduły dotyczące oszczędności. I dostałem poniższą wiadomość.

[root@hawq1 incubator-hawq]# find / -name 'TBinaryProtocol.h*'
/usr/local/include/thrift/protocol/TBinaryProtocol.h
/root/Downloads/thrift-0.9.1/lib/cpp/src/thrift/protocol/TBinaryProtocol.h
/root/Downloads/thrift-0.9.1/lib/cocoa/src/protocol/TBinaryProtocol.h
/root/Downloads/hawq/thrift-0.9.1/lib/cpp/src/thrift/protocol/TBinaryProtocol.h
/root/Downloads/hawq/thrift-0.9.1/lib/cocoa/src/protocol/TBinaryProtocol.h

Oznacza to, że mam moduły oszczędnościowe i myślę, że są odpowiednio zainstalowane w moim katalogu. I poszedłem za instrukcją sugerowaną przez stronę Wiki Apache, wpisując ldconfig -p /root/Downloads/hawq/thrift-0.9.1/lib/.

Ale mam ten sam błąd. I wreszcie przeszukałem plik Configure.log i znalazłem poniższą wiadomość, wskazując, że nie można znaleźć lokalizacji modułów oszczędnościowych.

configure:10377: checking thrift/protocol/TBinaryProtocol.h usability
configure:10377: g++ -c -g -O2  -D_GNU_SOURCE  conftest.cpp >&5
conftest.cpp:76:45: fatal error: thrift/protocol/TBinaryProtocol.h: No such file or directory
 #include <thrift/protocol/TBinaryProtocol.h>

Jak rozwiązać ten problem? Każda pomoc będzie bardzo mile widziana.

0
sclee1 17 luty 2017, 13:27

2 odpowiedzi

Najlepsza odpowiedź

Nie sądzę, żeby ścieżka instalacji oszczędnościowej jest /root/Downloads/hawq/thrift-0.9.1/lib/. Czy możesz spróbować /usr/local/include/thrift?

1
stanly 19 luty 2017, 16:24

Może możesz spróbować zainstalować oszczędność za pomocą mniatu.

-1
Kai Guo 18 luty 2017, 10:30