Apache Spark™ FAQ

Spark は Apache Hadoop とどのように関係していますか?

Spark は、Hadoop データと互換性のある、高速で汎用的な処理エンジンです。YARN または Spark のスタンドアロンモードを通じて Hadoop クラスターで実行でき、HDFS、HBase、Cassandra、Hive、および任意の Hadoop InputFormat のデータを処理できます。バッチ処理(MapReduce に似ています)と、ストリーミング、インタラクティブクエリ、機械学習などの新しいワークロードの両方を実行できるように設計されています。

本番環境で Spark を使用しているのは誰ですか?

2016 年現在、調査によると 1,000 を超える組織が本番環境で Spark を使用しています。その一部は Powered By ページ および Spark Summit で紹介されています。

Spark はどのくらいの規模のクラスターにスケールできますか?

多くの組織では、数千ノードのクラスターで Spark を実行しています。私たちが知っている最大のクラスターは 8,000 ノードです。データサイズに関しては、Spark はペタバイト規模のデータでもうまく機能することが示されています。100 TB のデータを、1/10 のマシンで Hadoop MapReduce より 3 倍高速にソートして 2014 Daytona GraySort Benchmark を制覇したほか、1 PB のソートにも使用されました。いくつかの本番ワークロードでは、Spark を使用して PB 規模のデータに対して ETL およびデータ分析を実行しています。

Spark を使用するために、私のデータはメモリに収まる必要がありますか?

いいえ。Spark のオペレーターは、メモリに収まらないデータをディスクにスピルするため、あらゆるサイズのデータでうまく実行できます。同様に、メモリに収まらないキャッシュされたデータセットは、RDD の ストレージレベルで決定されたとおり、ディスクにスピルされるか、必要に応じてオンザフライで再計算されます。

クラスターで Spark を実行するにはどうすればよいですか?

各ノードに Java がインストールされていればよい スタンドアロンデプロイモード、または Mesos および YARN クラスターマネージャーのいずれかを使用できます。Amazon EC2 で実行したい場合は、AMPLab がクラスターを自動的に起動するための EC2 スクリプトを提供しています。

特別なセットアップなしで Spark をローカル(おそらく複数のコアで)実行することもできます。マスター URL として `local[N]` を渡すだけで、`N` は希望する並列スレッド数です。

Spark を実行するために Hadoop が必要ですか?

いいえ。ただし、クラスターで実行する場合は、何らかの共有ファイルシステム(たとえば、各ノードで同じパスにマウントされた NFS)が必要になります。このタイプのファイルシステムがある場合は、スタンドアロンモードで Spark をデプロイするだけです。

Spark は Scala または Python の変更されたバージョンを必要としますか?

いいえ。Spark は Scala またはコンパイラプラグインの変更を必要としません。Python API は標準の CPython 実装を使用しており、NumPy のような既存の Python 用 C ライブラリを呼び出すことができます。

Spark Streaming と Spark Structured Streaming の違いは何ですか?どちらを使用すべきですか?

Spark Streaming は、Spark のストリーミングエンジンの旧世代です。Spark Streaming への更新はもう行われておらず、レガシープロジェクトです。Spark Streaming は、離散化ストリームまたは DStream と呼ばれる高レベルの抽象化を提供し、データの連続ストリームを表します。内部的には、DStream は RDD のシーケンスとして表されます。

Spark Structured Streaming は、Spark のストリーミングエンジンの現在の世代であり、機能が豊富で、使いやすく、スケーラブルです。Spark Structured Streaming は Spark SQL エンジン上に構築されており、静的データに対するバッチ計算の表現方法と同じ方法でストリーミング計算を表現できます。

Spark を使用してストリーミングアプリケーションおよびパイプラインを構築するには、Spark Structured Streaming を使用する必要があります。Spark Streaming 上に構築されたレガシーアプリケーションおよびパイプラインがある場合は、Spark Structured Streaming に移行する必要があります。

Spark の高解像度バージョンのロゴはどこで見つけられますか?

ここでは、黒いロゴ白いロゴのバージョンを提供しています。Spark、Apache Spark、および Spark ロゴは Apache Software Foundation の商標であり、これらのロゴのすべての使用において Foundation の 商標ポリシーに従ってください。

Spark に基づいた商用ソフトウェアまたはサービスを提供できますか?

はい、Apache Software Foundation の ソフトウェアライセンスおよび 商標ポリシーを尊重する限り。特に、サードパーティ製品が「Spark」という名前をどのように使用するかについては、厳しい制限があることに注意してください(Spark に基づいた名前は一般的に許可されていません)。商標ポリシーの概要も参照してください。

Spark にどのように貢献できますか?

詳細については、Spark への貢献ウィキを参照してください。

さらにヘルプを得るにはどうすればよいですか?

StackOverflow の apache-spark タグまたは Spark Users メーリングリストに投稿してください。詳細については、質問がありますか? を参照してください。喜んでお手伝いします!