簡単に解説:おばあちゃんでもわかるビッグデータ分散コンピューティング

簡単に解説:おばあちゃんでもわかるビッグデータ分散コンピューティング

この記事はポピュラーサイエンス記事です。ビッグデータ分散コンピューティング技術を、わかりやすい例を通して皆様にご説明できればと思います。

ビッグデータ技術には、ストレージ、コンピューティング、分析などの一連の複雑な技術が含まれますが、その中核は常に分散コンピューティングでした。ビッグデータ テクノロジーを理解したい場合は、MapReduce 分散コンピューティング モデルから始めるのがよいでしょう。

この理論モデルは新しい概念ではありません。これは、2004 年に Google によってリリースされました。10 年以上の開発を経て、現在のビッグデータ エコシステムの基盤となっています。ビッグデータ技術の鍵はMapReduceにあると言えます。

従来のコンピューティング技術

分散コンピューティング テクノロジの概念に入る前に、従来のコンピューティング テクノロジを復習しましょう。

コンピュータ分野の概念を鮮明かつわかりやすくするために、コンピュータを人間に例えてみましょう。

この図では、コンピューターの基本的なコンポーネント間の類似性を示しています。厳密ではありませんが、問題を説明するには十分です。

この類推により、コンピュータ分野の問題を、私たちがよく知っている人間分野の問題に変換することができます。

これからは、あなたも含め誰もがコンピュータであり、私たちはそれを「人間コンピュータ」と呼びます。あなたには基本的なコンピュータ部品があり、神はプログラム、つまりいくつかのコンピューティングタスクを完了できるようにするための一連の定められた命令を書くことができるプログラマーです。

次に、簡単なケースを使用して、「人間型コンピュータ」が従来のコンピューティング技術を使用して実際の問題を解決する方法を分析します。

始める前に、いくつかの制限を追加する必要があります。通常のコンピュータのメモリに上限があるのと同様に、私たちの「人間コンピュータ」にもメモリの上限があります。

ここでは、「人間型コンピュータ」が「メモリ」内に同時に最大 4 種類の情報を記憶できるものと想定します。たとえば、リンゴやナシなどの果物 4 個の数などです。

この「人間型コンピュータ」のパフォーマンスは比較的劣っているようですが、幸いなことに、対処しなければならない問題は複雑ではありません。

ジョーカーやジャックを含まないトランプカードは数十枚あります。これらのカードのマークとサイズは不明です (必ずしもカードのデッキを形成するとは限りません)。 「人間型コンピュータ」が各スートのトランプの枚数を数えるプログラムをどのように設計すればよいでしょうか?

答えは口から出てくるかもしれません。「人間のコンピュータ」の場合は、各スートの番号を脳に記憶し、トランプカードを 1 枚ずつ取り出して数え、すべてのトランプカードを処理した後に 4 つのスートの番号を報告します。

答えはまさに正解です。通常のコンピュータの最も単純な計算モードは次のようになります。統計結果はメモリに記録されます。入力デバイスが継続的にデータを読み取ると、メモリ内の統計結果が更新され、最終的に出力デバイスから結果が表示されます。

次の質問の難易度がアップします。これらのトランプの A から K までの 13 枚のカード面の数をそれぞれ数えてください。 「プログラム」をアップグレードするにはどうすればいいでしょうか?

以前のソリューションをそのまま使用すると、「人間型コンピュータ」の「メモリ」が足りなくなることがわかりました。なぜなら、その記憶容量の上限は 4 種類の情報であり、A から K までの 13 種類のカード情報を記憶することはできないからです。

これを実際のシナリオに当てはめてみましょう。たくさんの情報を記憶できないときは、記憶を助けるために帳簿を使います。

コンピューターでも同様です。メモリが不足している場合は、ディスクを使用して情報を保存してください。この時点で、元帳は「ディスク」に保存されている Excel ドキュメントに例えることができます。

次に、カードを数える問題に対する解決策があります。トランプカードが取られるたびに、対応するカードタイプの統計数が帳簿で更新され、すべてのトランプカードが数えられた後に結果が直接報告されます。

これは、単一のコンピューターの従来のコンピューティング モデルです。簡単に言えば、入力データに対して一定の統一された規則に従って加算、減算、乗算、除算などの数学演算を実行し、その結果を出力するプロセスです。プロセス中に生成されたデータはメモリまたはハードディスクに保存されます。

上記の場合、トランプは「人間コンピュータ」の「入力データ」であり、コンピュータのバイナリ世界で認識できる数字やテキストに相当します。数えられたカードの数が「出力」であり、これはコンピューターの画面に表示される情報に相当します。

