マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Apache Hadoop

【OSS情報アーカイブ】Apache Hadoop

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Apache Hadoop」とは

「Apache Hadoop」基本情報

■概要

Apache Hadoop(アパッチハドゥープ)とは、オープンソース大規模データ分散処理フレームワークです。大規模データを効率的に分散処理および管理できます。

■分散処理とは

データ処理高速化のための手段として、高価な高性能サーバを導入する方法があります。しかし、処理対象データがさらに増大した場合、処理性能を維持するために大きなコストが発生します。

もう1つの手段として「分散処理」があります。一般的な安価なサーバを複数台用意して、1つの計算処理をネットワークで接続した複数のコンピュータで同時並列で処理することで全体の処理能力を向上できます。「コストを安く抑えることができる」「将来的な拡張も容易」などのメリットがあります。

分散処理技術はビッグデータ活用市場の拡大により需要が高まっています。

■基本説明

Apache Hadoopは、一般的なハードウェアで構築された大規模クラスタでアプリケーションを実行するためのフレームワークです。「データ処理基盤」と「分散コンピューティング基盤」という2つの特徴を持っています。

Apache Hadoopは、コンピュータクラスタ全体の処理能力を統合して、「MapReduceプログラミングモデルによるビッグデータ(大規模データセット)分散処理」を可能とするフレームワークです。主にJavaで実装されています。

アプリケーションに信頼性とデータ移動の両方を透過的に提供します。数千ノードに対応し、ペタバイト級データを処理できます。

■主要開発元

Apache Hadoopは、Apacheソフトウェア財団(Apache Software Foundation)を中心として開発が進められています。Apacheトップレベルプロジェクトの1つとして、世界規模の開発貢献者コミュニティによって支えられています。

Apache Hadoopプロジェクトは、「高い信頼性」かつ「スケーラブル」な分散コンピューティングのためのオープンソースソフトウェア開発を目標としています。

→Apache Hadoop →Who We are(Apache Hadoop Project Members)

■経緯

・2006年:初版リリース

Nutchプロジェクト用インフラストラクチャ

Apache Hadoopは、Webサイトをクロールし、クロールされたページの検索エンジンインデックスを構築する「Nutchプロジェクト」のインフラストラクチャとして構築されました。

http://nutch.apache.org/

Google技術ベース

Apache Hadoopは、以下のGoogleの技術をベースとしてJavaで実装されました。
・分散ファイルシステム「GFS(Google File System)」—Google社が自社システムの基盤として利用していたもの
・分散処理システム「MapReduce」—分散データベース「BigTable」ベース

■ユースケース

Apache Hadoopは、以下のような大規模データ処理が必要な用途で活用できます。
・ログ分析
・クリックストリーム分析
・マーケティング分析
・機械学習
・データマイニング
・画像処理
・XMLメッセージ処理
・Webクロール
・テキスト処理
・データアーカイブ—リレーショナル/表形式データを含む一般的なアーカイブ など

■オフィシャルサイト情報

オフィシャルサイト

→Apache Hadoop

ライセンス情報

Apache Hadoopのライセンスは「Apache License 2.0」です。

詳細について、こちらを参照ください。
→GitHub →apache/hadoop →LICENSE.txt

ダウンロード

→Apache Hadoop →Download

導入事例

Apache Hadoopは、「Facebook」「Visa」「Yahoo!」「IBM」「New York Times」「リクルート」「楽天」など、多くのエンタープライズ企業などでの採用実績があります。

→Apache Hadoop →Powered by Apache Hadoop

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Apache Spark」「Apache Storm」など。

「Apache Hadoop」の主な特徴

■分散処理フレームワーク

分散処理基盤を独自で開発する場合には「プロセス起動」「プロセス監視」「プロセス間通信管理」「データ処理の効率的分散」「特定ノード故障時の動作」など、さまざまな複雑な考慮が必要になり、完成までには非常に大きなコストと開発技術が必要となります。

Apache Hadoopを利用することで、上記のような複雑な処理をすべてApache Hadoopに任せることが可能となります。Apache Hadoopは「ジョブ実行」「タスク分散」を管理し、並列分散方式によるデータ保管機能を提供します。

開発者は「Mapper」と「Reducer」という2つのスクリプトを作成するだけで簡単に分散処理を実装できるようになり、本来やるべきビジネスロジックに集中できます。

■MapReduceプログラミングモデル

Apache Hadoopの中核は、分散ファイルシステム「HDFS」と、並列分散処理フレームワーク「MapReduce」で構成されています。

処理手順概要

①Apache Hadoopは、巨大なファイルをブロックに分割し、クラスタ内のノードに分散させます。
②パッケージ化されたコードをノードに転送してデータを並行して処理します。

■高速処理

