大量のデータを処理するには、特別な調整が必要です。一般的な計算手法では、データの水門を処理するには不十分です。さらに、複数のソースからのデータである場合はさらにそうです。ビッグデータでは、私たちが話している規模は非常に大きく、ゼタバイト、エクサバイト、または数百万ペタバイトまたは数十億テラバイトで測定されます。 Hadoopと呼ばれるフレームワーク ビッグデータ管理に関するいくつかの問題を処理するために広く使用されています。この記事では、ビッグデータに照らしてHadoopについての入門的なアイデアを提供しようとしています。
進化
ビッグバンでは何も起こりません。 Hadoopの起源と進化は段階的であり、ビッグデータを処理する時間の必要性に応じています。簡単に言うと、2003年のDougCuttingのApacheNutchプロジェクト、特にそのコード部分の最初の部分に由来しています。起源は、2003年10月に発行されたGoogle File System(GFS)から開発されました。この論文は、MapReduce:Simplified Data Processing onLargeClustersと呼ばれる別の論文に影響を与えました。 HadoopのHDFSのコードは、2006年のApache Nutchプロジェクトから除外されており、GFSおよびMapReduceアルゴリズムの影響を大きく受けています。また、「Hadoop」という名前がカッティングの息子の象のぬいぐるみに由来しているという事実は、Hadoopが明らかに対処または対処したい象が部屋にいるという考えに明確に共鳴しています。
一言で言えば
今日、Hadoopは、モノリシックなものからソフトウェアライブラリに成長しました。これは、単純なプログラミングモデルを使用して、コンピューターのクラスター全体に存在する大量のデータの分散処理を必要とするアプリケーションを開発するためのフレームワークです。単一のサーバーから数千台のマシンにスケールアップできます。アイデアは、計算とストレージを複数のコンピューターに分散して、大量のデータセットの処理を活用することです。ライブラリには、アプリケーションレイヤーのレベルで障害を検出する機能があるため、プログラマーは、障害を1つ以上の下位レベルに浸透させるのではなく、それらを処理してコンピューターのクラスター上でサービスを提供できます。管理または克服します。
したがって、Hadoopは、信頼性が高くスケーラブルな分散コンピューティング用のアプリケーションを作成するためにApacheでサポートされているツールとオープンソースライブラリの組み合わせです。
仕組み
Hadoopがビッグデータを処理する基本的な方法は3つあります。
- 最初の問題はストレージです。データは分散環境の複数のコンピューティングマシンに保存され、並列処理して時間とリソースを削減できます。データは、 Hadoop Distributed File System(HDFS)と呼ばれる環境で保持されます。 、マシンのクラスター全体で複数の形式でデータを保存するために使用されます。この目的のために、データをブロックに分割し、さまざまなデータノードに保存します。 水平スケーリングと呼ばれる手法を使用します 要件に応じて、既存のHDFSクラスターにデータノードを追加します。これにより、スケールアップが必要になったときにリソースを追加するのではなく、既存のリソースを最大限に活用できます。
- 2番目の問題は、さまざまなデータに対応することです。 HDFSは、構造化、半構造化、非構造化など、あらゆる種類のデータを保存するために装備されています。ダンプ前のスキーマ検証はありません。一度書き込まれたデータは、問題なく複数回読み取ることができます。
- 3番目の問題は、処理と保存されたデータへのアクセス方法です。この点で、MapReduceアルゴリズムが助けになり、処理がスレーブノード全体に分散されて並列に動作し、結果がマスターノードに返送されます。マスターノードは、最終結果を提供する前に結果をマージします。この部分は、HDFSに格納されたデータの並列処理用に設計されたYARNによって処理されます。
これには多くの複雑な部分がありますが、これはHadoopが一言で言えば行うことです。モジュールのアイデアは、さらなる洞察を与えるでしょう。
モジュール
Apache Hadoopプロジェクトは、6つのモジュールで構成されています。最初の4つは次のとおりです。
- Hadoop Common :これは、Hadoopで一般的に使用されるユーティリティで構成され、他のHadoopモジュールをサポートします。 Hadoop Coreとも呼ばれます また、HDFS、YARN、MapReduceとともに、エコシステムの重要な部分です。この部分で、Hadoopはハードウェアに障害が発生しやすいと想定し、プログラマーがソフトウェアの障害を自動的に処理するために必要な手段を提供します。
- Hadoop分散ファイルシステム(HDFS) :分散環境全体でさまざまなファイルに対応できる分散ファイルシステム。ファイルをブロックに分割し、分散アーキテクチャのノード間で保存します。追加のクラスタリングに対して、垂直スケーリングではなく水平スケーリングを提供します。ハードウェア展開機能の点で、フォールトトレラント性が高く低コストです。
- Hadoop YARN :これはHadoopフレームワークのCPUです。 NodeManagerと呼ばれる2つの主要なコンポーネント およびResourceManager 、YARNは、リソース割り当て、タスクスケジューリング、クラスター管理などのすべての処理アクティビティを実行します。
- Hadoop MapReduce :これは、すべての並列計算を行うためのフレームワークです。 MapReduceは、分散環境でデータを処理するための並列プログラミングモデルです。コモディティハードウェアのクラスター全体で大量のデータを効率的に処理できる分散アプリケーションを作成するために理想的に使用されます。プロセスをマップと呼ばれる2つのフェーズに分割します および削減 、マッパーのタスク クラスは、入力を受け取り、トークン化し、マップし、ソートすることです。次に、出力がレデューサーへの入力になります。 クラス。一致するペアを検索し、それらを減らします。各フェーズには入力と出力のキーと値のペアがあり、ペアのタイプはプログラマーによって決定されます。
最近、2つの新しいサブプロジェクトが追加されました:
- Hadoop Ozone :Hadoop用のスケーラブルで冗長な分散オブジェクトストアです。さまざまなサイズの数十億のオブジェクトにスケーリングする以外に、OzoneはKubernetesやYARNなどのコンテナ化された環境で効果的に機能できます。これは、 Hadoop Distributed Data Store(HDDS)と呼ばれる高可用性の複製ブロックストレージレイヤー上に構築されています。 。 [抜粋。クリックして詳細をご覧ください。]
- Hadoop潜水艦 :Hadoop用の機械学習エンジン。これは、インフラエンジニア/データサイエンティストがリソース管理プラットフォーム(YARNなど)でディープラーニングアプリケーション(Tensorflow、Pytorchなど)を実行できるようにするプロジェクトです。 [抜粋。クリックして詳細をご覧ください。]
結論
Hadoopは、検索、ロギングプロセス、データウェアハウジング、およびAmazon、Facebook、Yahooなどの多くの主要組織のビッグデータ分析に大きな影響を与えました。これは、あらゆる種類の大量のデータを保存するためのワンストップソリューションであり、事実上無制限の同時ジョブを利用するためのスケーラブルな処理能力を備えています。一言で言えば、Hadoopの人気は、フォールトトレラントで、スケーラブルで、費用効果が高く、高速な機能に大きく依存しています。