SparkとHadoopの間に依存関係はありますか?
そうでない場合、HadoopなしでSparkを実行したときに見逃してしまう機能はありますか?
回答:
Sparkはインメモリ分散コンピューティングエンジンです。
Hadoopは、分散ストレージ(HDFS)と分散処理(YARN)のフレームワークです。
Sparkは、Hadoopコンポーネント(HDFS / YARN)の有無にかかわらず実行できます
以来スパークは、独自の分散ストレージシステムを持っていない、それは、分散コンピューティングのためのこれらのストレージ・システムの一つに依存しています。
S3 –緊急ではないバッチジョブ。S3は、データの局所性が重要ではない非常に特殊なユースケースに適合します。
Cassandra –ストリーミングデータ分析とバッチジョブのやり過ぎに最適です。
HDFS –データの局所性を損なうことなくバッチジョブに最適です。
Sparkは、スタンドアロン、YARN、Mesosの3つの異なるモードで実行できます。
分散ストレージと分散処理の両方の詳細な説明については、以下のSEの質問を参照してください。
デフォルトでは、Sparkにはストレージメカニズムがありません。
データを保存するには、高速でスケーラブルなファイルシステムが必要です。S3、HDFS、またはその他のファイルシステムを使用できます。Hadoopは、低コストであるため経済的なオプションです。
さらに、Tachyonを使用すると、Hadoopのパフォーマンスが向上します。ApacheSpark処理にはHadoopを強くお勧めします。
はい、SparkはHadoopなしで実行できます。すべてのコアSpark機能は引き続き機能しますが、すべてのファイル(コードとデータ)をhdfsを介してクラスター内のすべてのノードに簡単に配布するなどの機能を見逃すことになります。
Sparkのドキュメントによると、SparkはHadoopなしで実行できます。
リソースマネージャーなしでスタンドアロンモードとして実行できます。
ただし、マルチノードセットアップで実行する場合は、YARNやMesosなどのリソースマネージャーと、HDFS、S3などの分散ファイルシステムが必要です。
はい、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
この記事はあなたが理解するのに役立つと思います
何を使うか、
ときに使用すると、
使い方 !!!
はい、SparkはHadoopのインストールの有無にかかわらず実行できます。詳細については、https://spark.apache.org/docs/latest/をご覧ください。
いいえ。動作を開始するには、本格的なHadoopのインストールが必要です-https ://issues.apache.org/jira/browse/SPARK-10944
$ ./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