HiveとImpalaの違いは何ですか

目次:

Anonim

NS 主な違い HiveとImpalaの間には、 Hiveは、Hadoop上に構築された大規模な分散データセットにアクセスして管理するために使用できるデータウェアハウスソフトウェアです。Impalaは、Hadoopに保存されたデータを管理および分析するための大規模な並列処理SQLエンジンです。.

Hiveは、Hadoopファイルに保存されている大規模なデータセットをクエリおよび分析するためのオープンソースのデータウェアハウスシステムです。 Impalaは、Hadoop分散ファイルシステムに保存されているデータにアクセスするための最速の方法を提供します。どちらもHadoopに関連するサブツールです。

ビッグデータ、データウェアハウス、Hadoop、Hive、Impala

Hadoopとは

ビッグデータとは、大量、速度、さまざまなデータを含む大規模なデータセットを指します。ビッグデータは毎日収集され、従来の方法では処理できません。そのため、Apache Software Foundationは、ビッグデータを管理および処理するためにHadoopと呼ばれるフレームワークを導入しました。これはオープンソースのフレームワークです。

Hadoopは、MapReduceとHadoop分散ファイルシステム(HDFS)の2つのモジュールで構成されています。 MapReduceモジュールは、コモディティハードウェアの大規模なクラスターで大規模な構造化データ、半構造化データ、および非構造化データを処理するのに役立ちます。さらに、HDFSはデータセットの保存と処理に使用されます。コモディティハードウェアで実行するフォールトトレラントファイルシステムを提供します。

Hiveとは

Hadoopエコシステムは、Hadoopモジュールを支援するさまざまなサブツールで構成されています。ハイブはその1つです。当初はFacebookによって開発されましたが、後にApache SoftwareFoundationによって採用されました。ビッグデータを要約し、クエリを作成し、それらを簡単に分析するのに役立ちます。これは、HiveQLまたはHQLと呼ばれるクエリを作成するためのSQLタイプの言語を提供します。

HadoopがHadoopフレームワークと相互作用するプロセスは次のとおりです。

  1. Hiveインターフェイスは、クエリを実行するために、JDBC、ODBCなどのドライブにクエリを送信します。
  2. 次に、ドライブはクエリコンパイラからヘルプを取得して、クエリを解析し、構文をチェックします。
  3. 次に、コンパイラはメタデータ要求をメタストアに送信します。
  4. その見返りとして、メタストアはメタデータを応答としてコンパイラーに送信します。
  5. 次に、コンパイラーは要件をチェックし、プランをドライバーに再送信します。この時点で、クエリの解析とコンパイルは完了しています。
  6. 次に、ドライブは実行計画を実行エンジンに送信します。
  7. 次に、ジョブが実行されます。これはMapReduceジョブです。実行エンジンは、メタストアを使用してメタデータ操作を実行できます。
  8. そして、結果がフェッチされます。実行エンジンは、データノードから結果を取得します。
  9. これで、実行エンジンが結果をドライバーに送信します。
  10. 最後に、ドライバーは結果をHiveインターフェースに送信します。

インパラとは

Impalaは、Hadoopクラスターに格納されている大量のデータを処理するために使用される大規模な並列処理SQLクエリエンジンです。それはC ++とJavaで書かれています。 Hiveよりも高いパフォーマンスを提供します。

スケーラビリティ、柔軟性、SQLサポート、およびマルチユーザーパフォーマンスを提供します。これにより、ユーザーはHBaseと呼ばれるSQLタイプのクエリを使用してHDFSとはるかに高速に通信できます。さらに、Parquet、Avroなどのさまざまなファイル形式を読み取ることができます。メタデータ、SQL構文(Hive SQL)、ODBCドライバー、およびHiveと同様のユーザーインターフェイスを使用します。バッチ指向またはリアルタイムクエリ用の統合プラットフォームを提供します。

HiveとImpalaの違い

意味

Hiveは、データクエリと分析を提供するためにApacheHadoop上に構築されたデータウェアハウスソフトウェアプロジェクトです。 Impalaは、ApacheHadoopを実行しているコンピュータークラスターに格納されているデータ用のオープンソースの超並列処理SQLクエリエンジンです。したがって、これはHiveとImpalaの根本的な違いを説明しています。

基本

操作の基本は、HiveとImpalaのもう1つの違いです。 HiveはMapReduceアルゴリズムに基づいています。 ImpalaはMapReduceアルゴリズムに基づいていません。デーモンプロセスに基づく分散アーキテクチャを実装します。また、同じマシンで実行されるクエリの実行も処理します。

中間結果

さらに、Hiveはすべての中間結果を具体化して、スケーラビリティとフォールトトレランスを向上させます。 Impalaは、エグゼキュータ間でストリーミング中間結果を実行します。

インタラクティブコンピューティング

したがって、ImpalaはHiveよりもインタラクティブコンピューティングに適しています。

スピード

タイプ

HiveとImpalaのもう1つの違いは、HiveがバッチベースのHadoop MapReduceであるのに対し、Impalaは大規模な並列処理SQLクエリエンジンであるということです。

クエリの実行

さらに、Hiveでは、実行中にデータノードがダウンしている間はフォールトトレラントであるため、クエリの出力が生成されます。 Impalaでは、クエリの実行は最初から開始され、実行中にデータノードがダウンします。

複雑なタイプ

Hiveは複合型をサポートしますが、Impalaは複合型をサポートしません。

結論

HiveとImpalaの違いは、HiveはHadoop上に構築された大規模な分散データセットにアクセスして管理するために使用できるデータウェアハウスソフトウェアであるのに対し、ImpalaはHadoopに保存されたデータを管理および分析するための超並列処理SQLエンジンであるということです。

リファレンス:

1.「ハイブ–はじめに」 Www.tutorialspoint.com、チュートリアルポイント、こちらから入手可能2。 「Impalaチュートリアル」。 Parallax Scrolling、Java Cryptography、YAML、Python Data Science、Java i18n、GitLab、TestRail、VersionOne、DBUtils、Common CLI、Seaborn、Ansible、LOLCODE、Current Affairs 2018、Apache Commons Collections、こちらから入手できます。

画像提供:

1.Davodによる「ApacheHiveロゴ」– Commons Wikimediaを介してFile:Apache Hive Logo.jpgをベース(Apache License 2.0)として使用した自作

HiveとImpalaの違いは何ですか