ビッグデータHadoopのチュートリアル:Hadoopのコア構造の詳細な分析

調査の概要、どのHDFS、MapReduceの、HBaseの内部機構の観点から詳細な分析のこの段階によって、ハイブが実行され、ビルド内部データベースとのHadoopは、特定の実装に基づいて、データウェアハウスを配布しました。フォローアップの欠如が改定された場合。

よりエキサイティングなコンテンツ、学ぶために私をポイントしてください

HDFSアーキテクチャ

全体Hadoopのアーキテクチャは、HDFSを介して分散ストレージの基礎となる支持を達成するために、及びMRによる分散並列処理プログラムのサポートの課題を達成するために主にあります。

HDFS主従(マスター/スレーブ)の構造モデルは、HDFSクラスタは、データノード名前ノードの数で構成され、最新バージョンは、より多くの名前ノードを達成したHadoop2.2の構成(構成 - 理由ソースのHadoopを変更することにより、いくつかの大企業達成された最新バージョンでの機能を実現するためのコード)。プライマリサーバとして名前ノードはファイルシステムの名前空間の操作やファイルへのクライアントアクセスを管理します。データノード管理データ格納。HDFSは、データのファイル形式をサポートしています。

内部的には、ファイルはデータノードのセットに複数のデータブロックを格納する複数のデータブロックに分割されます。こうしたオープン、クローズなどのファイルシステムの名前ノードの名前空間は、ファイルまたはディレクトリの名前を変更し、データブロックは、特定のデータノードをマッピングする責任があります。読み書きファイルシステムクライアントファイルの処理を担当データノード、および作業を削除し、コピーし、統一された名前ノードでデータベースを作成します。名前ノードは、ユーザデータが名前ノード経由になることはありません、すべてのHDFSメタデータの管理者です。

図:HDFSアーキテクチャ図。

名前ノード、データノード、クライアント:図は、3つの役割を伴います。名前ノードマネージャは、データノードにより格納されたファイルであり、クライアントは、アプリケーション、分散ファイルシステムを取得する必要があります。

よりエキサイティングなコンテンツ、学ぶために私をポイントしてください

ファイルの書き込み:

1)クライアントが要求ファイルが名前ノードに書き込まれ始めました。

2)ファイルサイズとブロックに基づいて、名前ノードの構成ファイルには、それはデータノードのクライアント管理情報に返されます。

3)複数のファイルにクライアント・ブロック、データノードのアドレスに従って、ブロック書き込まれたデータノードをブロックするためです。

ファイルを読み取ります:

1)クライアントは、ファイルの名前ノードを読み出す要求を開始します。

2)名前ノードリターンデータノード情報保存されたファイルが。

3)クライアントは、ファイルの情報を読み込みます。

ポイントを学ぶことができる分散ファイルシステムのデータ管理などHDFS:

ファイルブロックを配置:ブロックは、名前ノードDateNodeは、指定されたデータノードデータノード上に存在しない同じマシン、同じラックデータノードにデータノードを指定されたもので、指定した上で、3つのバックアップを持っています。目的のアカウントに同じ問題ラック障害の状況を取るために、このように、バックアップデータのセキュリティにあり、かつデータ性能の異なるコピーを持参します。

MapReduceのアーキテクチャ

MRは、構成TaskTracker上の各クラスタ・ノードからマスターノードとJobTrackerの実行時に実行されている単一のフレームです。マスターノードは、ジョブをスケジュールする責任があり、これらのタスクは、ノードは異なる別の上に分散されている、すべてのタスクを構成しています。マスターノードは、その実施を監視し、再実行タスクが前に失敗しました。ノードからのみ、マスターノードによって割り当てられたタスクを担当しています。ジョブが送信されると、JobTrackerは、ジョブを送信し、設定情報を受信した後は、しばらくタスクのスケジューリング、ノード構成情報の十分位から送信され、TaskTrackerの実装を監視します。JobTrackerはクラスタ内の任意のコンピュータ上で実行することができます。タスクを実行する責任TaskTrackerは、それは計算ノードも、データノード、データノードの両方のデータ・ストレージ・ノード上で実行する必要があります。JobTrackerは、マップタスクとタスク配布されるフリーTaskTrackerを減らすには、これらのタスクを並列に実行し、状況を監視するためのタスクを実行します。JobTrackerが決裂した場合は、JobTrackerタスクは、別の自由TaskTrackerの再実行に移されます。

HDFSとHadoopのMRは、一緒になって、システムのコア分散アーキテクチャを構成しています。分散ファイル・システム上のHDFSクラスタは、MRの実装は、コンピューティング、クラスタ上でタスクを分散処理します。HDFSは、MRがHDFS、トラッキング、作業の実行に基づいて配信タスクを達成し、MRタスク処理およびストレージのサポートファイル操作を提供し、その結果を収集し、両者の間の相互作用は、分散クラスタの主なタスクを完了するために。

並列アプリケーションは、MRのHadoopプログラミングフレームワークの開発です。MRモデルプログラミングの原則:出力セットのキーと値のペアのセットを生成するためのキーと値の入力を使用します。MRライブラリは、このフレームワークを実装すると、地図は2つの機能によって削減します。ユーザ定義のマップ機能は、キーと値のペアの入力を受け取り、そして、中間キーと値のペアのセットを生成します。MRのコンバインは、すべてのキー値の同じ値を持っている、と伝達関数を減らします。ファンクションキーを削減し、関連する結合値を受け入れ、小さく設定値を形成する、合成値の関数値を減少させます。通常、私たちは関数の値を低減するために設け値の中央を置くあなたは、メモリ内のコレクションの全体の価値に価値の多くを扱うことができないので、反復子によって(イテレータの役割は、これらの値の値を収集することです)。