実際、メモリ、ハードディスク、CPU などの基本コンポーネントがあれば、1 台のコンピューター (パソコンだけでなくスマートフォンも) で、インターネットの閲覧、音楽の聴取、映画の視聴など、私たちの日常の基本的なニーズに必要な計算をすでに実行できます。

計算がCPUの限界を超えない限り(人間とコンピュータの囲碁ゲームなど)、問題はありません。また、メモリやハードディスクを最適化するなど、さまざまな方法で単一のコンピューターの計算能力を高め、人々の高まる物質的、文化的ニーズに応えています。

さて、背景は十分です、本題に入りましょう。

ビッグデータ分散コンピューティング

まず、分散コンピューティングとは何でしょうか?簡単に言えば、大量のデータを複数の小さなブロックに分割し、複数のコンピュータを使用して計算を行い、その結果をまとめるというものです。

分散コンピューティングを実行するこれらのコンピューターはクラスターと呼ばれます。前回の記事で述べた人間とコンピューターの類推を引き続き使用すると、クラスターはチームになります。個人戦闘の時代は終わり、チームワークが重要になります。

分散コンピューティングはなぜ必要なのでしょうか? 「ビッグデータ」の出現により、1 台のコンピューターでは不十分になり、データの量が 1 台のコンピューターの処理能力をはるかに超えるようになりました。

12306 でチケットをオンラインで購入する場合など、単位時間あたりのデータ量が大きい場合があり、1 秒あたり数万回のアクセスが発生することがあります。あるいは、サーバー上の何億もの中国語のウェブページを取得する必要がある Baidu 検索エンジンのように、データの総量が大きい場合もあります。

分散コンピューティングを実現するためのソリューションは数多くあります。ビッグデータ技術が登場する前から研究者たちはこれを研究してきましたが、広く利用されてはいませんでした。

2004 年に Google が MapReduce を発表するまで、MapReduce は普及しませんでした。ビッグ データ テクノロジー、分散コンピューティング、MapReduce の関係は、次の図で説明できます。 MapReduce は、ビッグデータ分野における分散コンピューティングのアプリケーションです。

MapReduce モデルは、商業的にテストされた成熟した分散コンピューティング フレームワークです。 Google の分散ファイルシステム GFS および分散データストレージシステム BigTable とともに、Google のビッグデータの「3 つの宝」として知られ、ビッグデータ技術の発展に強固な理論的基礎を提供します。

残念ながら、Google は商用製品を外部に発表しませんでした。ビッグデータ技術を飛躍的に進歩させたのは、Google の理論に従って実装されたオープンソースの無料製品である Hadoop でした。 Hadoopを中核としたビッグデータ技術のエコシステムが形成されました。

ポーカーのカードを数える例に戻りましょう。ビッグデータの時代におけるポーカーの問題はどのようになっているのでしょうか?

  • 入力データの規模が大きくなり、トランプの枚数が数万枚に増加します。
  • 中間計算データのサイズが大きくなる:問題が再度アップグレードされました。 52 種類のカードがそれぞれ何回出現するかを数える必要があります。
  • 処理時間は限られています。できるだけ早く統計結果を取得したいと考えています。

どうですか?ビッグデータが到来すると感じますか?私たち「人間コンピュータ」の「メモリ」と「ハードディスク」には容量の限界があり、52種類のカードの情報は1台のコンピュータの処理能力を超えていることを知っておく必要があります。

もちろん、この問題はメモリやディスク容量を拡張することで解決でき、52 種類のカードに分散コンピューティングはまったく必要ないと考える人もいるかもしれません。さて、この山の中に何百、あるいは何千もの種類のカードがあったらどうなるか考えてみましょう。

したがって、52 種類のカードは現実に即したもので、1 台のコンピューターでは同時にこれほど大量のデータを処理できなくなったことをすべての人に認識してもらうことを目的としています。連携するには複数のコンピューターが必要です。 MapReduce を使う時が来ました。

いくつかの資料を参照し、いくつかの実践を行った後、私は個人的に、MapReduce テクノロジは、divide、transform、shuffle、combine という 4 つの単語で簡単に要約できると考えています。これらはそれぞれ、「分割」、「変換」、「シャッフル」、「マージ」の 4 つのステップを表しています。

[[230957]]

4 語の公式を使用してビッグ データ ポーカー問題を解決する方法を見てみましょう。

セグメンテーション

入力データを複数の部分に分割する

1 台の「人間のコンピュータ」ではすべてのポーカー カードを処理することはできないため、カードをランダムに複数の部分に分割します。ポーカー カードの各部分は、「人間コンピュータ」によって処理されます。ポーション数は、1台のコンピュータの処理限界を超えず、各ポーションの数が可能な限り均等に分散されるように努めます。

