1

私は次の設定をしています:

  • ハドゥープ 1.2.1
  • オラクル Java 1.7
  • Suse エンタープライズ サーバー 10 32 ビット

Pi-example をスタンドアロンモードで実行すると

bin/hadoop jar hadoop-examples-1.2.1.jar pi 10 10

その後、Javaは苦労して死ぬ、と私に言った

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGFPE (0x8) at pc=0xb7efa20b, pid=9494, tid=3070639008
#
# JRE version: Java(TM) SE Runtime Environment (7.0_40-b43) (build 1.7.0_40-b43)
# Java VM: Java HotSpot(TM) Server VM (24.0-b56 mixed mode linux-x86 )
# Problematic frame:
# C  [ld-linux.so.2+0x920b]  do_lookup_x+0xab
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /opt/hadoop-1.2.1-new/hs_err_pid9494.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

(完全なトレースはこちら)

分散セットアップでは、start-allコンポーネントを使用でき、それらは正常に動作しています。しかし、ジョブを送信すると、jobtracker が ですぐに終了しjava.io.EOFExceptionます。これは、上記と同じエラーが原因であると想定しています。

私はすでに別のコンピューターで同じ Hadoop を試しましたが、すべて問題なく (これは Arch Linux 64 ビットを実行しますが)、他の Java (OpenJDK、1.6、1.7) は役に立ちません。

助言がありますか?

4

1 に答える 1

1

おそらく、Hadoop には、別のプラットフォーム (たとえば、32 ビットではなく 64 ビット) 用にコンパイルされたネイティブ ライブラリが含まれているか、ライブラリが別の環境を想定しています。JVM_LoadLibrary()スタック トレースは、ネイティブ ライブラリをロードしようとしていることも示しています。

プラットフォームに適したバージョンの Hadoop をダウンロードしたことを確認するか、ターゲット プラットフォーム用に自分でコンパイルしてください。

于 2013-09-19T13:41:05.583 に答える