EC2上でSparkを実行

Sparkのec2ディレクトリにある spark-ec2 スクリプトを使ってAmazon EC2上のSparkクラスタを起動、管理およびシャットダウンすることができます。それはあなたのためにクラスタ上にSparkおよびHDFSを自動的にセットアップします。このガイドはクラスタを開始ためにspark-ec2を使う方法、それらの上でジョブを実行する方法、およびそれらをシャットダウンする方法を説明します。既にAmazon Web Services サイト上でEC2アカウントのために入会していると仮定します。

spark-ec2 は複数の名前付きのクラスタを管理するように設計されています。新しいクラスタを(スクリプトにサイズと名前を渡して)起動、既存のクラスタをシャットダウン、あるいはクラスタに記録することができます。各クラスタはクラスタ名から派生した名前を持つEC2セキュリティグループにマシーンを配置することで識別されます。例えば、testという名前のクラスタはtest-masterという名前のセキュリティグループにマスターノードを持ち、test-slavesという名前のセキュリティグループにいくつかのスレーブノードを持つでしょう。spark-ec2 スクリプトはリクエストしたクラスタ名に基づいたセキュリティグループを作成するでしょう。Amazon EC2コンソール内に各クラスタに所属するマシーンを識別するためにそれらを使用することができます。

開始する前に

クラスタの起動

もっと使用方法のオプションを見るために ./spark-ec2 --help を実行することができます。以下のオプションに注意する価値があります:

VPCでクラスタを起動

アプリケーションの実行

設定

JMオプションのようなSpark設定オプションを各マシーンに設定するために、/root/spark/conf/spark-env.sh を編集することができます。このファイルは変更を反映するために 各マシーンにコピーされる必要があります。コピーするもっとも簡単な方法は copy-dirという名前の提供されているスクリプトを使うことです。まずマスター上にある spark-env.shファイルを編集し、それから全てのワーカーにそれをRSYNCするために~/spark-ec2/copy-dir /root/spark/confを実行します。

設定ガイド は利用可能な設定オプションを説明します。

クラスタの終了

EC2ノード上ではシャットダウンした後でデータを回復する方法は無いことに注意してください。停止する前に全ての重要なものをノードからコピーするようにしてください。

クラスタの一時停止および再起動

spark-ec2 スクリプトはクラスタの一時停止もサポートします。この場合、VMは停止しますが、終了しません。ですので、ephemeral ディスク上の全てのデータは失われますが、ルートディレクトリおよび永続的hdfs内のデータは維持されます。停止したマシーンはどのEC2サイクルでもコストにならないでしょうが、EBSストレージについてはコストが掛かり続けるでしょう

制限事項

それらの制限のためのパッチあるいは提案がある場合は、気軽に貢献 してください。

S3のデータへのアクセス

SparkのファイルインタフェースはHadoopのためにサポートされているURLフォーマットと同じものを使ってAmazon S3内のデータを処理することができます。s3n://<bucket>/path形式のURIを使って入力としてS3内のパスを指定することができます。S3アクセスのためのAWS認証を提供するために、スパーククラスタを--copy-aws-credentials.オプションを付けて起動します。Hadoop入力ライブラリを使ったS3アクセスの完全な説明はHadoop S3 ページで見つけることができます。

一つの入力ファイルを使うことに加えて、ディレクトリへのパスを単純に入力として指定することで、ファイルのディレクトリを使うこともできます。

TOP
inserted by FC2 system