序文
ビッグデータ処理システム:Hadoop2.6を使用したHadoopソースコードシナリオ分析。あなたが少し野心的で、ビッグデータ処理システムをより深く完全に理解したい場合、特にいつかそのようなシステムを自分で設計したい場合、または自分で作成したい場合は、この記事を本当に読む必要がありますおよびHadoopのソースコード。他の人がどのように設計および実装しているかを確認してください。
次に、最後の章で、Sparkがどのようなもので、どのような改善が行われているのかを見てみましょう。コンピュータクラスタ上にビッグデータ処理システムを構築することで、どのコンポーネントが不可欠で、どの側面を改善できるか、オペレーティングシステムとの関係、そして「大規模なコンピュータクラスタの運用」としてどのようなシステムであるかがわかります。のようにすることができ、そうあるべきです。
でも、コンピューターを使わない人でも読めるように頑張って書いています。もちろん、もっと難しいですが、決して理解できないわけではありません。このため、この記事の説明は単純すぎるように思われるかもしれませんし、時には少し長すぎるかもしれません。
学習カタログ
メインコンテンツ
全文は全部で20章に分かれています。内容が多いので大まかな紹介をします。各セクションにはより詳細な内容があります!
第1章ビッグデータとHadoop、
第2章調査方法、私たちの目的はHadoopのソースコードを調査することであり、調査には調査方法が必要です。ここでいう調査方法とは、さまざまなコンピュータプログラムのソースコードを読み、分析し、理解する方法と手段を指します。実際、これには標準的な方法や認められた方法はありません。人によって使用される方法や方法は異なる場合があります。ここでは、他の人を引き付けるために、私が使用する方法を読者に紹介します。
第3章HadoopクラスターとYARN、Hadoopは単一のマシンでも実行できますが、このプラットフォームの一般的な運用シナリオは間違いなくマルチマシンクラスター(クラスター)です。Hadoopプラットフォームの境界に関する限り、Hadoopプラットフォームを実行しているクラスターを「Hadoopクラスター」と呼びます。その中の各マシンはクラスターの「ノード」になり、ノードは接続されてローカルエリアネットワークを形成します。このローカルエリアネットワークは通常、ルーティングネットワークではなく、スイッチングネットワークです。これは、クラスター内にスイッチ(通常はレイヤー2スイッチまたはレイヤー3スイッチ)のみが存在することを意味しますが、これらのルーターによって導入される遅延が大きすぎるため、通常のルーターはありません。ただし、これは絶対的なものではありません。クラスターを異なるネットワークセグメントに分割し、ルーターを介して接続する必要がある場合もありますが、これはHadoopの動作には影響しません(パフォーマンスの低下を除く)。Hadoopに関する限り、ルーターとスイッチは論理的に同じです。
第4章HadoopのRPCメカニズムであるRPCは、「RemoteProcedureCall」の略語である「RemoteProcedureCall」です。このメカニズムの目的は、あるマシン上のプログラムが、ローカルの「プロシージャ」を呼び出しているかのように、他のマシン上の特定のプロセスを呼び出せるようにすることです。ここでのいわゆる「プロセス」は、従来のCプログラミングではまとめて「関数」と呼ばれます。Pascalプログラミングでは、PROCEDUREまたはFUNCTIONのいずれかであり、JavaなどのOOプログラミング言語では「メソッド」です。したがって、従来のJava RPCメカニズムはRMIと呼ばれ、「リモートメソッド呼び出し」です。
この[ビッグデータ処理システム:Hadoopソースコードシナリオ分析]は合計783ページで、並べ替えられてパッケージ化されています。コンテンツのフルバージョンが必要な友達は私をフォローしてVX:MXW5308を追加して無料で入手できます。!
第5章Hadoopジョブの送信コンピューターでアプリケーションを開始して実行するには、最初にこのアプリケーションを「ジョブ」としてコンピューターシステムに送信します。
通常、これはコマンドラインを入力するかアイコンをクリックすることで実現され、操作は非常に簡単です。ただし、宿題を提出するときにシステムの内部プロセスを調べたい場合は、より複雑になります。オペレーティングシステムを学んだ人は、1台のコンピューターでの求人の提出プロセスをより深く理解するでしょうが、それはこの本の焦点ではありません。この本は、通常はコンピュータークラスターで実行されるHadoopシステムでジョブが送信される方法に焦点を当てています。
第6章ジョブのスケジューリングと割り当て、
第7章NodeManagerとタスクの運用開始ユーザーが送信したジョブがResourceManagerによって受け入れられ、実行がスケジュールされた後、RMはそれを運用開始しようとします。ただし、ジョブ(ジョブまたはアプリ)には通常、NMapTaskや1ReduceTaskなどの多くのタスクが含まれているため、ジョブの操作は最終的に多くのタスクの操作に分解されます。
第8章MRAppMasterとジョブの起動、
第9章YARNサブシステムのコンピューティングフレームワークHadoopのYARNサブシステムの使命は、ビッグデータのコンピューティングフレームワークをユーザーに提供することです。初期のHadoopと初期のYARNでさえ、1つのコンピューティングフレームワーク、つまりMapReduceしか提供していませんでした。前述のように、MapReduceはミニマリストですが、多くの場合、非常に効果的なコンピューティングモデルおよびフレームワークです。
ただし、HadoopのMapReduceフレームワークでは、ユーザーがJava言語で記述されたMapperとReducerを提供する必要があります。また、アプリ自体は単純ですが、Javaを記述する必要があるため、一部のユーザーは少し不便に感じます。また、MapReduceモデルは単純すぎて単調すぎます。そのため、Hadoopには、MapReduceに加えて、Chain andStreamと呼ばれるコンピューティングフレームワークも提供する新しい開発がいくつかあります。一方では、ユーザーはJavaプログラミングを使用する必要はありません。他方では、ユーザーはLinux上のユーティリティツールソフトウェアを使用して、「データストリーム」のような構造を構築できます。この章では、YARNサブシステムがユーザーに提供するコンピューティングフレームワークを紹介します。もちろん、これは主に従来のMapReduceフレームワークです。
第10章MapReduceフレームワークのデータフロー
第11章HadoopのファイルシステムHDFS
第12章HDFSのDataNode
第13章DataNodeとNameNode間の相互作用DataNodeは、操作中に3つのピアと相互作用します。
1つ目はNameNodeです。前述のように、データブロックの保存場所は最初はNameNodeによって割り当てられ、指定されますが、関連情報は最終的にDataNodeのレポートから取得されます。
2つ目は、ユーザーのアプリ(シェルを含む)です。ユーザーのアプリは、クラスター内の任意のノードに存在できますが、DataNodeと同じノード上にある場合でも、別のJVM上にあります。互いに独立しています。ただし、DataNodeにデータを格納したり、DataNodeからデータを読み取ったりするのはアプリ(またはシェル)です。
3番目のタイプはクラスター内の他のDataNodeです。これは、DataNodeとDataNodeの間で通信と相互作用が発生することを意味します。これは、主にデータブロックレプリカの送信とダンプから発生します。
HDFSファイルシステムでのデータブロックの保存は「ウサギの3つの洞窟」です。データブロックは複数の異なるDataNodeに保存する必要があります。ただし、システムでは、アプリが1つのデータブロックを複数のDataNodeに送信する必要はありません。それらの1つに送信する必要があり、残りはDataNode間の問題です。
第14章DataNode間の相互作用
第15章HDFSでのファイルアクセス
第16章Hadoopのフォールトトレラントメカニズム
第17章Hadoopセキュリティメカニズム
第18章Hadoopのマンマシンインターフェース、つまり人々が直接使用するシステムは、マンマシンインタラクションの手段、つまり「UserInterface」またはUI、より正確には「Man-MachineInterface」を提供して、人々がこのシステムを使用および管理できるようにする必要があります。プラットホーム。比
第19章Hadoopのデプロイと起動、システムのインストールとデプロイは、大規模なクラスターは言うまでもなく、簡単なことではありません。Hadoopは通常cluster_で実行されますが、運用および保守担当者が各マシンに実行してデプロイまたは開始することは非現実的です。集中型コンソールノードでHadoopのデプロイと開始を完了できる必要があります(関連するmachine)は優れています。もちろん、プロセス全体に多くの技術的な複雑さが加わります。集中型コンソールノードにクラスターをデプロイして開始するため、もちろんリモート操作と切り離せないため、Linuxリモート操作ツールのsshとrsyneがプロセス全体の基礎になっています。他のリモート操作ツール(Telnetなど)ではなく、sshとrsyncである理由は、2つのセキュリティが比較的良好であり、通信に強力な暗号化方式が使用されているためです。
第20章Sparkの最適化と改善
近年、HadoopとSparkの間で競争が起こっています。今日、HadoopとSparkは、ビッグデータ処理プラットフォームの2つの「デファクトスタンダード」になっています。
ただし、SparkとHadoopは完全に反対のプラットフォームまたは製品ではありません。大部分は、Hadoopの代わりではなく、Hadoopの補足です。
実際、Sparkは「スタンドアロン」モードで独立して存在および実行することもできますが、それでもYARNフレームワークで実行するためにYARNをさらに使用します。また、Sparkは独自のファイルシステムを提供しておらず、ほとんどの場合、HDFSを直接使用しています。SparkはHDFSの使用を必要としませんが、大規模なクラスターの条件下では、「データの場所、計算の場所」の原則を実装する必要があり、フォールトトレラントである必要があります。多くの選択肢はありません。
したがって、機能の観点からは、Sparkの役割はより優れたYARNサブシステムとまったく同じです。
Hadoopの欠点は明らかです。つまり、MapReduce専用の柔軟性と比較的剛性が十分ではありません。次に、パフォーマンスが十分ではありません。3つ目は、使い勝手が悪く、Javaを作成する必要があります。毎ターンプログラムします。
では、Sparkはこれに対してどのような改善を行っていますか?ここにいくつかの紹介とコメント、およびHadoopとSparkの大まかな比較研究があります。
この[ビッグデータ処理システム:Hadoopソースコードシナリオ分析]は合計783ページで、並べ替えられてパッケージ化されています。コンテンツのフルバージョンが必要な友達は私をフォローしてVX:MXW5308を追加して無料で入手できます。!