sql >> データベース >  >> NoSQL >> HBase

Hadoop –初心者向けのApacheHadoopチュートリアル

    このHadoopの主な目標 チュートリアルは、ApacheHadoopFrameworkのあらゆる側面を説明することです。基本的に、このチュートリアルは、基本からHadoopを簡単に習得できるように設計されています。

    この記事では、ビッグデータHadoopとは何か、Hadoopの必要性とは何か、Hadoopの歴史とは何か、そして最後にApacheHadoopフレームワークの長所と短所などの質問に答えるために最善を尽くします。

    この記事を読んだ後、Hadoopフレームワークとは何かを明確に理解できることを願っています。

    Hadoopとは何ですか?

    これは、大量のデータセットの分散ストレージと処理のためのオープンソースソフトウェアフレームワークです。オープンソースとは、無料で利用できることを意味し、要件に応じてソースコードを変更することもできます。

    また、数千のノードを持つシステムでアプリケーションを実行することもできます。分散ファイルシステムは、ノード間の高速データ転送速度を提供します。また、ノードに障害が発生した場合でもシステムが動作し続けることができます。

    Hadoopが提供する-

    • ストレージレイヤー– HDFS
    • バッチ処理エンジン– MapReduce
    • リソース管理レイヤー– YARN

    Hadoop –履歴

    2003年、Googleはプロジェクト Nutchを立ち上げました 何十億もの検索を処理します。また、何百万ものWebページのインデックス作成にも使用できます。 2003年10月、Googleは GFSを公開しました (Googleファイルシステム)紙、その紙からHadoopが作成されました。

    2004年、Googleは MapReduceを使用して紙をリリースしました 。そして2005年、NutchはGFSとMapReduceを使用して操作を実行しました。

    2006年、コンピューター科学者はダグカッティング およびマイクカファレラ Hadoopを作成しました。 2006年2月、ダグカッティングが Yahooに参加しました 。これにより、HadoopをWebスケールで実行されるシステムに変えるためのリソースと専任チームが提供されました。 2007年、Yahooは100ノードクラスターでHadoopの使用を開始しました。

    2008年1月、HadoopはApacheで独自のトップレベルのプロジェクトを作成し、その成功を確認しました。 New York TimesやFacebookなど、Yahoo!以外の多くの企業がHadoopを使用していました。

    2008年4月、Hadoopは世界記録を更新し、テラバイトのデータを並べ替える最速のシステムになりました。 910ノードのクラスターで実行され、209秒で1テラバイトのソートが行われました。

    2011年12月、ApacheHadoopはバージョン1.0をリリースしました。 2013年8月、バージョン2.0.6が利用可能になりました。 2017年6月の後半に、ApacheHadoop3.0.0-alpha4が利用可能になります。 ASF(Apache Software Foundation)は、Hadoopのフレームワークとテクノロジーのエコシステムを管理および維持します。

    なぜHadoopなのですか?

    イントロダクションを学習したので、Hadoopの必要性を学習します。

    ビッグデータ」のソリューションとして登場しました 」問題-

    a。ビッグデータのストレージ– HDFSはこの問題を解決しました。ビッグデータを分散方式で保存します。 HDFSは、各ファイルもブロックとして保存します。ブロックは、ファイルシステム内のデータの最小単位です。

    512MBのデータがあるとします。また、128Mbのデータブロックを作成するようにHDFSを構成しました。したがって、HDFSはデータを4つのブロックに分割します (512/128 =4)そしてそれを異なるDataNodeに保存します。また、さまざまなデータノードにデータブロックを複製します。

    したがって、ビッグデータの保存は困難ではありません。

    b。スケーラビリティ– また、スケーリングの問題も解決します。これは主に、垂直スケーリングではなく水平スケーリングに焦点を当てています。必要に応じて、HDFSクラスターにデータノードを追加できます。データノードのリソースをスケールアップする代わりに。

    したがって、パフォーマンスが劇的に向上します。

    c。さまざまなデータの保存– HDFSはこの問題を解決しました。 HDFSは、あらゆる種類のデータ(構造化、半構造化、または非構造化)を保存できます。また、一度書いて多くのモデルを読むの後に続きます。 。

    このため、あらゆる種類のデータを1回書き込むことができ、それを複数回読み取って洞察を見つけることができます。

    d。データ処理速度– これがビッグデータの大きな問題です。この問題を解決するには、データを計算に移動するのではなく、計算をデータに移動します。この原則はデータの局所性です 。

    Hadoopコアコンポーネント

    次に、ApacheHadoopコアコンポーネントについて詳しく学習します。 3つのコアコンポーネントがあります-

    • HDFS
    • MapReduce
    • YARN(Yet Another Resource Negotiator)

    これらのコアコンポーネントについて1つずつ説明しましょう。

    a。 HDFS

    Hadoop分散ファイルシステム(HDFS) Hadoopのプライマリストレージシステムです。 HDFSは、コモディティハードウェアのクラスターで実行されている非常に大きなファイルを保存します。これは、膨大な数の小さなファイルではなく、少数の大きなファイルを格納するという原則に従います。

    ハードウェアに障害が発生した場合でも、データを確実に保存します。並行してアクセスすることにより、アプリケーションへの高スループットアクセスを提供します。

    HDFSのコンポーネント:

    • NameNode – クラスタ内でマスターとして機能します。 Namenodeはメタデータを保存します 。ブロック、レプリカ、その他の詳細の数。メタデータはマスターのメモリに存在します。 NameNodeは、スレーブノードを維持および管理し、それらにタスクを割り当てます。 HDFSの目玉であるため、信頼性の高いハードウェアに展開する必要があります。
    • DataNode – クラスタ内でスレーブとして機能します。 HDFSでは、DataNodeは実際のデータをHDFSに保存する役割を果たします。 DataNodeは、クライアントの要求に従って読み取りおよび書き込み操作を実行します。 DataNodeはコモディティハードウェアにデプロイすることもできます。

    b。 MapReduce

    MapReduceは、Hadoopのデータ処理レイヤーです。 HDFSに保存されている大規模な構造化データと非構造化データを処理します。 MapReduceは、大量のデータも並行して処理します。

    これは、ジョブ(送信されたジョブ)を一連の独立したタスク(サブジョブ)に分割することによって行われます。 MapReduceは、処理をMapとReduceのフェーズに分割することで機能します。

    • 地図– これは処理の最初のフェーズであり、すべての複雑なロジックコードを指定します。
    • 削減– 処理の第2段階です。ここでは、集計/合計などの軽量処理を指定します。

    c。毛糸

    YARNはリソース管理を提供します。これはHadoopのオペレーティングシステムです。ワークロードの管理と監視を担当し、セキュリティ制御も実装します。 Apache YARNは、クラスター全体にデータガバナンスツールを提供するための中央プラットフォームでもあります。

    YARNを使用すると、リアルタイムストリーミング、バッチ処理などの複数のデータ処理エンジンを使用できます。

    YARNのコンポーネント:

    • リソースマネージャー– これはクラスターレベルのコンポーネントであり、マスターマシンで実行されます。リソースを管理し、YARN上で実行されるアプリケーションをスケジュールします。スケジューラとアプリケーションマネージャの2つのコンポーネントがあります。
    • ノードマネージャー– これはノードレベルのコンポーネントです。各スレーブマシンで実行されます。 Resource Managerと継続的に通信して、最新の状態を維持します

    Hadoopの利点

    次に、ビッグデータの問題を解決するためのHadoopのさまざまな利点について説明します。

    • スケーラビリティ– ノードを追加することで、システムを簡単に拡張して、より多くのデータを処理できます。
    • 柔軟性– このフレームワークでは、データを保存する前にデータを前処理する必要はありません。必要なだけのデータを保存し、後で使用する方法を決定できます。
    • 低コスト– オープンソースフレームワークは無料で、低コストのコモディティハードウェアで実行されます。
    • フォールトトレランス– ノードがダウンすると、ジョブは自動的に他のノードにリダイレクトされます。
    • 計算能力– 分散コンピューティングモデルはビッグデータを高速に処理します。より多くのコンピューティングノードを使用すると、より多くの処理能力が得られます。

    Hadoopのデメリット

    ApacheHadoopFrameworkのいくつかの欠点を以下に示します-

    • セキュリティ上の懸念– 複雑なアプリケーションの管理は難しい場合があります。ユーザーがプラットフォームを管理しているプラ​​ットフォームを有効にする方法を知らない場合、データは大きなリスクになる可能性があります。以来、ストレージおよびネットワークレベルのHadoopには暗号化が欠けており、これが大きな懸念事項です。
    • 本質的に脆弱– フレームワークは、ほとんどJavaで書かれており、最も広く使用されている言語です。 Javaはサイバー犯罪者によってひどく悪用されています。その結果、多数のセキュリティ侵害に関係しています。
    • 小さなデータには適していません– なので、小さなデータには適していません。したがって、小さなファイルのランダム読み取りを効率的にサポートする機能がありません。
    • 潜在的な安定性の問題– オープンソースのフレームワークなので。これは、プロジェクトに取り組み続ける多くの開発者によって作成されていることを意味します。常に改善が行われていますが、安定性の問題があります。これらの問題を回避するには、組織は最新の安定バージョンで実行する必要があります。

    結論

    結論として、これは最も人気があり強力なビッグデータツールであると言えます。大量のデータを分散して保存します。

    次に、ノードのクラスター上でデータを並行して処理します。また、世界で最も信頼性の高いストレージレイヤーであるHDFSも提供します。バッチ処理エンジンMapReduceおよびリソース管理レイヤー-YARN。

    したがって、これらのデーモンはHadoop機能を保証します。


    1. MongoDB、Express.js、Slushを使用したページネーションの実装

    2. マングースのidと_idの違いは何ですか?

    3. セキュリティのためのアーキテクチャ:MongoDBのガイド

    4. Mongooseを使用してインデックスを削除するための推奨される方法は何ですか?