Hadoopには大規模で活気ある開発者コミュニティがありますが、Hadoopエコシステム内の多くのプロジェクトは名前も機能も大きく異なるため、多くの人にとって各プロジェクトが何を行い、どのように使用されることを意図しているのかを区別するのは困難です。
Hadoopの構成要素として、HDFSとMapReduceは避けて通れない2つの要素です。しかし、開発者や企業からの多くの貢献により、Hadoopはより複雑なプラットフォームとなっています。エコシステム内のプロジェクトの中にはApache Foundationのプロジェクトもあれば、Apacheのライセンスを受けながら企業によって運営されているものもあります。
今日の記事では、Hadoopの進化を振り返り、現在のラインナップにどのような「大物」がいるのかを見ていきます。
できること:Hadoopのファイルシステムまたはストレージメカニズムとして機能します。
どのように役立つのか: 大容量ファイルを扱うために設計された、反復的で耐障害性に優れたスケーラブルなファイルシステムを構築します。データロケーションを使用したMapReduceタスクのデータ入力パフォーマンスの向上。
機能: 拡張性の高いデータベースです。
どのように役立つのか: データベースをリニアに拡張できます。調整可能なデータ一貫性レベル制御を提供します。
できること:HDFSを使ってスケーラビリティの高いデータベースを作成します。
どのように役立つか:ランダムアクセスによる高いスケーラビリティの実現。HDFSによる厳密なデータ一貫性の確保。
できること:分散ノード間のデータ同期を支援します。
どのように役立つのか:クラスタ内のすべてのノード間で一貫性のある分散小規模データを維持します。
#p#
できること:仕事を複数のタスクに分割し、同時に実行すること。
フレームワークは、分散システムの難しいコンポーネントを抽象化し、システムが大量のデータを同時に処理できるようにします。
できること:クエリ言語を使ってデータを扱うことができます。
どのように役立つか:SQLプログラマーがSQLライクなクエリを作成することで、MapReduceを使用するのに役立ちます。
できること:大規模データに対する低レイテンシーのクエリを実現します。
どのように役立つのか:SQLプログラマーがSQLライクなクエリを作成することで、ビッグデータへのアクセス速度を向上させます。
できること:データストリーミングやスクリプト型言語を使用したデータ処理。
どのように役立つか:プログラマーがデータフロー言語でMapReduce機能を活用するのを支援します。
できること:MapReduceであらかじめ書かれたライブラリを使って機械学習アルゴリズムを実行します。
MapReduceの提案とクラスタをライブラリで作成できます。既存のコードを活用することで開発を加速します。
できること:MapReduceであらかじめ書かれたライブラリを使ってグラフ化アルゴリズムを実行します。
どのように役立つか:MapReduceを使用するためにグラフ化アルゴリズムを書き直す必要がなくなります。既存のコードを活用することで開発を加速します。
できること:テストを実行して、MapReduceが正しく動作することを確認します。
どのように役立つのか:MapReduceプログラムが正しく動作していることを検証するために、プログラムテストを実行します。実行結果を検証するために、ユーザーが入力プロセスをシミュレートできるオブジェクトを提供します。
#p#
機能: MapReduceジョブのデータを簡単にインポート/エクスポートする方法を提供します。
どのように役立つか:データを格納するドメインオブジェクトの作成。MapReduceジョブのためのデータのシリアライズとデシリアライズの簡素化。
できること:リレーショナルデータベースとHadoop間のデータ移動。
どのように役立つか:データをリレーショナルデータベースからHadoopに移動し、後で処理できるようにします。MapReduceジョブから出力されたデータを抽出し、リレーショナルデータベースに戻します。
機能:大量のログデータをスケーラブルに処理します。
どのように役立つか:大量のログデータをHDFSに移動。Flumeはそのスケーラビリティにより、大量の受信データを処理することができます。
機能: ユーザーがウェブブラウザを通してHadoopクラスタとやり取りできるようにします。
どのように役立つのか:ユーザーはHadoopクラスタとより簡単にやり取りできます。きめ細かな権限設定により、管理者はユーザーを構成しやすくなります。
できること:Hadoopで複雑なワークフローを作成する作業を容易にします。
どのように役立つのか: Hive、pig、MapReduceなどの他のプロジェクトとの複雑なワークフローを作成できます。組み込みのロジックにより、ユーザーはあらかじめ決められたステップバイステップで障害を処理できます。





