2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

大規模分散処理のフレームワーク:Hadoop/Spark

Posted at

データ分析基盤の理解を深めるために、ビッグデータを支える技術を学習中。
今回は、分散処理フレームワークのHadoop/Sparkについて。

データ構造化のパイプライン

非構造化データを、構造化データへと変換することで他のデータと同様に分析できるようにする。
datastructure.png
Webサーバーのログファイルや、業務用マスターテーブルなどのデータソースを、分散ストレージに格納し、分散データ処理をし、構造化データに変換する。

分散データ処理フレームワークにHadoopやSparkなどがある。

Hadoop

Hadoopは単体のソフトウェアではなく、分散システムを構成する多数のソフトウェアからなる集合体。
apacheproject.png

機能 説明
分散ファイルシステム ネットワーク接続されたファイルサーバーのような存在。多数のコンピュータにファイルをコピーすることで冗長性を高める特徴。
リソースマネージャ CPUやメモリなどの計算リソースを管理。
分散データ処理 MapReduceは任意のJavaプログラムを走らせることができるため、非構造化データを加工するのに適している。SQLなどのクエリ言語によるデータ集計が目的であれば、そのために設計されたクエリエンジン(Apache Sparkなど)を利用する。
クエリエンジン 対話型のクエリ実行だけに特化したクエリエンジン。瞬間最大速度を上げるためにあらゆるオーバーヘッドが排除されており、使えるリソースを最大限に活用してクエリ実行。

Hadopの基本となるコンポーネントは、分散ファイルシステムであるHDFSリソースマネージャであるYARN分散データ処理の基盤であるMapReduceの3つ。

それ以外のプロジェクトはHadoop本体とは独立して開発されており、Hadoopを利用する分散アプリケーションとして動作。多様なアプリケーションを組み合わせて、自分に合ったシステムを組み上げるのが、Hadoopを中心とするデータ処理の特徴。

Spark

SparkはHadoopを置き換えるものではなく、MapReduceを置き換える存在。大量のメモリを活用して高速化を実現することが特徴。MapReduceが開発された時代は、少ないメモリしか使えなかったため、MapReduceの処理の大半はディスクの読み書きに費やしていた。

Sparkは大規模なバッチ処理だけでなく、SQLによる対話的なクエリ実行や、リアルタイムのストリーム処理にまで広く利用されている。

機能 説明
Spark SQL SQLでクエリを実行
Spark Streaming ストリーム処理を実行
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?