HadoopのHiveとは何ですか? 歴史とその構成要素

公開: 2021-10-07

Apache Hiveは、Hadoop上に構築されたオープンソースのウェアハウジングシステムです。 Hiveは、Hadoop内に保存されている大量のデータセットのクエリと分析に使用されます。 構造化データと半構造化データの両方を処理することで機能します。

この記事では、Have in Hadoop、その歴史、重要性、Hiveアーキテクチャ、いくつかの主要な機能、いくつかの制限などについて詳しく説明します。

目次

ハイブとは何ですか?

Apache Hiveは、Hadoopをベースとして使用して構築された単なるデータウェアハウスソフトウェアです。 Apache Hiveが登場する前は、ビッグデータエンジニアはクエリタスクを実行するために複雑なmap-reduceジョブを作成する必要がありました。 一方、Hiveを使用すると、エンジニアはSQLを知るだけで済むため、事態は大幅に減少します。

Hiveは、HiveQL(SQLに類似)と呼ばれる言語で動作するため、SQLの実用的な知識を持っているエンジニアが簡単に使用できます。 HiveQLは、SQLクエリをHadoopが実行できるmap-reduceジョブに自動的に変換します。

そうすることで、ApacheはHadoopの動作に抽象化の概念を提示し、データの専門家がHiveを操作するためのJavaプログラミング言語を学習しなくても複雑なデータセットを処理できるようにします。 Apache Hiveはワークステーションで動作し、SQLクエリをHadoopクラスターで実行されるmap-reduceジョブに変換します。 Hiveはすべてのデータをテーブルに分類し、それによってHDFSに存在するすべてのデータに構造を提供します。

ApacheHiveの歴史

データインフラストラクチャチームは、FacebookでApacheHiveを紹介しました。 これは、Facebookで多くの社内目的で積極的に使用されているテクノロジーの1つです。 何年にもわたって、Apache Hiveはクラスター上で数千のジョブを実行し、さまざまなアプリケーションで数百のユーザーを使用してきました。

FacebookのHive-Hadoopクラスターは、3PBを超える生データを保存します。 毎日15TBのデータをリアルタイムでロードできます。 そこから、Apache Hiveはそのユースケースでさらに成長し、今日では、IBM、Yahoo、Amazon、FINRA、Netflixなどの巨人によって使用されています。

世界のトップ大学からオンラインでデータサイエンス認定を取得してくださいエグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

なぜApacheHiveが必要なのですか?

Facebookは、Apache Hiveを思い付く前に、分析するデータサイズが増え続けていることや、この大規模なデータセットの完全な不整合など、多くの課題に苦しんでいました。 これらの課題により、Facebookはデータ集約型のタスクをシームレスに処理することが困難になりました。 従来のRDBMSベースの構造では、増え続ける圧力を制御するのに十分ではありませんでした。

Facebookは、これらの課題を克服するために最初にmap-reduceを導入しましたが、HiveQLで動作するApacheHiveを提供することでさらに簡素化しました。

最終的に、Apache Hiveは待望の救世主として浮上し、Facebookがさまざまな課題を克服するのを助けました。 現在、Apache Hiveを使用して、Facebookは次のことを実現できました。

  • スキーマの進化と柔軟性。
  • テーブルのパーティション化とバケット化。
  • HDFSで直接Hiveテーブルを定義します。
  • ODBC/JDBCドライバーの可用性。

全体として、Apache Hiveは、開発者が複雑なmap-reduceジョブの作成にかかる時間を大幅に節約するのに役立ちました。 Hiveは、データの要約、分析、クエリ、および探索を簡素化します。

SQLのみに依存しているApacheHiveは、高速でスケーラブルなフレームワークであり、高度に拡張可能です。 SQLを使用した基本的なクエリを理解していれば、すぐにApacheHiveを操作できるようになります。 また、HBaseやHDFSなどのさまざまなデータストアへのファイルアクセスも提供します。

ApacheHiveのアーキテクチャ

Apache Hiveの重要性と出現について理解したところで、ApacheHiveの主要なコンポーネントを見てみましょう。 ApacheHiveのアーキテクチャには次のものが含まれます。

1.メタストア

これは、各テーブルのメタデータを格納するために使用されます。 メタデータは通常、場所とスキーマで構成されます。 Metastoreはパーティションメタデータでも構成されており、エンジニアがクラスター全体に分散されたさまざまなデータセットの進行状況を追跡するのに役立ちます。 ここに保存されるデータは、従来のRDBMS形式です。

2.ドライバー

Apache Hiveのドライバーは、HiveQLステートメントの受信を担当するコントローラーのようなものです。 次に、さまざまなセッションを作成して、これらのステートメントの実行を開始します。 ドライバーは、実装のライフサイクルとその進行状況を監視および管理する責任もあります。 ドライバーは、HiveQLステートメントの実行時に生成されるすべての重要なメタデータを保持します。 また、map-reduce操作後に取得されたデータの収集ポイントとしても機能します。

3.コンパイラ

