| 原作者 | ダグ・カッティング、マイク・カファレラ | ||||
|---|---|---|---|---|---|
| 開発者 | Apache ソフトウェア財団 | ||||
| 初回リリース | 2006年4月1日[1] | ||||
| 安定リリース |
| ||||
| リポジトリ | Hadoop リポジトリ | ||||
| 書かれた | ジャワ | ||||
| オペレーティング·システム | クロスプラットフォーム | ||||
| タイプ | 分散ファイルシステム | ||||
| ライセンス | Apache ライセンス 2.0 | ||||
| Webサイト | 翻訳元: | ||||
Apache Hadoop ( / h ə ˈ d uː p / ) は、多数のコンピュータのネットワークを使用して、膨大な量のデータと計算を伴う問題を解決することを可能にするオープンソースのソフトウェアユーティリティのコレクションです。 [曖昧] MapReduceプログラミングモデルを使用して、ビッグデータの分散ストレージと処理のためのソフトウェアフレームワークを提供します。Hadoop はもともと、コモディティハードウェアで構築されたコンピュータクラスター用に設計されましたが、これは現在でも一般的な用途です。[3]その後、よりハイエンドのハードウェアのクラスターでも使用されるようになりました。[4] [5] Hadoop のすべてのモジュールは、ハードウェア障害は頻繁に発生し、フレームワークによって自動的に処理されるという基本的な前提で設計されています。[6]
概要
Apache Hadoop のコアは、Hadoop Distributed File System (HDFS) と呼ばれるストレージ部分と、MapReduce プログラミング モデルである処理部分で構成されています。Hadoop はファイルを大きなブロックに分割し、クラスター内のノードに分散します。次に、パッケージ化されたコードをノードに転送して、データを並列処理します。このアプローチは、ノードがアクセスできるデータを操作するデータ ローカリティ[7]を活用します。これにより、計算とデータが高速ネットワークを介して分散される並列ファイル システムに依存する従来のスーパーコンピュータ アーキテクチャよりも、データセットをより高速かつ効率的に処理できます。[8] [9]
基本的な Apache Hadoop フレームワークは、次のモジュールで構成されています。
- Hadoop Common – 他の Hadoop モジュールに必要なライブラリとユーティリティが含まれています。
- Hadoop 分散ファイルシステム (HDFS) – 汎用マシンにデータを保存し、クラスター全体で非常に高い集約帯域幅を提供する分散ファイルシステム。
- Hadoop YARN – (2012年に導入)は、クラスター内のコンピューティングリソースを管理し、ユーザーのアプリケーションのスケジュールに使用するプラットフォームです。[10] [11]
- Hadoop MapReduce – 大規模データ処理用の MapReduce プログラミング モデルの実装。
- Hadoop Ozone – (2020年に導入) Hadoopのオブジェクトストア
Hadoopという用語は、ベースモジュールとサブモジュールの両方、またエコシステム[12]、またはApache Pig、Apache Hive、Apache HBase、Apache Phoenix、Apache Spark、Apache ZooKeeper、Apache Impala、Apache Flume、Apache Sqoop、Apache Oozie、Apache Stormなど、Hadoopの上またはHadoopと並行してインストールできる追加のソフトウェアパッケージのコレクションを指すことが多い。[13]
Apache HadoopのMapReduceとHDFSコンポーネントは、MapReduceとGoogle File Systemに関するGoogleの論文からインスピレーションを得ました。[14]
Hadoopフレームワーク自体は主にJavaプログラミング言語で書かれており、一部のネイティブコードはCで書かれ、コマンドラインユーティリティはシェルスクリプトとして書かれています。MapReduce Javaコードが一般的ですが、Hadoop Streamingでは任意のプログラミング言語を使用して、ユーザーのプログラムのマップとリデュースの部分を実装できます。[15] Hadoopエコシステムの他のプロジェクトでは、より豊富なユーザーインターフェイスが公開されています。
歴史
共同創設者のダグ・カッティングとマイク・カファレラによると、Hadoopの起源は2003年10月に発表されたGoogle File Systemの論文でした。[16] [17]この論文は、Googleの別の論文「MapReduce: 大規模クラスターでの簡素化されたデータ処理」を生み出しました。[18]開発はApache Nutchプロジェクトで始まりましたが、2006年1月に新しいHadoopサブプロジェクトに移行しました。[19]当時Yahoo!で働いていたダグ・カッティングは、息子のおもちゃの象にちなんでこのプロジェクトに名前を付けました。 [20] Nutchからファクタリングされた最初のコードは、HDFS用に約5,000行のコードとMapReduce用に約6,000行のコードで構成されていました。
2006年3月、オーウェン・オマリーがHadoopプロジェクトに最初にコミッターとして参加しました。 [21] Hadoop 0.1.0は2006年4月にリリースされました。 [22]プロジェクトへの貢献により、Hadoopは進化を続けています。[23] Hadoop分散ファイルシステムの最初の設計書は、2007年にドゥルバ・ボルタクルによって書かれました。[24]
建築
Hadoopは、ファイルシステムとオペレーティングシステムレベルの抽象化、MapReduceエンジン(MapReduce/MR1またはYARN/MR2)[32] 、およびHadoop分散ファイルシステム(HDFS)を提供するHadoop Commonパッケージで構成されています。Hadoop Commonパッケージには、 Hadoopを起動するために必要なJavaアーカイブ(JAR)ファイルとスクリプトが含まれています。
作業を効果的にスケジュールするために、すべての Hadoop 互換ファイルシステムは、ラックの名前、具体的にはワーカーノードがあるネットワークスイッチの位置認識を提供する必要があります。Hadoop アプリケーションはこの情報を使用して、データがあるノードでコードを実行し、それができない場合は、バックボーントラフィックを削減するために同じラック/スイッチでコードを実行します。HDFS は、複数のラック間でデータの冗長性を確保するためにデータを複製するときにこの方法を使用します。このアプローチにより、ラックの停電やスイッチの障害の影響が軽減されます。これらのハードウェア障害が発生した場合でも、データは引き続き利用できます。[33]

