Apache SparkはHadoopなしで実行できますか?


回答:


53

SparkはHadoopなしで実行できますが、その機能の一部はHadoopのコードに依存しています(Parquetファイルの処理など)。MesosとS3でSparkを実行していますが、セットアップは少し面倒ですが、一度実行すると非常にうまく機能します(適切に設定するために必要なものの概要をここで読むことができます)。

(編集)注:バージョン2.3.0以降、SparkはKubernetesのネイティブサポートも追加しました


95

Sparkはインメモリ分散コンピューティングエンジンです。

Hadoopは、分散ストレージ(HDFS)と分散処理(YARN)のフレームワークです。

Sparkは、Hadoopコンポーネント(HDFS / YARN)の有無にかかわらず実行できます


分散ストレージ:

以来スパークは、独自の分散ストレージシステムを持っていない、それは、分散コンピューティングのためのこれらのストレージ・システムの一つに依存しています。

S3 –緊急ではないバッチジョブ。S3は、データの局所性が重要ではない非常に特殊なユースケースに適合します。

Cassandra –ストリーミングデータ分析とバッチジョブのやり過ぎに最適です。

HDFS –データの局所性を損なうことなくバッチジョブに最適です。


分散処理:

Sparkは、スタンドアロン、YARN、Mesosの3つの異なるモードで実行できます。

分散ストレージと分散処理の両方の詳細な説明については、以下のSEの質問を参照してください。

Sparkにはどのクラスタータイプを選択する必要がありますか?


23

デフォルトでは、Sparkにはストレージメカニズムがありません。

データを保存するには、高速でスケーラブルなファイルシステムが必要です。S3、HDFS、またはその他のファイルシステムを使用できます。Hadoopは、低コストであるため経済的なオプションです。

さらに、Tachyonを使用すると、Hadoopのパフォーマンスが向上します。ApacheSpark処理にはHadoopを強くお勧めします。 ここに画像の説明を入力してください


6

はい、SparkはHadoopなしで実行できます。すべてのコアSpark機能は引き続き機能しますが、すべてのファイル(コードとデータ)をhdfsを介してクラスター内のすべてのノードに簡単に配布するなどの機能を見逃すことになります。


6

Sparkのドキュメントによると、SparkはHadoopなしで実行できます。

リソースマネージャーなしでスタンドアロンモードとして実行できます。

ただし、マルチノードセットアップで実行する場合は、YARNやMesosなどのリソースマネージャーと、HDFS、S3などの分散ファイルシステムが必要です。


3

はい、HadoopなしでSparkをインストールできます。それは少し注意が必要です。arnonlinkを参照して、Parquetを使用してS3でデータストレージとして構成できます。 http://arnon.me/2015/08/spark-parquet-s3/

Sparkは処理を行うだけで、動的メモリを使用してタスクを実行しますが、データを保存するには、データストレージシステムが必要です。ここで、HadoopはSparkで役割を果たし、Sparkのストレージを提供します。SparkでHadoopを使用するもう1つの理由は、Hadoopがオープンソースであり、他のデータストレージシステムと比較して、両方を簡単に統合できることです。S3のような他のストレージの場合、上記のリンクに記載されているように構成するのは難しいはずです。

ただし、HadoopにはMapreduceと呼ばれる処理ユニットもあります。

両方の違いを知りたいですか?

この記事を確認してください:https//www.dezyre.com/article/hadoop-mapreduce-vs-apache-spark-who-wins-the-battle/83

この記事はあなたが理解するのに役立つと思います

  • 何を使うか、

  • ときに使用すると、

  • 使い方 !!!


1

はい、もちろん。Sparkは独立した計算フレームワークです。Hadoopは、MapReduce計算フレームワークを備えた分散ストレージシステム(HDFS)です。Sparkは、HDFSだけでなく、従来のデータベース(JDBC)、kafka、さらにはローカルディスクなどの他のデータソースからデータを取得できます。



0

はい、SparkはHadoopなしで実行できます。Hadoopを使用せずにローカルマシンにsparkをインストールできます。ただし、Spark libにはHaddop以前のライブラリが付属しています。つまり、ローカルマシンへのインストール時に使用されます。


-4

いいえ。動作を開始するには、本格的なHadoopのインストールが必要です-https ://issues.apache.org/jira/browse/SPARK-10944


1
これは正しくありません。現在のバージョンではHadoopがなくても正常に動作します。
クリスチェンバーズ

1
@ChrisChambers詳しく説明していただけませんか?この問題についてのコメントには、「実際、Sparkには何があってもHadoopクラスが必要です」と書かれており、ダウンロードページには、特定のHadoopバージョン用にビルド済みまたはユーザー提供のHadoopを使用するオプションしかありません。また、ドキュメントには、「SparkはHDFSとYARNにHadoopクライアントライブラリを使用している」と書かれています。そして、この依存関係はオプションではないようです。
NikoNyrh 2016

1
@NikoNyrh正解です。「ユーザー提供のHadoop」ダウンロードアーティファクトを実行してみたところ、すぐにスタックトレースが取得されました。また、SparkのクラスパスがコアHadoopクラスから分離されることを望んでいます。しかし、プロトタイピングとテストの目的のために、私はダウンロードのサイズ(120何かMB)以外の問題はありません。しかたがない。乾杯!
ヘスス・Zazueta

問題のスタックトレース:$ ./spark-shell Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefaultSparkProperties$1.apply(SparkSubmitArguments.scala:118) at org.apache.spark.deploy.SparkSubmitArguments$$anonfun$mergeDefault at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more
ヘスス・Zazueta
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.