コンパイラは、HiveQLクエリのコンパイルに使用されます。 これは、ユーザーが生成したクエリを、実行する必要のあるすべてのタスクを含む確実な実行プランに変換します。 この計画には、map-reduceに従って必要な出力を取得するために必要なすべての手順と手順も含まれています。 Hiveコンパイラは、ユーザー入力クエリをAST(抽象構文木)に変換して、コンパイル時のエラーや互換性の問題をチェックします。 問題が発生しなかった場合、ASTは有向非巡回グラフ(DAG)に変換されます。

4.オプティマイザー

オプティマイザーは、最適化されたDAGに到達するために必要な実行プランのすべての変換を実行します。 これは、個々の結合の配列を単一の結合に変換するなど、すべての変換を集約してパフォーマンスを向上させることによって実現されます。 さらに、オプティマイザーは、削減された操作が実行される前にデータに変換を適用することにより、さまざまなタスクを分割できます。これも、全体的なパフォーマンスを向上させるためです。

5.エグゼキュータ–

Apache Hiveがコンパイルと最適化のタスクを実行すると、エグゼキュータは最終的な実行を実行します。 タスクのパイプライン化と完了までの処理を行います。

6. CLI、UI、およびThrift Server

コマンドラインインターフェイス(CLI)は、ApacheHiveのさまざまな機能と対話するためのユーザーインターフェイスを外部ユーザーに提供するために使用されます。 CLIは、エンドユーザー向けのHiveのUIを構成するものです。 一方、Thriftサーバーでは、ODBCまたはJDBCプロトコルと同様に、外部クライアントがネットワークを介してHiveと対話できます。

ApacheHiveのコア機能

前述のように、Apache Hiveは、エンジニアがデータジョブを処理する方法に非常に必要な変更をもたらしました。 Javaはもはや頼りになる言語ではなく、開発者はSQLを使用するだけで作業できました。 それとは別に、Hiveには次のようないくつかの重要な機能もあります。

  • Apache Hiveは、はるかに単純化された方法でデータの要約、分析、およびクエリを提供します。
  • Hiveは内部テーブルと外部テーブルをサポートしているため、HDFSにデータを持ち込むことなく外部データを操作できます。
  • Apache Hiveは、Hadoopの低レベルのインターフェース要件に対して完全に機能します。
  • テーブルのレベルでデータのパーティション化をサポートすることにより、ApacheHiveは全体的なパフォーマンスの向上に役立ちます。
  • さまざまな論理計画を最適化するためのルールベースのオプティマイザーがあります。
  • これは、SQLに似た言語であるHiveQLで動作します。つまり、開発者は、大規模なデータセットを操作するために別の言語を習得する必要はありません。
  • Hiveでのクエリは、SQLと同様に、非常に単純です。
  • Hiveを使用してデータ分析のためのアドホッククエリを実行することもできます。

ApacheHiveの制限

データサイエンスの世界は比較的新しく、進化し続けているため、市場で入手可能な最高のツールでさえ、いくつかの制限があります。 これらの制限を解決することが、次善のツールを提供します。 覚えておくべきApacheHiveの操作に関するいくつかの制限があります。

  • Hiveは、行レベルの更新とリアルタイムのクエリを提供しません。
  • Apache Hiveは、対話性に許容できるレイテンシーを提供します。
  • オンライントランザクションでの作業には最適ではありません。
  • Hiveクエリのレイテンシは、通常、平均よりも高くなります。

結論は

Apache Hiveは、データエンジニアが大規模なデータセットを処理する方法に劇的で驚くべき改善をもたらしました。 さらに、Javaプログラミング言語の必要性を完全に排除することにより、ApacheHiveはデータエンジニアに馴染みのある快適さをもたらしました。 現在、SQLクエリの基本的な知識があれば、ApacheHiveをスムーズに操作できます。

先に述べたように、データサイエンスはダイナミックで進化し続ける分野です。 今後数年間で、物事をさらに簡素化するための新しいツールとフレームワークが生まれると確信しています。 あなたがデータサイエンスの取引のすべてのツールを学びたいと思っているデータ愛好家なら、今がHiveのようなビッグデータツールを手に入れるのに最適な時期です。

upGradでは、世界中の学生を指導および指導し、さまざまなバックグラウンドを持つ人々がデータサイエンス業界で確固たる足場を築くのを支援してきました。 私たちの専門家の教師、業界のパートナーシップ、配置支援、および強力な同窓会ネットワークは、この旅であなたが一人になることは決してないことを保証します。 データサイエンスのエグゼクティブPGプログラムをチェックして、自分に合ったプログラムに登録してください。残りは私たちが担当します。

HadoopのApacheHiveとは何ですか?

Apache Hiveは、大量のデータセットのウェアハウジング、クエリ、および分析に使用されるフレームワークまたはシステムです。 Apache Hiveは、内部操作を強化するためにFacebookによって導入され、それ以来、データサイエンススペクトルの不可欠な部分となっています。

HadoopでApacheHiveを使用するには、特定の言語を学ぶ必要がありますか?

番号! SQLの実用的な知識だけで、ApacheHiveを使い始めることができます。

Apache Hiveは何に使用されていませんか?

Apache Hiveは通常OLAP(バッチ処理)に使用され、データベースでのリアルタイム操作のため、通常はOLTPには使用されません。