ここで役割分担の問題について話し合う必要があります。複数のコンピュータが連携して動作する場合、役割を分担する必要があります。データのセグメンテーションを担当する「人間コンピュータ」を「司令官」として理解することができます。通常、「指揮官」は 1 人だけです (実際には複数の場合もあります)。指揮官は全体的な調整とスケジュールの責任を負います。

特定のコンピューティング タスクの実行を担当する「人間型コンピューター」は、「コンピューティング ソルジャー」です。 「コンピューティング兵士」は、担当するさまざまなタスクに応じて、「可変コンピューティング兵士」と「複合コンピューティング兵士」に分けられます。前者は第 2 ステップの「変換」を担当し、後者は第 1 ステップの「合併」を担当します。

もちろん、「計算兵士」の総数は多ければ多いほど良いのですが、「可変計算兵士」と「複合計算兵士」の割合は固定されておらず、データ量や計算の効率に応じて調整することができます。

人員が不足している場合、コンピュータ兵士が 2 つの役割を担うことがあります。実際の状況では、コンピュータは複数のプロセスを持ち、複数のタスクを実行できるため、「指揮官」は同時に「コンピュータ兵士」としても機能する可能性があり、つまり、理論上はコンピュータが複数の役割を果たすことができる。

「指揮官」はトランプを切る前に、まず「可変数兵」と「合同数兵」の数を割り当て、次に「可変数兵」の数に応じてトランプを対応する数に分割し、各トランプのシェアを「可変数兵」に渡して次のステップに進みます。

変身

各入力データをマップする(つまり、MapReduceのMap)

各「変数計算兵士」は、配られたトランプカードを同じルールに従って変換し、変換された結果を後続のステップで処理できるようにする必要があります。この変換は、加算、減算、乗算、除算などの数学演算である場合もあれば、入力データの構造の変換である場合もあります。

たとえば、ポーカーの問題の場合、目的は数を数えることなので、ポーカー カードをコンピューターが処理しやすい数値構造に変換できます。各ポーカー カードに小さなメモを貼り付け、そのメモにカードの数が 1 と書き込まれます。

これらのラベル付きトランプをバリアントトランプと呼びます。後続のステップでカードの種類の数を数えるときは、各ラベルの数字を合計するだけです。

友人の中には、なぜ各「カウント ソルジャー」にすべての種類のポーカー カードの数を直接数えさせないのかと不思議に思う人もいるでしょう。これは、この「マッピング変換」操作の本質は、各ポーカーカードを同じルールで変換することであり、数を数える作業は最初のステップで完了する必要があるためです。

厳密なパイプライン操作により全体的な効率が向上し、特定の問題に応じて変換ルールが策定されるため、さまざまな種類の計算に適応しやすくなります。

シャッフル

変換されたデータを特定のルールに従ってグループ化する

変形操作が完了した後、各「異形計算兵」はカードの種類に応じて自分の異形トランプカードを複数の小部分に分割する必要があり、各小部分は最終的に指定された「組み合わせ計算兵」によって組み合わせられ、カウントされます。

このプロセスは「シャッフル」と呼ばれ、「変化する兵士」がルールに従って変形したトランプカードをグループ化し、指定された「結合する兵士」に配布します。

シャッフルは2段階に分かれています。最初の段階では、各「異形カウント兵士」が特定のルールに従って異形トランプカードを分類します。分類ルールは各「総数兵士」の統計範囲によって決まり、分類数は「総数兵士」の数によって決まります。

上の図に示すように、異なる範囲のカードの種類を数える責任を持つ「合計数え兵士」が 3 人いると仮定すると、「異形数え兵士」は、各「合計数え兵士」が担当するカードの種類に応じて、異形トランプカードを 3 つの小さな部分に分割し、各部分を対応する「合計数え兵士」に渡す必要があります。

シャッフルの第 2 段階では、指揮官の指示の下、「連合兵士」が各「異形兵士」の手元に行き、自分の異形トランプを取ります。これにより、同じ種類のトランプは 1 人の「連合兵士」の手元だけに残ります。

シャッフルの目的は、同じ種類のトランプのバリエーションをまとめて、数えやすくすることです。

マージ

シャッフルされたデータを統計的にマージする(つまり、MapReduceのReduce)

「兵士の組み合わせ」は、同じ計算ルールに従って、手札にある異形トランプカードを1枚ずつ組み合わせます。計算ルールも特定の問題に応じて策定する必要があります。ここでは、トランプのラベルの値を直接累積して最終結果を計算します。