小規模な Hadoop クラスターには、単一のマスターと複数のワーカー ノードが含まれます。マスター ノードは、ジョブ トラッカー、タスク トラッカー、ネームノード、およびデータノードで構成されます。スレーブ ノードまたはワーカー ノードは、データノードとタスク トラッカーの両方として機能しますが、データのみのワーカー ノードと計算のみのワーカー ノードを持つこともできます。これらは通常、非標準アプリケーションでのみ使用されます。[34]
HadoopにはJava Runtime Environment (JRE) 1.6以降が必要です。標準の起動およびシャットダウンスクリプトでは、クラスタ内のノード間にセキュアシェル(SSH) を設定する必要があります。[35]
大規模なクラスターでは、HDFS ノードは、ファイル システム インデックスをホストする専用の NameNode サーバーと、ネームノードのメモリ構造のスナップショットを生成できるセカンダリ NameNode によって管理され、ファイル システムの破損やデータの損失を防止します。同様に、スタンドアロンの JobTracker サーバーは、ノード間のジョブ スケジュールを管理できます。Hadoop MapReduce を代替ファイル システムで使用する場合、HDFS の NameNode、セカンダリ NameNode、および DataNode アーキテクチャは、ファイル システム固有の同等のものに置き換えられます。
ファイルシステム
Hadoop 分散ファイルシステム
Hadoop分散ファイルシステム(HDFS) は、Hadoop フレームワーク用に Java で記述された、分散型でスケーラブルかつポータブルなファイルシステムです。POSIXに準拠していないためデータストアと考える人もいますが[36] 、他のファイルシステムと同様のシェルコマンドや Java アプリケーションプログラミングインターフェース (API)メソッドを提供しています。 [37] Hadoop インスタンスは HDFS と MapReduce に分かれています。HDFS はデータの保存に使用され、MapReduce はデータの処理に使用されます。HDFS には次の 5 つのサービスがあります。
- 名前ノード
- セカンダリ名ノード
- ジョブトラッカー
- データノード
- タスクトラッカー
上部の 3 つはマスター サービス/デーモン/ノードで、下部の 2 つはスレーブ サービスです。マスター サービスは相互に通信でき、同様にスレーブ サービスも相互に通信できます。名前ノードはマスター ノードであり、データ ノードは対応するスレーブ ノードであり、相互に通信できます。
名前ノード: HDFS は、マスター ノードと呼ばれる 1 つの名前ノードのみで構成されます。マスター ノードは、ファイルを追跡し、ファイル システムを管理し、その中に保存されているすべてのデータのメタデータを保持します。特に、名前ノードには、ブロック数、データが保存されているデータ ノードの場所、レプリケーションが保存されている場所などの詳細が含まれます。名前ノードはクライアントと直接通信します。
データ ノード:データ ノードは、データをブロックとして保存します。これはスレーブ ノードとも呼ばれ、クライアントの読み取りと書き込みを担当する HDFS に実際のデータを保存しています。これらはスレーブ デーモンです。すべてのデータ ノードは、3 秒ごとにハートビート メッセージを名前ノードに送信し、それが生きていることを伝えます。このように、名前ノードがデータ ノードから 2 分間ハートビートを受信しない場合、そのデータ ノードはデッドとみなされ、他のデータ ノードでブロック レプリケーションのプロセスが開始されます。
セカンダリネームノード:これはネームノードにあるファイルシステムメタデータのチェックポイントのみを処理します。これはチェックポイントノードとも呼ばれます。ネームノードのヘルパーノードです。セカンダリネームノードはネームノードに fsimage と editlog ファイルを作成して送信するように指示し、それに基づいてセカンダリネームノードによって圧縮された fsimage ファイルが作成されます。[38]
ジョブ トラッカー:ジョブ トラッカーは、クライアントから Map Reduce 実行の要求を受け取ります。ジョブ トラッカーは、処理で使用されるデータの場所を確認するために、ネーム ノードと通信します。ネーム ノードは、必要な処理データのメタデータで応答します。
タスクトラッカー:ジョブトラッカーのスレーブノードであり、ジョブトラッカーからタスクを受け取ります。また、ジョブトラッカーからコードも受け取ります。タスクトラッカーはコードを受け取り、ファイルに適用します。ファイルにコードを適用するプロセスはマッパーと呼ばれます。[39]
Hadoop クラスターには、名目上は単一のネームノードとデータノードのクラスターがありますが、ネームノードの重要性から冗長オプションが利用できます。各データノードは、HDFS 固有のブロック プロトコルを使用して、ネットワーク経由でデータ ブロックを提供します。ファイル システムは、通信にTCP/IP ソケットを使用します。クライアントは、リモート プロシージャ コール(RPC) を使用して相互に通信します。
HDFS は、複数のマシンにまたがって大きなファイル (通常はギガバイトからテラバイトの範囲[40] ) を保存します。複数のホストにデータを複製することで信頼性を実現するため、理論的にはホストにRAID (Redundant Array of Independent Disks)ストレージは必要ありません (ただし、入出力 (I/O) パフォーマンスを向上させるには、一部の RAID 構成が依然として役立ちます)。デフォルトの複製値 3 では、データは 3 つのノード (同じラックに 2 つ、別のラックに 1 つ) に保存されます。データ ノードは相互に通信して、データのバランスを取り直し、コピーを移動し、データの複製を高く維持することができます。HDFS は POSIX に完全に準拠していません。これは、POSIX ファイル システムの要件が Hadoop アプリケーションの目標と異なるためです。完全に POSIX に準拠したファイル システムを持たないことのトレードオフは、データスループットのパフォーマンスが向上し、Append などの非 POSIX 操作がサポートされることです。[41]
2012年5月にはHDFSに高可用性機能が追加され、[42] NameNodeと呼ばれるメインのメタデータサーバーを手動でバックアップにフェイルオーバーできるようになりました。プロジェクトでは自動フェイルオーバーの開発も開始されています。
HDFS ファイル システムには、いわゆるセカンダリ ネームノードが含まれています。これは誤解を招く用語で、プライマリ ネームノードがオフラインになったときのバックアップ ネームノードと誤って解釈される可能性があります。実際、セカンダリ ネームノードはプライマリ ネームノードに定期的に接続し、プライマリ ネームノードのディレクトリ情報のスナップショットを作成します。その後、システムはそれをローカルまたはリモート ディレクトリに保存します。これらのチェックポイント イメージを使用すると、ファイル システム アクションのジャーナル全体を再生しなくても、障害が発生したプライマリ ネームノードを再起動でき、その後、ログを編集して最新のディレクトリ構造を作成できます。ネームノードはメタデータの保存と管理の単一ポイントであるため、膨大な数のファイル、特に多数の小さなファイルをサポートする際のボトルネックになる可能性があります。新しく追加された HDFS Federation は、個別のネームノードによって提供される複数の名前空間を許可することで、この問題にある程度対処することを目的としています。さらに、HDFS には、小さなファイルの問題、スケーラビリティの問題、単一障害点 (SPoF)、および巨大なメタデータ要求のボトルネックなどの問題があります。 HDFS を使用する利点の 1 つは、ジョブ トラッカーとタスク トラッカー間のデータ認識です。ジョブ トラッカーは、データの場所を認識した上で、マップまたはリデュース ジョブをタスク トラッカーにスケジュールします。たとえば、ノード A にデータ (a、b、c) が含まれ、ノード X にデータ (x、y、z) が含まれる場合、ジョブ トラッカーはノード A が (a、b、c) に対してマップまたはリデュース タスクを実行するようにスケジュールし、ノード X が (x、y、z) に対してマップまたはリデュース タスクを実行するようにスケジュールします。これにより、ネットワークを経由するトラフィックの量が削減され、不要なデータ転送が防止されます。Hadoop を他のファイル システムと併用する場合、この利点は常に利用できるとは限りません。これは、データ集約型ジョブで実証されているように、ジョブの完了時間に大きな影響を与える可能性があります。[43]
HDFSは主に不変のファイル用に設計されており、同時書き込み操作を必要とするシステムには適さない可能性があります。[41]
HDFS は、 Linuxやその他のUnixシステム上のFilesystem in Userspace (FUSE)仮想ファイル システムを使用して直接マウントできます。
ファイルアクセスは、ネイティブJava API、Thrift API(C++、Java、Python、PHP、Ruby、Erlang、Perl、Haskell、C#、Cocoa、Smalltalk、OCamlなど、さまざまな言語でクライアントを生成)、コマンドラインインターフェイス、 HTTP経由のHDFS-UIウェブアプリケーション、またはサードパーティのネットワーククライアントライブラリを介して実現できます。[44]
HDFSは、さまざまなハードウェアプラットフォーム間での移植性と、さまざまな基盤オペレーティングシステムとの互換性を考慮して設計されています。HDFSの設計では、Java実装ではHDFSが稼働しているプラットフォーム専用の機能を使用できないため、移植性の制限によりパフォーマンスのボトルネックが発生します。[45]エンタープライズレベルのインフラストラクチャへの統合が広まっているため、大規模なHDFSパフォーマンスの監視はますます重要な問題になっています。エンドツーエンドのパフォーマンスを監視するには、データノード、ネームノード、および基盤となるオペレーティングシステムからのメトリックを追跡する必要があります。[46]現在、 Hortonworks、Cloudera、Datadogなど、HDFSパフォーマンスを追跡するための監視プラットフォームがいくつかあります。
その他のファイルシステム
Hadoop は、URL を使用するだけで基盤となるオペレーティング システムによってマウントできる任意の分散ファイル システムと直接連携しますfile://。ただし、これには代償が伴います。つまり、局所性が失われるということです。ネットワーク トラフィックを削減するには、どのサーバーがデータに最も近いかを Hadoop が認識する必要があります。この情報は、Hadoop 固有のファイル システム ブリッジから提供できます。
2011 年 5 月現在、Apache Hadoop にバンドルされているサポート対象ファイル システムのリストは次のとおりです。
- HDFS: Hadoop独自のラック対応ファイルシステム。[47]これは数十ペタバイトのストレージに拡張できるように設計されており、基盤となるオペレーティングシステムのファイルシステム上で実行されます。
- Apache Hadoop Ozone: 数十億の小さなファイル向けに最適化された HDFS 互換のオブジェクト ストア。
- FTPファイル システム: すべてのデータをリモートからアクセス可能な FTP サーバーに保存します。
- Amazon S3 (Amazon Simple Storage Service) オブジェクト ストレージ: これは、Amazon Elastic Compute Cloudサーバーオンデマンド インフラストラクチャでホストされているクラスターを対象としています。このファイル システムはすべてリモートであるため、ラックを認識しません。
- Windows Azure Storage Blobs (WASB) ファイル システム: これは HDFS の拡張機能であり、データをクラスターに永続的に移動することなく、Hadoop のディストリビューションが Azure BLOB ストアのデータにアクセスできるようにします。
サードパーティ製のファイル システム ブリッジも多数作成されていますが、現在 Hadoop ディストリビューションにはいずれも含まれていません。ただし、一部の Hadoop 商用ディストリビューションでは、代替ファイル システムがデフォルトで付属しています (具体的には IBM とMapR )。
- 2009年、IBMはHadoopをIBM General Parallel File System上で実行することを検討した。[48]ソースコードは2009年10月に公開された。[49]
- 2010年4月、ParascaleはParascaleファイルシステムに対してHadoopを実行するためのソースコードを公開しました。[50]
- 2010年4月、Appistryは自社のCloudIQストレージ製品で使用するためのHadoopファイルシステムドライバーをリリースしました。[51]
- 2010年6月、HPは位置認識型IBRIX Fusionファイルシステムドライバについて議論した。[52]
- 2011 年 5 月、MapR Technologies Inc. は、 HDFS ファイル システムを完全なランダム アクセス読み取り/書き込みファイル システムに置き換える、Hadoop の代替ファイル システムであるMapR FSの提供開始を発表しました。
JobTracker と TaskTracker: MapReduce エンジン
ファイル システムの上には MapReduce エンジンがあります。これは 1 つのJobTrackerで構成され、クライアント アプリケーションはこれに MapReduce ジョブを送信します。JobTracker は、作業をデータにできるだけ近づけながら、クラスター内の利用可能なTaskTrackerノードに作業をプッシュします。ラック対応のファイル システムでは、JobTracker はどのノードにデータがあるか、および他のどのマシンが近くにあるかを認識しています。作業がデータが存在する実際のノードでホストできない場合は、同じラック内のノードが優先されます。これにより、メイン バックボーン ネットワーク上のネットワーク トラフィックが軽減されます。TaskTracker が失敗またはタイムアウトすると、ジョブのその部分が再スケジュールされます。各ノードの TaskTracker は、実行中のジョブが JVM をクラッシュさせた場合に TaskTracker 自体が失敗しないように、個別のJava 仮想マシン(JVM) プロセスを生成します。ステータスを確認するために、TaskTracker から JobTracker に数分ごとにハートビートが送信されます。 Job Tracker と TaskTracker のステータスと情報はJettyによって公開され、Web ブラウザーから表示できます。
このアプローチの既知の制限は次のとおりです。
- TaskTracker への作業の割り当ては非常に簡単です。すべての TaskTracker には、使用可能なスロットがいくつかあります(「4 スロット」など)。アクティブなマップ タスクまたは削減タスクは、それぞれ 1 つのスロットを占有します。Job Tracker は、使用可能なスロットを持つデータに最も近いトラッカーに作業を割り当てます。割り当てられたマシンの現在のシステム負荷、つまり実際の可用性は考慮されません。
- 1 つの TaskTracker が非常に遅い場合、MapReduce ジョブ全体が遅延する可能性があります。特にジョブの終わり近くでは、すべてが最も遅いタスクを待機することになりかねません。ただし、投機的実行を有効にすると、1 つのタスクを複数のスレーブ ノードで実行できます。
スケジュール
デフォルトでは、HadoopはFIFOスケジューリングを使用し、オプションで5つのスケジューリング優先順位を使用して、作業キューからジョブをスケジュールします。[53]バージョン0.19では、ジョブスケジューラがJobTrackerからリファクタリングされ、代替スケジューラ(次に説明するFairスケジューラやCapacityスケジューラなど)を使用する機能が追加されました。 [54]
公平なスケジューラ
フェアスケジューラはFacebookによって開発されました。[55]フェアスケジューラの目標は、小規模ジョブには高速な応答時間と、本番ジョブにはサービス品質(QoS)を提供することです。フェアスケジューラには3つの基本概念があります。[56]
- ジョブはプールにグループ化されます。
- 各プールには保証された最小シェアが割り当てられます。
- 余剰容量はジョブ間で分割されます。
デフォルトでは、分類されていないジョブはデフォルト プールに入ります。プールでは、マップ スロットの最小数、削減スロット、および実行中のジョブ数の制限を指定する必要があります。
キャパシティスケジューラ
キャパシティスケジューラはYahooによって開発されました。キャパシティスケジューラはフェアスケジューラと同様の機能をいくつかサポートしています。[57]
- キューには、総リソース容量の一部が割り当てられます。
- 空きリソースは、キューの合計容量を超えて割り当てられます。
- キュー内では、優先度の高いジョブがキューのリソースにアクセスできます。
ジョブの実行中は プリエンプションは発生しません。
Hadoop 1 と Hadoop 2 (YARN) の違い
Hadoop 1 と Hadoop 2 の最大の違いは、Hadoop の最初のバージョンの MapReduce エンジンに代わる YARN (Yet Another Resource Negotiator) の追加です。YARN は、さまざまなアプリケーションにリソースを効率的に割り当てようとします。YARN は、2 つの異なるタスクを処理する 2 つのデーモンを実行します。1 つはリソース マネージャーで、ジョブの追跡とアプリケーションへのリソース割り当てを行い、もう 1 つはアプリケーション マスターで、実行の進行状況を監視します。
Hadoop 2とHadoop 3の違い
Hadoop 3 には重要な機能が備わっています。たとえば、 Hadoop 2 にはネームノードが 1 つしかありませんでしたが、Hadoop 3 では複数のネームノードを持つことができるため、単一障害点の問題が解決されます。
Hadoop 3 では、 Dockerの原理で動作するコンテナがあり、アプリケーション開発にかかる時間を短縮します。
最も大きな変更点の 1 つは、Hadoop 3 では消去コーディングによってストレージのオーバーヘッドが削減されることです。
また、Hadoop 3ではクラスター内でGPUハードウェアの使用が許可されており、これはHadoopクラスター上でディープラーニングアルゴリズムを実行する上で非常に大きな利点となります。[58]
その他のアプリケーション
HDFSはMapReduceジョブに限定されません。他のアプリケーションにも使用できます。その多くはApacheで開発中です。そのリストには、HBaseデータベース、Apache Mahout 機械学習システム、Apache Hive データウェアハウスが含まれます。理論的には、Hadoopは、リアルタイムではなくバッチ指向で、非常にデータ集約的で、並列処理のメリットがあるあらゆるワークロードに使用できます。また、ラムダアーキテクチャ、Apache Storm、Flink、Spark Streamingなどのリアルタイムシステムを補完するためにも使用できます。[59]
Hadoopの商用アプリケーションには以下のものがある: [60]
- ログまたはクリックストリーム分析
- マーケティング分析
- 機械学習とデータマイニング
- 画像処理
- XMLメッセージ処理
- ウェブクローリング
- リレーショナルデータや表形式データを含むコンプライアンスのためのアーカイブ作業
代表的な使用例
2008 年 2 月 19 日、Yahoo! Inc. は、世界最大の Hadoop 製品アプリケーションであると主張してリリースしました。Yahoo! Search Webmap は、10,000 を超えるコアを持つ Linux クラスターで実行される Hadoop アプリケーションであり、すべての Yahoo! Web 検索クエリで使用されるデータを生成します。[61] Yahoo! には複数の Hadoop クラスターがあり、HDFS ファイル システムや MapReduce ジョブが複数のデータ センターに分割されることはありません。すべての Hadoop クラスター ノードは、Hadoop ディストリビューションを含む Linux イメージをブートストラップします。クラスターが実行する作業には、Yahoo! 検索エンジンのインデックス計算が含まれることが知られています。2009 年 6 月、Yahoo! は Hadoop バージョンのソース コードをオープン ソース コミュニティに公開しました。[62]
2010年、Facebookは21PBのストレージを備えた世界最大のHadoopクラスターを保有していると主張した。 [63] 2012年6月、同社はデータが100PBに増加したことを発表し[64]、その年の後半には、データは1日あたり約0.5PB増加していると発表した。[65]
2013年時点では[アップデート]Hadoopの採用が広まり、フォーチュン50社の半数以上がHadoopを使用していました。[66]
クラウドでの Hadoop ホスティング
Hadoopは、従来のオンサイトデータセンターだけでなくクラウドにも導入できます。[67]クラウドを利用すると、組織はハードウェアや特定のセットアップの専門知識を取得する必要なくHadoopを導入できます。[68]
商用サポート
多くの企業がHadoopの商用実装やサポートを提供しています。[69]
ブランディング
Apacheソフトウェア財団は、Apache Hadoopプロジェクトによって公式にリリースされたソフトウェアのみがApache HadoopまたはApache Hadoopのディストリビューションと呼ばれることができると述べています。[70]他のベンダーの製品や派生作品の命名と「互換性」という用語は、Hadoop開発者コミュニティ内で多少議論を呼んでいます。[71]
論文
いくつかの論文は、Hadoop とビッグデータ処理の誕生と成長に影響を与えました。その一部を以下に示します。
- Jeffrey Dean、Sanjay Ghemawat (2004) MapReduce: 大規模クラスターでの簡素化されたデータ処理、Google。この論文は、Doug Cutting が Map-Reduce フレームワークのオープンソース実装を開発するきっかけとなりました。彼は、息子のおもちゃの象にちなんで、これを Hadoop と名付けました。
- Michael Franklin、Alon Halevy、David Maier (2005) 『データベースからデータスペースへ: 情報管理のための新しい抽象化』。著者らは、ストレージ システムがすべてのデータ形式を受け入れ、ストレージ システムのデータの理解に基づいて進化するデータ アクセス用の API を提供する必要性を強調しています。
- Fay Chang 他 (2006) Bigtable: 構造化データ用の分散ストレージ システム、Google。
- Robert Kallman 他 (2008) H-store: 高性能分散メインメモリトランザクション処理システム
参照
- Apache Accumulo – 安全なBigtable [72]
- Apache Cassandra は、Hadoopからのアクセスをサポートする列指向データベースです。
- Apache CouchDBは、ドキュメントにJSON、MapReduceクエリにJavaScript、APIに通常のHTTPを使用するデータベースです。
- ビッグデータ
- データ集約型コンピューティング
- HPCC – LexisNexisリスクソリューション ハイパフォーマンス コンピューティング クラスター
- Hypertable – HBase の代替
- セクター/領域– オープンソースの分散ストレージと処理
- Slurm ワークロード マネージャー
参考文献
- ^ 「Hadoop リリース」。apache.org。Apache Software Foundation。2019年4 月 28 日閲覧。
- ^ ab “Apache Hadoop” . 2022年9月27日閲覧。
- ^ Judge, Peter (2012年10月22日). 「Doug Cutting: ビッグデータはバブルではない」. silicon.co.uk . 2018年3月11日閲覧。
- ^ Woodie, Alex (2014 年 5 月 12 日)。「Hadoop がIBM Power に搭載される理由」。datanami.com。Datanami。2018年3月 11 日閲覧。
- ^ Hemsoth, Nicole (2014 年 10 月 15 日)。「Cray が Hadoop を HPC 空域に導入」hpcwire.com。2018年3 月 11 日閲覧。
- ^ 「Apache Hadoop へようこそ!」。hadoop.apache.org。2016年8 月 25 日閲覧。
- ^ 「Hadoop 分散ファイルシステム (HDFS) とは何ですか?」ibm.com . IBM . 2021 年4 月 12 日閲覧。
- ^ Malak, Michael (2014 年 9 月 19 日)。「データの局所性: HPC vs. Hadoop vs. Spark」。datascienceassn.org 。データ サイエンス協会。2014年10 月 30 日閲覧。
- ^ Wang, Yandong; Goldstone, Robin; Yu, Weikuan; Wang, Teng (2014 年 10 月)。「HPC システムにおけるメモリ常駐 MapReduce の特性と最適化」。2014 IEEE 第 28 回国際並列分散処理シンポジウム。IEEE。pp. 799–808。doi : 10.1109/ IPDPS.2014.87。ISBN 978-1-4799-3800-1. S2CID 11157612。
- ^ 「リソース (Apache Hadoop Main 2.5.1 API)」。apache.org。Apache Software Foundation。2014年9月12日。2014年10月6日時点のオリジナルよりアーカイブ。2014年9月30日閲覧。
- ^ Murthy, Arun (2012 年 8 月 15 日). 「Apache Hadoop YARN – 概念とアプリケーション」. hortonworks.com . Hortonworks . 2014 年9 月 30 日閲覧。
- ^ 「Continuuity がシリーズ A ラウンドで 1,000 万ドルを調達し、Hadoop エコシステム内でのビッグデータ アプリケーション開発を促進」finance.yahoo.com . Marketwired . 2012 年 11 月 14 日. 2014 年10 月 30 日閲覧。
- ^ 「Hadoop関連のプロジェクト」Hadoop.apache.org 。 2013年10月17日閲覧。
- ^ データサイエンスとビッグデータ分析:データの発見、分析、視覚化、提示。John Wiley & Sons。2014年12月19日。300ページ。ISBN 9781118876220. 2015年1月29日閲覧。
- ^ 「[nlpatumd] Hadoop と Perl の冒険」 Mail-archive.com。2010 年 5 月 2 日。2013 年4 月 5 日閲覧。
- ^ Cutting, Mike; Cafarella, Ben; Lorica, Doug (2016 年 3 月 31 日)。「Apache Hadoop の今後 10 年」。O'Reilly Media。2017年10 月 12 日閲覧。
- ^ Ghemawat, Sanjay; Gobioff, Howard; Leung, Shun-Tak (2003). 「Google ファイル システム」. pp. 20–43.
- ^ Dean, Jeffrey; Ghemawat, Sanjay (2004). 「MapReduce: 大規模クラスターでの簡素化されたデータ処理」 pp. 137–150.
- ^ Cutting, Doug (2006 年 1 月 28 日)。「新しいメーリング リストのリクエスト: hadoop」。issues.apache.org。Lucene
PMC は、Nutch の一部を Hadoop という新しいサブ プロジェクトに分割することを投票で決定しました
。 - ^ Vance, Ashlee (2009 年 3 月 17 日). 「Hadoop、フリーソフトウェア プログラム、検索以外の用途も発見」. The New York Times . 2011 年 8 月 30 日時点のオリジナルよりアーカイブ。2010年1 月 20 日閲覧。
- ^ Cutting, Doug (2006 年 3 月 30 日)。"[結果] 投票: Owen O'Malley を Hadoop コミッターとして追加". hadoop-common-dev (メーリング リスト)。
- ^ 「/dist/hadoop/core のインデックス」。archive.apache.org。2017年12 月 11 日閲覧。
- ^ 「Who We Are」. hadoop.apache.org . 2017年12月11日閲覧。
- ^ Borthakur, Dhruba (2006). 「Hadoop 分散ファイル システム: アーキテクチャと設計」(PDF) . Apache Hadoop コード リポジトリ.
- ^ 「リリース 2.10.2 が利用可能」。hadoop.apache.org。
- ^ 「リリース 3.0.0 が一般公開されました」。hadoop.apache.org。
- ^ 「リリース 3.0.3 が利用可能」。hadoop.apache.org。
- ^ 「リリース 3.1.4 が利用可能」。hadoop.apache.org。
- ^ 「リリース 3.2.4 が利用可能」。hadoop.apache.org。
- ^ 「リリース 3.3.6 が利用可能」。hadoop.apache.org。
- ^ 「リリース 3.4.0 が利用可能」。hadoop.apache.org。
- ^ Chouraria, Harsh (2012 年 10 月 21 日). 「MR2 と YARN の簡単な説明」. Cloudera.com . 2013 年 10 月 22 日時点のオリジナルよりアーカイブ。2013年10 月 23 日閲覧。
- ^ 「HDFS ユーザーガイド」。Hadoop.apache.org。2014年9 月 4 日閲覧。
- ^ 「Ubuntu Linux システムで Hadoop を実行する (マルチノード クラスター)」。
- ^ 「Ubuntu Linux で Hadoop を実行する (シングルノード クラスター)」 。 2013 年6 月 6 日閲覧。
- ^ Evans, Chris (2013 年 10 月)。「ビッグ データ ストレージ: Hadoop ストレージの基礎」。computerweekly.com。Computer Weekly。2016年6月 21 日閲覧。HDFS
は従来の意味でのファイル システムではなく、通常はユーザーが直接表示できるようにマウントされません
。 - ^ deRoos, Dirk. 「Hadoop ファイル システム コマンドによるファイルの管理」。dummies.com。For Dummies 。 2016 年6 月 21 日閲覧。
- ^ Balram. 「初心者のためのビッグデータHadoopチュートリアル」www.gyansetu.in . 2021年3月11日閲覧。
- ^ 「Apache Hadoop 2.7.5 – HDFS ユーザーズガイド」。2019年10月23日時点のオリジナルよりアーカイブ。2020年6月19日閲覧。
- ^ 「HDFSアーキテクチャ」 。 2013年9月1日閲覧。
- ^ ab Pessach, Yaniv (2013). 「分散ストレージ」(分散ストレージ:概念、アルゴリズム、実装編)。OL 25423189M。
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)が必要です - ^ 「バージョン 2.0 では手動フェイルオーバーが提供されており、自動フェイルオーバーにも取り組んでいます」。Hadoop.apache.org。2013年7 月 30 日閲覧。
- ^ 「異機種 Hadoop クラスターでのデータ配置による MapReduce パフォーマンスの向上」(PDF)。Eng.auburn.ed. 2010 年 4 月。
- ^ “HDFS のマウント”。2014 年 5 月 14 日時点のオリジナルよりアーカイブ。2016 年8 月 5 日閲覧。
- ^ Shafer, Jeffrey; Rixner, Scott; Cox, Alan. 「Hadoop 分散ファイルシステム: 移植性とパフォーマンスのバランス」(PDF)。ライス大学。2016 年9 月 19 日閲覧。
- ^ Mouzakitis, Evan (2016 年 7 月 21 日)。「Hadoop パフォーマンス メトリックの収集方法」。2016 年10 月 24 日閲覧。
- ^ 「HDFS ユーザー ガイド – ラック認識」。Hadoop.apache.org。2013年10 月 17 日閲覧。
- ^ 「クラウド分析: ストレージ スタックを本当に再発明する必要があるのか?」(PDF) IBM。2009 年 6 月。
- ^ 「HADOOP-6330: Hadoop ファイルシステム インターフェースの IBM General Parallel File System 実装の統合」。IBM。2009 年 10 月 23 日。
- ^ 「HADOOP-6704: Parascale ファイルシステムのサポートを追加」。Parascale。2010 年 4 月 14 日。
- ^ 「HDFS with CloudIQ Storage」。Appistry, Inc. 2010年7月6日。2014年4月5日時点のオリジナルよりアーカイブ。2013年12月10日閲覧。
- ^ 「高可用性 Hadoop」。HP。2010 年 6 月 9 日。
- ^ 「コマンドガイド」。2011年8月17日。2011年8月17日時点のオリジナルよりアーカイブ。2017年12月11日閲覧。
{{cite web}}: CS1 maint: bot: 元の URL ステータス不明 (リンク) - ^ 「JobTracker からスケジューラをリファクタリングする」。Hadoop Common。Apache Software Foundation。2012年6 月 9 日閲覧。
- ^ Jones, M. Tim (2011 年 12 月 6 日). 「Hadoop でのスケジューリング」. ibm.com . IBM . 2013 年11 月 20 日閲覧。
- ^ 「Hadoop Fair Scheduler 設計ドキュメント」(PDF) apache.org . 2017 年10 月 12 日閲覧。
- ^ 「CapacityScheduler ガイド」。Hadoop.apache.org。2015年12 月 31 日閲覧。
- ^ 「Apache Hadoop 3 が Apache Hadoop 2 よりも価値を高める理由」hortonworks.com 2018 年 2 月 7 日。2018 年 11 月 16 日時点のオリジナルよりアーカイブ。2018年6 月 11 日閲覧。
- ^ Chintapalli, Sanket; Dagit, Derek; Evans, Bobby; Farivar, Reza; Graves, Thomas; Holderbaugh, Mark; Liu, Zhuo; Nusbaum, Kyle; Patil, Kishorkumar; Peng, Boyang Jerry; Poulosky, Paul (2016 年 5 月)。「ストリーミング計算エンジンのベンチマーク: Storm、Flink、Spark ストリーミング」。2016 IEEE国際並列分散処理シンポジウム ワークショップ (IPDPSW)。IEEE。pp. 1789–1792。doi :10.1109/IPDPSW.2016.138。ISBN 978-1-5090-3682-0.S2CID 2180634 。
- ^ 「30 社以上の企業が Hadoop をどのように利用しているか」、DBMS2 より。Dbms2.com。2009 年 10 月 10 日。2013年10 月 17 日閲覧。
- ^ 「 Yahoo!が世界最大の Hadoop プロダクション アプリケーションを発表」。Yahoo。2008年 2 月 19 日。2016 年 3 月 7 日時点のオリジナルよりアーカイブ。2015年12 月 31 日閲覧。
- ^ 「Yahoo! における Hadoop と分散コンピューティング」。Yahoo!。2011 年 4 月 20 日。2013 年10 月 17 日閲覧。
- ^ 「HDFS: Facebook は世界最大の Hadoop クラスターを保有!」 Hadoopblog.blogspot.com。2010 年 5 月 9 日。2012年5 月 23 日閲覧。
- ^ 「Under the Hood: Namenode と Avatarnode による Hadoop 分散ファイル システムの信頼性」 Facebook 。2012年9 月 13 日閲覧。
- ^ 「Under the Hood: Corona で MapReduce ジョブをより効率的にスケジュールする」 Facebook 。2012年11 月 9 日閲覧。
- ^ 「Altior の AltraSTAR – Hadoop ストレージ アクセラレータおよびオプティマイザが CDH4 (Apache Hadoop バージョン 4 を含む Cloudera のディストリビューション) で認定されました」(プレス リリース)。イートンタウン、ニュージャージー州: Altior Inc. 2012 年 12 月 18 日。2013年10 月 30 日閲覧。
- ^ 「Hadoop - Microsoft Azure」。azure.microsoft.com。2017年12月 11 日閲覧。
- ^ 「Hadoop」。Azure.microsoft.com。2014年7 月 22 日閲覧。
- ^ 「Hadoop イノベーションのペースを加速させる必要がある理由」Gigaom.com、2011 年 4 月 25 日。2013年10 月 17 日閲覧。
- ^ 「Hadoop の定義」Wiki.apache.org。2013 年 3 月 30 日。2013年10 月 17 日閲覧。
- ^ 「Hadoop 互換性の定義: 再考」。Mail-archives.apache.org。2011 年 5 月 10 日。2013年10 月 17 日閲覧。
- ^ 「Apache Accumulo ユーザーマニュアル: セキュリティ」。apache.org。Apache Software Foundation。2014年12 月 3 日閲覧。
文献
- ラム、チャック (2010 年 7 月 28 日)。Hadoop in Action (第 1 版)。Manning Publications。p . 325。ISBN 978-1-935-18219-1。
- Venner, Jason (2009 年 6 月 22 日). Pro Hadoop (第 1 版). Apress . p. 440. ISBN 978-1-430-21942-2. 2010年12月5日時点のオリジナルよりアーカイブ。2009年7月3日閲覧。
- ホワイト、トム (2009 年 6 月 16 日)。Hadoop: 決定版ガイド (第 1 版)。O'Reilly Media。p . 524。ISBN 978-0-596-52197-4。
- Vohra, Deepak (2016 年 10 月)。実践的な Hadoop エコシステム: Hadoop 関連フレームワークとツールの決定版ガイド (第 1 版) 。Apress。p . 429。ISBN 978-1-4842-2199-0。
- Wiktorski, Tomasz (2019年1月)。データ集約型システム。シャム、スイス: Springer。ISBN 978-3-030-04603-3。
外部リンク
- 公式サイト
