CentOS6.9 hadoopのインストールで発生した問題
2822 ワード
Tips:手動でコンパイルしない場合は、各パッケージのバージョン対応に注意してください.勉強するなら手動コンパイルをお勧めします.
これは私がコンパイル構築の過程で発生したいくつかの問題です.記録しておきます.
1.hadoop環境を構築する際にprotobuf-3.3.0のパッケージをインストールする必要がある場合、ソースコードのコンパイル中に次のようなエラーが発生します.
コンパイル中に何が欠けているのかしか分からないが、ネット上では原因が見つからない.
そこでこのパッケージのgithubに行って探して、このパッケージのissueの中で1つの#2599が関連する解決策を見つけました.
上記のように、ソースコードのファイルを変更する必要があります.protobuf/src/google/protobuf/metadata_lite.hファイルで変更します.次のようになります.
その後、コンパイルプロセスを再実行すると、通過できます.
しかし最后にhadoopをインストールする时、protobuf-2.5.0のパッケージが必要だとヒントを与えて、私は无言で、しかしこのパッケージを再インストールする时、问题がなくて、分かりません...
2.build hadoopで、コマンドを使用します.
エラー:
このエラーがパッケージのdocファイルに現れたのを見て、stack Overflowのヒントに従って、コンパイル時にdocファイルを無視します.次のコマンドを使用します.
正しくインストールできます.
build hadoopでは,その依存パケットとの対応関係に注意する.例えば、hadoop 2をコンパイルします.5.0の場合、依存するパッケージにprotobuf-2.5.0があり、他のバージョンを使用するとエラーが発生します.
3.hadoop-2.5.0を設定したら、起動を実行します./start-all.sh,エラー:
これはhadoop-envを使ったからです.shデフォルトのhadoopプロファイルが存在するディレクトリの構成については、独自のインストールパスに基づいて再設定する必要があります.変更sh:
最後に忘れないでください.
これは私がコンパイル構築の過程で発生したいくつかの問題です.記録しておきます.
1.hadoop環境を構築する際にprotobuf-3.3.0のパッケージをインストールする必要がある場合、ソースコードのコンパイル中に次のようなエラーが発生します.
./google/protobuf/metadata.h:175: error: class
‘google::protobuf::internal::InternalMetadataWithArena’
does not have any field named ‘InternalMetadataWithArenaBase’
コンパイル中に何が欠けているのかしか分からないが、ネット上では原因が見つからない.
そこでこのパッケージのgithubに行って探して、このパッケージのissueの中で1つの#2599が関連する解決策を見つけました.
上記のように、ソースコードのファイルを変更する必要があります.protobuf/src/google/protobuf/metadata_lite.hファイルで変更します.次のようになります.
vim metadata_lite.h
replace:
explicit InternalMetadataWithArenaLite(Arena* arena)
: InternalMetadataWithArenaBase(arena) {}
with:
explicit InternalMetadataWithArenaLite(Arena* arena)
: InternalMetadataWithArenaBase(arena) {}
その後、コンパイルプロセスを再実行すると、通過できます.
#./configure
#make
#make check
#make install
しかし最后にhadoopをインストールする时、protobuf-2.5.0のパッケージが必要だとヒントを与えて、私は无言で、しかしこのパッケージを再インストールする时、问题がなくて、分かりません...
2.build hadoopで、コマンドを使用します.
mvn package -Pdist,native,docs -DskipTests -Dtar。
エラー:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-
javadoc-plugin:2.8.1:jar (module-javadocs) on project hadoop-annotations:
MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - /tmp/hadoop-2.5.0-src/hadoop-common-
project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/InterfaceStability.java:27: error: unexpected end tag:
[ERROR] *
このエラーがパッケージのdocファイルに現れたのを見て、stack Overflowのヒントに従って、コンパイル時にdocファイルを無視します.次のコマンドを使用します.
mvn package -Pdist,native,docs -DskipTests -Dtar -Dmaven.javadoc.skip=true
正しくインストールできます.
build hadoopでは,その依存パケットとの対応関係に注意する.例えば、hadoop 2をコンパイルします.5.0の場合、依存するパッケージにprotobuf-2.5.0があり、他のバージョンを使用するとエラーが発生します.
3.hadoop-2.5.0を設定したら、起動を実行します./start-all.sh,エラー:
[hadoop@hadoop1]$ ./start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Error: Cannot find configuration directory: /etc/hadoop
starting yarn daemons
Error: Cannot find configuration directory: /etc/hadoop
[hadoop@hadoop1]$ ./start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Error: Cannot find configuration directory: /etc/hadoop
starting yarn daemons
Error: Cannot find configuration directory: /etc/hadoop
これはhadoop-envを使ったからです.shデフォルトのhadoopプロファイルが存在するディレクトリの構成については、独自のインストールパスに基づいて再設定する必要があります.変更sh:
export HADOOP_CONF_DIR=/app/hadoop/hadoop-2.5.0/etc/hadoop/
最後に忘れないでください.
source hadoop-env.sh