CentOS6.9 hadoopのインストールで発生した問題

2822 ワード

Tips:手動でコンパイルしない場合は、各パッケージのバージョン対応に注意してください.勉強するなら手動コンパイルをお勧めします.
これは私がコンパイル構築の過程で発生したいくつかの問題です.記録しておきます.
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