what is hadoop apache hadoop tutorial
初心者向けのこのApacheHadoopチュートリアルでは、ビッグデータHadoop、その機能、フレームワーク、アーキテクチャについて詳しく説明しています。
携帯電話に最適なリモートスパイウェア
前のチュートリアルでは、ビッグデータについて詳しく説明しました。ここで問題となるのは、このような大量のデータをどのように処理および処理して、信頼性が高く正確な結果を得ることができるかということです。
確かに、Apacheによって提供され、Javaを利用した優れたソリューションがあります。 Hadoopフレームワーク 。
=> 簡単なビッグデータトレーニングシリーズをお読みください。
学習内容:
Hadoopとは何ですか?
Apache Hadoopは、すべてのタイプのデータ(構造化、非構造化、半構造化)を管理するためのオープンソースフレームワークです。
ご存知のとおり、データを処理、保存、管理する場合は、RDBMSが最適なソリューションです。ただし、データはRDBMSで処理するために構造化された形式である必要があります。また、データのサイズが大きくなると、RDBMSはそれを処理できなくなり、データベースのクリーンアップを定期的に実行する必要があります。
これにより、履歴データが失われる可能性があり、天気予報、銀行、保険、販売などの一部の業界では正確で信頼性の高い結果を生成できません。RDBMSの別の問題は、メインサーバーがダウンすると、重要な情報が失われる可能性があることです。データと多くの苦しみ。
このチュートリアルでは、ApacheHadoopでこれらの問題をどのように克服できるかを見ていきます。
Hadoopは分散ファイルシステムであり、大量のデータ(ペタバイトおよびテラバイトのデータ)を格納できます。データ処理速度も非常に高速で、非常に高いフォールトトレランスシステムを備えているため、信頼性の高い結果が得られます。
Hadoopは、分散コンピューティング環境での大規模データセットの保存と処理をサポートするJavaベースのオープンソースプログラミングフレームワークです。
Hadoopは、コモディティハードウェアを使用したクラスターコンセプトに基づいています。複雑な構成を必要とせず、より安価でシンプルかつ軽量な構成ハードウェアを使用してHadoop環境を確立できます。
簡単に言うと、クラスターの概念は、複数のマシンにレプリケーション形式で保存されるデータです。そのため、データが存在する場所の1つで問題や災害が発生した場合、そのデータの複製コピーを別の場所で安全に利用できる必要があります。 。
HadoopとRDMBS
以下に、RDBMSに対するHadoopの利点を説明するいくつかのポイントを示します。
特徴 | Hadoop | RDBMS |
---|---|---|
ストレージ | 非常に大容量のストレージ。 | ビッグデータを保存できません。 |
建築 | Hadoopは、HDFS、MapReduce、およびYARNに基づいています。 | RDBMSはACIDプロパティに基づいています。 |
ボリューム | 大量のデータを処理できます。 | RDBMSは大量のデータを処理できません。 |
多様性/データの種類 | ビデオ、画像、CSVファイル、xmlなどの構造化データ、半構造化データ、非構造化データを処理できます。 | 構造化データのみを処理します。 |
速度 | 大量のデータの高速処理。 | 大量のデータを処理している間は非常に遅くなります。 |
スループット | 高スループット。 | 低スループット。 |
フォールトトレランス | とても良い | メインサーバーがダウンした場合、失われたデータを回復することはできません。 |
信頼性のある | 非常に信頼性が高く、正確な履歴レポートと現在のレポートを生成します。 | ビッグデータに関しては信頼できません。 |
Hadoopの機能
これで、Hadoopの正確な定義がわかりました。一歩前進して、Hadoopで使用されている用語に慣れ、そのアーキテクチャを学び、ビッグデータでどのように機能するかを見てみましょう。
Hadoopフレームワークは、次の概念またはモジュールに基づいています。
- Hadoop YARN
- Hadoop Common
- Hadoop HDFS( H adoop D 配布 F と S システム)
- Hadoop MapReduce
#1)Hadoop YARN: YARNは「 Y そして に 他の R esource N クラウドのクラスター技術を管理するために使用される「egotiator」。ジョブのスケジューリングに使用されます。
#2)Hadoop共通: これは、YARN、MapReduce、HDFSなどのHadoopの他の機能との通信に使用される詳細なライブラリまたはユーティリティです。
#3)Hadoop HDFS: 分散ファイルシステムは、Hadoopで大量のデータを保存および処理するために使用されます。また、クラスターからデータにアクセスするためにも使用されます。
#4)Hadoop MapReduce: MapReduceは、クラスター内のデータの処理を担当するHadoopの主な機能です。これは、ジョブのスケジューリングとデータ処理の監視に使用されます。
ここでは、これらの機能の定義を含めましたが、これらすべての機能の詳細な説明は、今後のチュートリアルで説明します。
Hadoopアーキテクチャ
フレームワークのアーキテクチャを学び、フレームワークで使用されているコンポーネントを見てみましょう。このフレームワークは、クラスター内のマスタースレーブアーキテクチャに従います。
Hadoopコンポーネントは次のとおりです。
- HDFS
- MapReduce
- 糸
これらは、Hadoopアーキテクチャの3つの重要なコンポーネントです。また、アーキテクチャのいくつかの用語や概念を理解し、それらがどのように機能するかを確認する必要があります。
- 名前ノード
- データノード
- セカンダリネームノード
- ブロック
#1)名前ノード
名前ノードは、HDFSのマスターノードです。これには、ファイル情報、ディレクトリ構造、ブロック情報、データノードのすべての情報などのHDFSのメタデータが含まれます。ネームノードは、クライアントからのデータまたはファイルへのアクセスのみを担当します。ファイルに加えられたすべてのトランザクションまたは変更を追跡します。
これは主に2つのファイルで機能します。 FsImage そして EditLogs 。名前ノードには、どのデータノードにどのタスクがあるか、各データノードにいくつのブロックがあるか、各データノードのハートビート、クラスター内のジョブスケジューリングの詳細など、データノードのすべての詳細を含むJobTrackerがあります。
つまり、JobTrackerには各データノードのTaskTrackerが含まれていると言えます。
#2)データノード
データノードは、HDFSのスレーブノードです。データノードは、データの実際の保存と処理を担当します。その主なタスクは、ジョブを3つのブロックに分割し、それを異なるデータノードに保存することです。その後、データの処理を開始します。
また、各ブロックの完全な情報を持ち、どのブロックがどのタスクを担当し、どのブロックがタスクを完了したかなどを担当するTaskTrackerがあり、データを処理した後、情報をNameNodeに送信します。データノードが起動するたびに、すべての情報がネームノードに再度送信されます。
#3)セカンダリネームノード
フォールトトレランスの場合、セカンダリネームノードが使用されます。ネームノードが単一障害点であるため、ネームノードがダウンし、完全なHadoop構造が失敗するシナリオは2つあります。
(i)大量のデータがあるため、名前ノードが再起動するのにかかった時間よりも問題が原因で再起動した場合、回復には時間がかかります。
(ii)Name Nodeがクラッシュした場合、Name Nodeは単一障害点であるため、すべてのHDFSデータが失われ、再度回復することはできません。したがって、これらの問題を克服するために、セカンダリネームノードがあります。また、名前空間イメージと、名前ノードと同じ編集ログも含まれています。
一定期間が経過すると、名前空間イメージがコピーされ、名前ノードから編集ログが更新されます。したがって、ネームノードに障害が発生した場合、セカンダリネームノードが登場し、プライマリネームノードのように動作します。このプロセスにより、完全な障害を防ぎます。
#4)ブロック
ブロックは、HDFSの最小単位です。 Hadoopは、ファイルを小さなブロックに分割するため、大量のファイルを処理できます。ブロックは巨大なファイルのデータに他ならないと言えます。各ブロックのサイズは128MBです。これらのブロックはデータノードに保存され、データを処理します。
それでは、Hadoopのアーキテクチャを学び、その動作を理解しましょう。
Hadoop分散ファイルシステム(HDFS)は、Hadoopクラスターで使用されるファイルシステムです。主にHDFSは、Hadoopデータをクラスターに格納するために使用されます。 HDFSは通常、順次データ処理に取り組んでいます。すでに知っているように、それはマスタースレーブアーキテクチャに基づいています。
クラスターのすべてのメタデータはJobTrackerのNameノードに保存され、実際のデータはTaskTrackerのHDFSのデータノードに保存されます。
MapReduceはデータの処理を担当します。ファイルが処理のためにクラスターに入ると、最初のデータノードがそれをブロックに分割し、各ブロックには64MBのデータが含まれ、128MBを格納できます。次に、各ブロックは2回複製され、クラスター内の任意の場所にある異なるデータノードに格納されます。
このすべての情報は名前ノードに送信され、名前ノードはこの情報をメタデータの形式で保存します。次に、データの実際の処理によってデータノードが開始され、3秒ごとにネームノードにハートビートが送信されるため、ネームノードにはこのデータノードが処理している情報が含まれます。
データノードのいずれかがハートビートの送信に失敗した場合、ネームノードは別のデータノードにそのブロックのレプリカを再度作成し、処理を開始します。
この情報またはスナップショットはすべてFsImageに保存され、トランザクションが実行されると、編集ログが新しい情報をマージし、常にログの新しいコピーを保持します。
最初にタスクを終了するブロックが実行され、データノードが名前ノードに情報を送信し、それに応じて名前ノードがアクションを実行します。
このプロセス全体で、YARNは必要なリソースをサポートしてシステムに提供し、データ処理と速度に影響を与えないようにします。データを処理した後、結果はさらに分析するためにHDFSに保存されます。
結論
このチュートリアルでは、Hadoopとは何か、RDBMSとHadoopの違い、Hadoopの利点、コンポーネント、アーキテクチャについて学びました。
このフレームワークは、ビッグデータの処理と分析を担当します。 MapReduce、YARN、およびHDFSがクラスターで機能していることを確認しました。
注意: 以下は、ネームノードとデータノードの構成の詳細です。セカンダリネームノードは、ネームノードと同じ構成になります。
名前ノード構成:
プロセッサー:2GHzで動作する2つのクアッドコアCPU
RAM:128 GB
ディスク:6 x 1TB SATA
ネットワーク:10ギガビットイーサネット
データノードの構成:
プロセッサー:2GHzで動作する2つのクアッドコアCPU
RAM:64 GB
ディスク:12-24 x 1TB SATA
ネットワーク:10ギガビットイーサネット