問題タブ [apache-commons-lang3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
583 参照

apache-spark - Apache Commons Lang3 SerializationUtils.deserialize 使用時の java.lang.ClassNotFoundException

コードでは Apache Commons Lang3 の SerializationUtils を使用しています。

SerializationUtils.serialize()

カスタマイズされたクラスをファイルとしてディスクに保存し、

SerializationUtils.deserialize(byte[])

それらを再び復元します。

ローカル環境 (Mac OS) では、シリアライズされたファイルはすべて正常にデシリアライズでき、エラーは発生しません。しかし、これらのシリアル化されたファイルを HDFS にコピーし、Spark/Scala を使用して HDFS から読み取ると、SerializeException が発生します。

Apache Commons Lang3 のバージョンは次のとおりです。

次のような逆シリアル化コード:

スパークコードは次のとおりです。

上記のコードはすべて Spark ローカル モードで正常に実行できますが、Yarn クラスター モードで実行するとエラーが発生します。以下のようなスタック エラー:

ロードされたバイト[]の長さを確認しました。ローカルとHDFSの両方から同じです。しかし、なぜ HDFS からデシリアライズできないのでしょうか?

0 投票する
2 に答える
1156 参照

java - Apache lang3 は機能しますが、Apache lang は機能しません。なんで?

スターターの親 pom バージョン 2.0.3 でスプリング ブート プロジェクトを実装しました。使おうとすると

インポートを解決できないというエラーがスローされます。私のm2フォルダー(C:\ Users\.m2\repository\org\apache\commons)にはlangパッケージ(commons-langフォルダー)がインストールされていますが。commons-lang3 フォルダーもあります。インポートを次のように変更すると

それは正常に動作します。

他のスプリング ブート プロジェクトに同じバージョンのスターター pom があり、そこで commons.lang を使用できます。根本原因を特定できません。