Hadoop対ApacheSparkについて知っておくべき5つのこと

ビッグデータについての会話を聞いてください。おそらくHadoopまたはApacheSparkについての言及が聞こえます。ここでは、それらが何をし、どのように比較するかについて簡単に説明します。

1:彼らは異なることをします。 HadoopとApacheSparkはどちらもビッグデータフレームワークですが、実際には同じ目的を果たしていません。 Hadoopは本質的に分散データインフラストラクチャです。コモディティサーバーのクラスター内の複数のノードに大量のデータコレクションを分散します。つまり、高価なカスタムハードウェアを購入して維持する必要はありません。また、そのデータにインデックスを付けて追跡し、以前よりもはるかに効果的にビッグデータの処理と分析を可能にします。一方、Sparkは、これらの分散データコレクションを操作するデータ処理ツールです。分散ストレージは実行しません。

2:一方を他方なしで使用できます。Hadoopには、Hadoop分散ファイルシステムと呼ばれるストレージコンポーネントだけでなく、MapReduceと呼ばれる処理コンポーネントも含まれているため、処理を実行するためにSparkは必要ありません。逆に、HadoopなしでSparkを使用することもできます。ただし、Sparkには独自のファイル管理システムが付属していないため、1つと統合する必要があります。HDFSでない場合は、別のクラウドベースのデータプラットフォームです。SparkはHadoop用に設計されましたが、多くの人が一緒に使用したほうがよいことに同意しています。

3:スパークはより高速です。Sparkは、データを処理する方法のため、一般的にMapReduceよりもはるかに高速です。 MapReduceは段階的に動作しますが、Sparkはデータセット全体を一挙に操作します。 「MapReduceワークフローは次のようになります。クラスターからのデータの読み取り、操作の実行、クラスターへの結果の書き込み、クラスターからの更新データの読み取り、次の操作の実行、クラスターへの次の結果の書き込みなど」とカーク・ボーンは説明します。ブーズアレンハミルトンの主任データサイエンティスト。一方、Sparkは、完全なデータ分析操作をメモリ内でほぼリアルタイムで完了します。「クラスターからデータを読み取り、必要なすべての分析操作を実行し、結果をクラスターに書き込みます」とBorne氏は述べています。 Sparkは、バッチ処理の場合はMapReduceの10倍、メモリ内分析の場合は最大100倍高速になる可能性があると同氏は述べています。

4:Sparkの速度は必要ないかもしれません。 MapReduceの処理スタイルは、データ操作とレポート要件がほとんど静的であり、バッチモード処理を待つことができる場合は問題ありません。ただし、工場フロアのセンサーなどからストリーミングデータの分析を行う必要がある場合、または複数の操作を必要とするアプリケーションがある場合は、Sparkを使用することをお勧めします。たとえば、ほとんどの機械学習アルゴリズムでは、複数の操作が必要です。 Sparkの一般的なアプリケーションには、リアルタイムのマーケティングキャンペーン、オンライン製品の推奨事項、サイバーセキュリティ分析、マシンログの監視などがあります。

5:障害回復:異なるが、それでも良好。Hadoopは、操作のたびにデータがディスクに書き込まれるため、システムの障害や障害に対して自然に回復力がありますが、Sparkには、データオブジェクトがデータクラスター全体に分散された回復力のある分散データセットと呼ばれるものに格納されているため、同様の回復力が組み込まれています。「これらのデータオブジェクトはメモリまたはディスクに保存でき、RDDは障害や障害からの完全な回復を提供します」とBorne氏は指摘しました。