よりエキサイティングなコンテンツ、学ぶために私をポイントしてください

によって描かれた第三の説明:(の写真はコンパニオンピース)

手短に言えばプロセスは、大規模なデータセットは、データセットの多数の小さなブロックに分割され、複数のデータセットは、クラスタノード処理にグループ化し、中間結果を生成しています。マップ機能マップは、順序付け(キー値に基づく)を行う(出力フレームが並べ替えをマップする)場合、単一ノードでの作業の後、地図データは、キャッシュにデータ、関数データ(K1、V1)を得るために、ライン毎に読み取られます入力(K2、V2)。各マシンは同じことをするでしょう。マージプロセスソーティングによって、異なるマシン(K2、V2)の最終(K3、V3)、HDFSにファイル出力を与えるように組み合わさ減らす(処理シャッフル処理が正面を低減することが理解されよう)。

データ統合の第一の中間データ(コンバイン)、削減する前に、減らすことができます言えば、合併の同じキーの中間程度です。プロセスを組み合わせて、プロセスは類似している減らすが、一部としてマップタスクを組み合わせ、次いでのみマップ機能を実行した後に行われます。これにより、ネットワークトラフィックを減少させる、キーと値のペアの数を減少させるために中間結果を組み合わせます。

完成における中間結果のマップタスクは、ローカルディスクに保存されたファイルの形で、組み合わせとパーティション。場所の中間結果が中間結果を取得するデータノードまでのタスクを減らす通知し、その後、JobTrackerをマスターファイルJobTrackerを通知します。すべてのマップタスクの中間結果は、ハッシュ関数は、R、Rの部分に分割されることによって生成されたそれらのキー値であり、各タスクのキー間隔を減少させるの一部を担っています。各ノードはキー部を担当して中間結果に収まるマップタスクの多くを取り、その後、機能を削減する必要性は、最終的な結果を形成するために、最後に行われ、減らします。Rは、タスクを削減して、最終的な結果は、多くの場合、別のパラレルを開始するには、別の計算タスクへの入力として使用することができ、最終的な結果Rとして、最終的な結果にマージする必要はありませんR、R、最終的な結果を持っていますコンピューティングタスク。これは、図出力データセグメント(HDFSコピー)上の複数を形成します。

HBaseのデータ管理

HBaseのは、Hadoopのデータベースです。伝統的なMySQLで、Oracleのいずれかの違いがあるかどうか。違いによる柱状のデータとラインデータという。違いによる従来のリレーショナルデータベースのデータとのNoSQL:

HBaseのVSオラクル

適切な読み取りの数が多いながら1、HBaseのは、ケースに挿入しました。Enterキーは値を取得またはいくつかの値を取得するには、いくつかのキーを入力してください。

2は、HBaseのボトルネックは、ハードディスクの転送速度です。HBaseの操作、それは、挿入されるデータの一部を更新するが、実際にインサートを更新しているが、新しい行タイムスタンプを挿入することができたデータ。削除データは、また、単に行マーカーでラインを挿入、削除、挿入します。すべての操作は、HBaseの追加の挿入操作です。HBaseのは、データベースログのセットです。ログファイルなどのストレージ、。これは、読み書きするために、通常はファイルの形で、ハードディスクの書き込みにバルクがたくさんあります。読み取りと書き込み速度は、ハードディスクと機械の間にどのくらいの速トランスミッションに依存します。オラクルのボトルネックは、ハードディスクのシーク時間です。それは多くの場合、ランダムアクセス動作です。最初のハードディスクを見つけなければならないデータ・ブロックを更新し、それをメモリに配置するには、時間をかけて、ライトバックに戻ってきて、メモリ内キャッシュを変更します。あなたは、ランダムな読み取りがある異なるブロック、探しているので。ハードディスクのシークタイムは主に速度によって決定されます。シーク時間は、基本的な技術は、時間のボトルネックを求め形成され、変更されていません。

3、HBaseのデータは、タイムスタンプ(すなわち、同一のデータが多くの異なるバージョンをコピーすることができ、ペットデータの冗長性は、また、資産である)は、多くの異なるバージョンに格納することができます。時系列データ、及びそのために特に適しルッキング・ルッキングHBaseの上位N年代順のシーン。最近表示したメッセージが、最近のブログ記事N、などの行動、N種類を書いた誰か、インターネットアプリケーションでのHBaseので、非常に多くを見つけます。

4、HBaseの制限。あなただけの単純なキーと値の問い合わせを行うことができます。読み取り操作シナリオの多数があるが、それは、高速の挿入に適しています。そして、この非常に極端なシナリオは、必ずしもすべての企業が、このような要望を持っています。一部の企業では、通常のOLTP(オンライントランザクション処理)ランダム読み取りおよび書き込みです。この場合は、Oracleの信頼性、システム

公開された41元の記事 ウォン称賛28 ビュー50000 +

おすすめ

転載: blog.csdn.net/HAOXUAN168/article/details/104110320