そして、「合同計算兵」全員が計算結果を「指揮官」に提出し、「指揮官」が最終的な統計結果をまとめて発表します。

要約する

以上が「分割・変形・洗浄・結合」の四字熟語の紹介です。完全なプロセスは次のとおりです。

分散処理技術は、論理的には複雑ではありませんが、その具体的な実装には、「指揮官」がどのようにしてすべての「コンピューティング兵士」を調整して派遣するか、また「コンピューティング兵士」同士がどのように通信するかなど、複雑なプロセスが多数あります。

しかし、MapReduce を使用してコンピューティング タスクを完了するプログラマーにとっては、これらの複雑なプロセスは透過的です。

分散コンピューティング フレームワークはこれらの問題を自動的に処理するため、プログラマーは次の 2 つの計算ルールを定義するだけで済みます。

  • 2 番目のステップでの変換のルール。
  • ステップ 4 でルールがマージされました。

諺にあるように、最も簡単な方法が最善であり、物事がどのように変化しても、本質的には同じままです。 MapReduce を理解すれば、ビッグデータ分散処理技術を理解でき、ビッグデータ分散処理技術を理解すれば、ビッグデータ技術の核心を理解できます。

著者: 呂良

紹介: 上級ソフトウェア開発エンジニア。ビジネスシステムのモデリングとアーキテクチャ分析が得意で、分散アーキテクチャとビッグデータ技術に関する深い理論的研究と実践経験を持っています。個人ブログ: www.leonlu.cc

<<:  「王座を争う多くの英雄」から「同じ飼い葉桶を共有する三頭の馬」まで、クラウドコンピューティングの市場構造は安定したのでしょうか?

>>:  企業はどのようにプライベート クラウド プラットフォームを構築するのでしょうか?注目すべき問題

推薦する

オンラインマーケティングに欠かせない重要な部分:SEOサイト全体の最適化

重要なヒント: サイト全体の最適化は、実際には、Web サイト全体に焦点を当て、Web サイトの詳細...

記事は含まれているがランキングされていない問題を解決する方法についての簡単な分析

先ほど、誤ってA5に行って記事を読んでしまいました。記事は含まれているのにランク付けされていないとい...

SAP: 産業チェーンの連携を促進し、中国の新興企業の支援者となる

50 年にわたる発展を経て、SAP はスタートアップ企業からグローバル デジタル経済の運用基盤へと成...

ドメイン名の価格が急上昇中。6桁の数字の新時代が到来するかもしれません。

eName.cnは4月22日、デジタルドメイン名の取引が今年急増し、今月は多様な6桁のドメイン名が「...

IaaS 環境における SaaS (Security as a Service) モデルの分析

1 クラウドコンピューティングIaaSの開発IaaS はインフラストラクチャ レベルのクラウド コン...

hosteons: 無制限トラフィックの VPS、年間 15 ドルから、メモリ 2 倍 + 20% 割引、Alipay

hosteons の新しいアクティビティ: (1) クーポンコード「DOUBLERAM」を使用して ...

事実に基づいた素晴らしいマーケティング:老舗の茶農家がタオバオでビデオライブストリーミングを有効活用

ニュース報道の過程でよく使われる「事実を語る」報道手法とは、記者がニュース報道の事実を慎重に選択し、...

医療業界向けのクラウド移行とオンプレミスソリューション

急速に進化する今日の医療環境において、テクノロジーは患者のケアの確保、データの管理、運用効率の維持に...

ページ SEO、SEO ウェブサイトキーワード最適化エントリスキル

1. ページタイトルの最適化(タイトルの最適化)これはページの非常に重要な部分です。まず、Web ペ...

ハイパースケールからハイブリッドクラウドへ: クラウドコンピューティングの可能性を解き放つ

今日のクラウド コンピューティング市場は、幅広いインフラストラクチャおよびプラットフォーム サービス...

仮想マシンはもういらない! PC 上で Docker を実行する正しい方法についてお話ししましょう。

[[394719]] 1. はじめにみなさんこんにちは、Anguoです!長い間、PC上でLinuxシ...

電子商取引業者は愚かなほどマーケティングに熱中するのをやめるべき

中国は特殊な市場です。当社の製品販売はまさに、製品の本質よりもマーケティングが重要になる段階に達して...

Baidu の公式ウェブサイト認証の開始によって誰が恩恵を受けるのでしょうか?

まずはニュースを一つお伝えします。Baidu Webmaster Platformは本日、Baidu...

hurricanedigital: 台湾 VPS、動的 IP/静的 IP、月額 330 元、600M 帯域幅、無制限のトラフィック

Hurricanedigital は台湾 VPS を提供しており、台湾動的 IP VPS と台湾静的...