Apache Hadoop活用により処理高速化が可能です。

サーバ1台の既存システムでは「数日」を要していた重い処理を、Apache Hadoopによる分散処理に切り替えると「数時間」で完了できるケースもあります。

■スケーラブル

Hadoopは汎用的で安価なサーバを追加することで拡張できます。

1000台規模のスケールアップに対応できるように設計されており、それぞれのマシンが計算処理能力とストレージを提供します。

2000ノードのGNU/Linuxクラスタでの動作が実証されており、ペタバイト級データを処理できます。

■高可用性

Apache Hadoopは、耐障害性を重視して設計されているため、一部の構成ノードに障害が発生してダウンしても、すぐに別ノードへ処理を振り分けることができます。

Apache Hadoopのすべてのモジュールは「ハードウェア障害は一般的に発生するものであり、フレームワークによって自動的に処理されるべきである」という前提で設計されています。

Apache Hadoopは、高可用性を提供するためにハードウェアの可用性に依存するのではなく、Hadoopライブラリ自体がアプリケーション層で障害を検出して処理するように設計されているため、一般的な安価なコンピュータクラスタ上で高可用性サービスを提供できます。

■豊富な対応データ形式

Hadoopは多様なシステムのさまざまな形式のデータを処理し保管できます。

「構造化データ」「非構造化データ」「ログデータ」「画像データ」「音声データ」「通信記録」「電子メール」など、定型/非定型関係なく、ありとあらゆるデータを取り込んで処理できます。

■バッチ処理向き(リアルタイム処理は不向き)

Hadoopは、分散処理を実行するためのオーバーヘッドが大きいため、即時性パフォーマンスが求められるリアルタイム処理には向かない傾向にあります。

そのような用途のためには、大規模データリアルタイム処理を得意とする「Apache Spark」や「Apache Storm」などが選択肢となります。

「Apache Hadoop」の主要技術① 分散ファイルシステム「HDFS」

「Apache Hadoop」の主要技術① 分散ファイルシステム「HDFS」

■概要

「Hadoop分散ファイルシステム(HDFS:Hadoop Distributed File System)」は、「分散」「スケーラブル」「ポータブル」を実現し非常に大きなファイルを確実に保存できるように、Hadoop独自の分散ファイルシステムとして設計されています。

一般的なサーバにデータを格納し、クラスタ全体で非常に高い総帯域幅を提供する分散ファイルシステムです。

■高速処理

HDFSの主な利点として「非常に高い入出力速度」があります。

HDFSはHadoopクラスタ全体に分散ファイルを保存することによって非常に高い帯域幅を提供します。

個々のタスクが実行されるノード(もしくは近い場所)にファイルが配置されるため、タスクは近い場所にあるファイルに対する処理が可能となります。遠距離にあるデータを取得する必要がなくなるため、データ入出力に関するオーバーヘッドが軽減されます。

「Apache Hadoop」の主要技術② クラスタリソース管理「YARN」

「Apache Hadoop」の主要技術② クラスタリソース管理「YARN」

■概要

YARN(Yet Another Resource Negotiator)は、Hadoopクラスタの「リソース管理」および「ジョブスケジューリング」を担当するモジュールです。

クラスタ内のコンピューティングリソースを効率的に管理し、アプリケーションのスケジューリングをコントロールします。

■経緯

YARNは、Hadoop1系までのMapReduceから「クラスタリソース管理機能」と「ジョブスケジューリング機能」を分離して開発されています。

「クラスタ規模の拡大」「リソース管理の効率化」「MapReduce以外の分散処理の実行」を強化するために開発が続けられています。

■多様な分散処理フレームワークに対応

YARNは「MapReduce(Apache Hadoop)」のみではなく「Apache Spark」や「Apache Storm」などの分散処理フレームワークもサポートしています。

「Apache Hadoop」の主要技術③ 並列分散処理フレームワーク「MapReduce」

「Apache Hadoop」の主要技術③ 並列分散処理フレームワーク「MapReduce」

■概要

MapReduceは、コンピュータクラスタ上の巨大データセットに対する分散コンピューティングを支援する目的で、Googleによって2004年に導入されたプログラミングモデルです。

■フォールトトレラント

ノードが途中で失敗した場合、各フェーズのタスクはフォールトトレラントな方法で実行されます。

失敗ノードに割り当てられたタスクは残りのノードの間で再分配され、小さなランタイムオーバーヘッドで再実行します。

■Apache Hadoopでの実装

Apache Hadoopで実行されているほとんどのプログラムはMapReduceの計算パラダイムで記述されています。

アプリケーションは多くの小さな作業断片に分割され、それぞれがクラスタ内の任意のノードで個別に実行されます。

個別実行完了後に、これらの独立したプロセスの結果がグループとしてまとめられ処理されます。

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。