ハイブで配布されるものは何ですか?
質問者:Jacquelyn Stewart |最終更新日:2020年3月25日
カテゴリ:趣味と興味の養蜂
Distribute By: Hiveに存在するテーブルで使用されるDistributeBY句。 Hiveは、 Distribute byの列を使用して、行をレデューサー間で分散します。すべてのDistributeBY列は同じレデューサーに送られます。これにより、N個のレデューサーのそれぞれが重複しない範囲の列を取得できるようになります。
その上、ハイブでの並べ替えとは何ですか?Hiveは、レデューサーごとにデータを並べ替えるSORTBYをサポートしています。 「 orderby 」と「 sortby 」の違いは、前者は出力の全順序を保証し、後者はレデューサー内の行の順序のみを保証することです。複数のレデューサーがある場合、「並べ替え」により、半順序の最終結果が得られる場合があります。
さらに、ハイブは内部でどのように機能しますか? Hiveでは、最初にテーブルとデータベースが作成され、次にデータがこれらのテーブルにロードされます。学習を容易にするために、テーブル、行、列、スキーマなど、リレーショナルデータベースの世界でおなじみの概念を再利用します。 Hadoopのプログラミングはフラットファイルで機能します。
したがって、ハイブは行をバケットにどのように分散しますか?
複数のバケットを作成し、ロジック、主にハッシュアルゴリズムに基づいて、各レコードをバケットの1つに配置します。 Hiveのバケット機能を使用して、テーブル/パーティションデータを複数のファイルに分散/整理し、同じファイルに同様のレコードが存在するようにすることができます。
ハイブのレデューサーとは何ですか?
レデューサーは、キーを共有する中間値のセットをより小さな値のセットに減らします。各reduce関数は、map関数によって生成された特定のキーの中間値を処理し、出力を生成します。基本的に、キーとレデューサーの間には1対1のマッピングが存在します。
39関連する質問の回答が見つかりました
並べ替えとそのタイプとは何ですか?
並べ替えとは、オブジェクトのリストを並べ替えることです。 2種類の並べ替えを区別できます。オブジェクトの数がメインメモリに収まるほど少ない場合、並べ替えは内部並べ替えと呼ばれます。オブジェクトの数が多すぎて、一部がソート中に外部ストレージに存在する場合、それは外部ソーティングと呼ばれます。
Hiveクエリをどのように高速化しますか?
Hadoopを使用してHiveクエリのパフォーマンスを向上させる方法
- Tezエンジンを使用します。 Apache Tez Engineは、高性能のバッチ処理とインタラクティブなデータ処理を構築するための拡張可能なフレームワークです。
- ベクトル化を使用します。
- ORCFileを使用します。
- パーティショニングを使用します。
- Bucketingを使用します。
- コストベースのクエリ最適化。
Hiveクエリとは何ですか?
Apache Hiveは、データクエリと分析を提供するためにApacheHadoop上に構築されたデータウェアハウスソフトウェアプロジェクトです。 Hiveは、Hadoopと統合されたさまざまなデータベースやファイルシステムに保存されているデータをクエリするためのSQLのようなインターフェイスを提供します。
ハイブでの爆発とは何ですか?
配列を複数の行に分解します。配列の要素ごとに1行ずつ、単一の列(col)を持つ行セットを返します。爆発(MAP <Tkey、Tvalue> m)
ハイブはOLTPシステムでの使用に適していますか?なぜですか?
No Hiveは、行レベルでの挿入と更新を提供しません。したがって、 OLTPシステムには適していません。 Hiveは、Hadoopエコシステムのツールであり、データベースのような方法でデータを整理およびクエリし、クエリのようなSQLを作成するためのインターフェイスを提供します。 SQL構文を使用してHadoopのデータにアクセスして分析するのに適しています。
ハイブ内の重複を削除するにはどうすればよいですか?
重複する値を削除するには、元のテーブルから選択するときにDISTINCTキーワードを使用してHiveに上書きテーブルを挿入することを使用できます。 DISTINCTキーワードは、テーブルから一意のレコードを返します。
ハイブでのMAP結合とは何ですか?
マップ結合は、 Hiveクエリを高速化するために使用されるHive機能です。これにより、テーブルをメモリにロードできるため、 Map / Reduceステップを使用せずにマッパー内で結合を実行できます。
なぜバケット化はパーティショニングよりも速いのですか?
バケット化は、Hiveテーブルでパーティション化しなくても実行できます。バケット化の利点:バケット化されたテーブルは、バケット化されていないテーブルよりもはるかに効率的なサンプリングを可能にします。データファイルは同じサイズのパーツであるため、バケット化されたテーブルではマップ側の結合が高速になります。
Hiveはインデックス作成をサポートしていますか?
簡単な答えはノーです。 Hiveのインデックスは推奨されません。この理由はORCです。 ORCには、読み取り中にデータのブロックをスキップできるようにするインデックスが組み込まれています。また、ブルームフィルターもサポートしています。
ハイブの例でのSerDeとは何ですか?
SerDeはSerializer / Deserializerの略です。このインターフェースは、シリアル化と逆シリアル化の両方を処理し、シリアル化の結果を処理用の個々のフィールドとして解釈します。 SerDeを使用すると、 Hiveはテーブルからデータを読み取り、任意のカスタム形式でHDFSに書き戻すことができます。
ハイブのパーティションとバケットの違いは何ですか?
Hiveパーティションは、列の値用に別のディレクトリーを作成します。バケッティングは、データをより管理しやすい部分または同等の部分に分解します。バケット化を行う場合は、データを格納するバケットの数を制限しています。この番号は、テーブル作成スクリプト中に定義されます。
バケットハイブはいつ使用する必要がありますか?
Hiveでのバケット化:-カーディナリティが高い(フィールドが持つことができる可能な値の数)フィールドのデータを分離する場合は、バケット化を使用する必要があります。データ全体ではなく、特定のフィールドに応じたデータのサンプルのみが必要な場合は、バケット化が適切なオプションになります。
ハイブで更新は可能ですか?
Hiveは更新(または削除)をサポートしていませんが、INSERT INTOをサポートしているため、既存のテーブルに新しい行を追加することができます。削除は最近Hiveバージョン0.14で追加されました。削除はACIDをサポートするテーブルでのみ実行できます。以下はApacheからのリンクです。
バケット化でパーティショニングは可能ですか?
バケッティングは、データをより管理しやすい部分または同等の部分に分解します。パーティショニングを使用すると、列の値に基づいて複数の小さなパーティションを作成できる可能性があります。バケット化を行う場合は、データを格納するバケットの数を制限しています。
なぜハイブにバケットが必要なのですか?
ハイブのバケットは、ハイブのテーブルデータを複数のファイルまたはディレクトリに分離するために使用されます。それは、効率的な照会のために使用されています。分割は、我々はテーブルに選択された特定の列のハッシュに基づいて行われます。
ハイブテーブルをパーティション化するにはどうすればよいですか?
Apache Hiveは、テーブルをパーティションに編成します。パーティション化は、日付、都市、部門などの特定の列の値に基づいて、テーブルを関連する部分に分割する方法です。ハイブ内の各テーブルには、特定のパーティションを識別するための1つ以上のパーティションキーを含めることができます。
Hiveメタデータはどこに保存されますか?
作成されたメタデータはHiveMetastoreに保存され、MySQLなどのRDBMSに含まれます。 HiveとImpalaは同じデータで動作します-HDFSのテーブル、 Metastoreのメタデータ。