質問
Maven を使用して Spark プログラム パッケージをコンパイルすると、
jar パッケージの作成に最大 3 分かかる、
jar パッケージのサイズが 200 MB を超える、依存関係が多い場合は、次のような状況が発生することがあります。しかも
会社は仏教系なので、ネット上ではお茶を飲みながら人生や理想を語ることしかできません。
解決
これを解決するには次の手順を使用できます。
- HDFS にディレクトリを作成し、プログラムが依存する jar パッケージをキャッシュします。このディレクトリ内のファイルが正常に読み取れるように、ここでのアクセス許可の問題に注意してください。
hadoop fs -mkdir /user/spark/spark-libs
- すべての Spark 関連の jar パッケージと開発に使用される可能性のある jar パッケージをこのディレクトリにアップロードします。これは、jar が統合済みの CDH です。Apache 版の場合は、各 Hadoop コンポーネントのインストール ディレクトリにアップロードできます. このディレクトリに関連する jar パッケージ
hadoop fs -put -f /opt/cloudera/parcels/CDH-5.13.2-1.cdh5.13.2.p0.3/jars/* /user/spark/spark-libs
- Spark jar HDFS パスを構成します。Apache バージョンの場合は、spark-defalults.conf 設定を変更します:
spark.yarn.jars=hdfs://dn15:9000/user/spark/spark-libs/
配布構成。CDH バージョンの場合、次の構成を変更します。
- pom.xml ファイルを変更し、指定された属性をすべての依存関係に追加します。
- 次のコマンド ライン メソッドを使用して、すばやくパッケージ化します。Maven 環境変数を構成する必要があります。クリックして完了することもできます。
最終結果
パッケージ化時間は 43 秒、
jar パッケージのサイズは 275KB です。アップロード時間は言うまでもなく、
注記:
- その後、新しい依存関係を導入するには、対応する jar パッケージを /user/spark/spark-libs にアップロードする必要があります。アップロードしないと、対応する jar パッケージが見つかりません。
- パッケージ化にsbtを使用することもできます
- いいねを忘れずに