問題:スパークと予測IO:依存関係にもかかわらず、NoClassDefFoundErrorが、既存の
私はスパーク1.6.1とPredictionIO 0.9.5を使用して予測IOプロジェクトを訓練しようとしていますが、ジョブエグゼキュータがし始めた直後に失敗しました作業。これは、スタンドアローンスパーククラスタとMesosクラスタの両方で発生します。どちらの場合も、リモートクライアントからクラスタに展開しています。つまり、pio train -- --master [master on some other server]
を実行しています。
症状:ドライバのログで
- 、まもなく最初の
[Stage 0:> (0 + 0)/2]
メッセージの後、執行が調査java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.protobuf.ProtobufUtil
に起因する死ぬ:実測
クエストのクラス
pio-assembly
瓶内のイオン:提出する際jar -tf pio-assembly-0.9.5.jar | grep ProtobufUtil org/apache/hadoop/hbase/protobuf/ProtobufUtil$1.class org/apache/hadoop/hbase/protobuf/ProtobufUtil.class
- 、このjarファイルをプロジェクトに展開されていると
pio train
に--jars pio-assembly-0.9.5.jar
を追加する - が持つユーバーjarを作成する問題が解決しない執行
- 以内に見つけることができます
pio build --clean --uber-jar
pio-assembly-0.9.5.jar
のローカルコピーに奴隷にSPARK_CLASSPATH
の設定に問題 - が解決しないことはは、問題を解決しない
私が知っている限り、SPARK_CLASSPATH
は推奨されていません。提出する際には--jars
に置き換えてください。私はむしろ廃止された機能に依存しないだろう。 pio train
または私のインフラストラクチャを呼び出すときに私が紛失しているものはありますか?エグゼキュータがドライバから依存関係をフェッチする際に欠陥(競合状態など)がありますか?