質問

他の開発者がどのようにしてSparkプロジェクトに取り組むためにローカル環境を設定しているのか疑問に思っています。 Vagrantのようなツールを使用して「ローカル」クラスターを構成しますか?または、AWSのクラスターなど、クラウド環境にSSHをSSHすることが最も一般的ですか?おそらく、単一ノードクラスターが適切であり、ローカルでより簡単に実行できるタスクがたくさんあるでしょう。

役に立ちましたか?

解決

Sparkは、大規模な分散データセットを指摘することを目的としているため、提案するように、最も典型的なユースケースには、AWSのようなある種のクラウドシステムへの接続が含まれます。

実際、分析を目的としたデータセットがローカルシステムに適合できる場合、通常、単に純粋なPythonを使用するのと同じように分析できることがわかります。一連のローカルVMを活用しようとしている場合、メモリがかなり迅速に使い果たされ、ジョブは失敗するか、停止します。

とはいえ、Sparkのローカルなインスタンスは、開発の目的に非常に役立ちます。

私が見つけた1つの方法は、多くのファイルを備えたHDFSにディレクトリがある場合、単一のファイルを引き出し、ローカルに開発し、スパークスクリプトをクラウドシステムに移植して実行することです。 AWSを使用している場合、これは開発中に大きな料金を回避するのに非常に役立ちます。

他のヒント

個人的には、地元のプロビジョニングでVagrantを使用していません。 HDFSなしでSpark Clusterをローカルにインストールしました。これにより、仮想マシンを圧倒することなく簡単に実験して開発できます。

HDFSはローカルクラスターの要件ではなく、ローカルテストに必要な場合はシステム管理の悪夢のようなものでもあります。

Sparkは、もちろんクラウドに展開するときにポートする必要があるローカルファイルシステムで非常にうまく機能します。

それにもかかわらず、AWSプロビジョニングでVagrantを使用して、より重いテスト用のクラスターを作成できます。

注:AWSはHDFSではなくS3で動作します。 AWSのHDFSバージョンは一時的なものであり、クラスターを下に置いた場合、すべての計算を失います。永続性のために、S3に書き戻す必要があります。

ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top