HIVE をインストールする方法 Ubuntu (ダウンロード&セットアップガイド)

⚡ スマートサマリー

Apache Hiveは、 Ubuntu これは、既に稼働している Hadoop クラスターの上に構築される薄いデータウェアハウス層として機能し、セットアップは基本的に 1 つのアーカイブを展開し、3 つの環境変数を適切なディレクトリに指定するだけで済みます。

  • 🧱 Hadoop優先: HiveはテーブルデータをHDFSに保存し、ジョブをクラスタに送信するため、すべてのHadoopデーモンは既に実行されている必要があります。
  • (すなわち、 ダウンロードソース: バイナリリリースはApacheのミラーページから入手でき、3.x系は2024年10月にサポート終了となりました。
  • 📁 2つの設定ファイル: HIVE_HOMEはbashrcに、HADOOP_HOMEはHiveのbinディレクトリ内のhive-config.shに記述する必要があります。
  • 💾 HDFSフォルダ: 最初のテーブルを作成する前に、ウェアハウスディレクトリとtmpディレクトリがグループ書き込み権限を持ってHDFS上に存在している必要があります。
  • 🧩 スキーマ手順: schematoolユーティリティはメタストアテーブルを作成しますが、Hive 3.x以降では初期化されていないスキーマに対して起動することを拒否します。
  • 🔨 素早く確認する: create文に続いてdescribe文を実行することで、シェル、メタストア、HDFSがすべて正しく接続されていることが証明されます。

Hiveをインストールする方法 Ubuntu

Apache Hiveのインストール前に、専用の Hadoopの すべての Hadoop デーモンをインストールし、起動して実行します。

Hadoopのインストールについては、こちらをご確認ください。 .

Hadoopデーモンがすべて正常に動作するようになったら、Hiveのインストールを開始します。以下の手順は4つの段階で構成されています。

Apache Hiveのインストール手順

  1. 前提条件とバージョン互換性
  2. ハイブのインストール
  3. メタストア スキーマの初期化
  4. ハイブシェルコマンド

Apache Hiveをインストールするための前提条件 Ubuntu

Hiveはスタンドアロンのデータベースではありません。HiveQLを既存のクラスター上で実行されるジョブに変換するクエリレイヤーです。そのため、ほとんどのインストール失敗は tracこれは、Hive自体の問題ではなく、前提条件の不足が原因です。ダウンロードする前に、以下の点を確認してください。

  • サポートされているJDK。 Hive 4.1.x は JDK 17 で動作しますが、Hive 4.2.x では最小要件が JDK 21 に引き上げられます。バージョンを確認するには、 java -version また、JAVA_HOMEがエクスポートされていることを確認してください。
  • 稼働中のHadoopクラスター。 NameNodeとDataNodeの両方がアクティブである必要があります。 JPS リストにNameNode、DataNode、ResourceManager、NodeManagerがすべて表示されていることを確認してください。
  • HDFSへの書き込みアクセス。 Hive を起動するアカウントには、以下のディレクトリを作成する権限が必要です。 HDFS.
  • 一致するバージョン。 Hive 4.2.0 は Hadoop 3.4.1 および Tez 0.10.5 をベースに構築されています。Hive 3.x 系は 2024 年 10 月にサポートが終了したため、新規インストールの場合は 4.x 系をターゲットにする必要があります。
  • 無料リソース。 シングルノードの学習環境であれば、約4GBのRAMと20GBの空きディスク容量があれば十分です。

これらのチェックボックスにチェックを入れると、以下のダウンロードと解凍の手順は問題なく実行されます。

Hive をインストールする方法 Ubuntu

以下は、Hive をインストールする方法の段階的なプロセスです。 Ubuntu:

ステップ 1) Hive をダウンロードしてインストールします。 Ubuntu

Hiveの安定版セットアップをダウンロードするには、以下を参照してください。 アパッチ URL 下記に記載。

https://www.apache.org/dyn/closer.cgi/hive/ — に行く URL そして、Apacheミラーのダウンロードリンクを選択します。 Apache Hiveのダウンロードページ どのリリースがどの Hadoop バージョンとペアになっているかを一覧表示します。

ミラーページを開くと、以下に示すように、利用可能なHiveリリースディレクトリの一覧が表示されます。

Apache Hiveのリリースディレクトリ一覧を掲載したApacheミラーページ

Hive の最新バージョンを選択してください。(私の場合は現在 hive – 3.1.2 です。)リリースフォルダには、バイナリアーカイブとソースアーカイブが並んで表示されます。

Hiveリリースフォルダには、バイナリおよびソース配布アーカイブが表示されます。

binファイルをクリックするとダウンロードが開始されます。

ブラウザでapache-hive bin tar.gz配布ファイルのダウンロードを促すメッセージが表示される。

ステップ2)例tractarファイル

ダウンロードしたtarファイルの場所に移動して、trac以下のコマンドを使用してtarファイルを解凍し、Hiveをインストールします。 Ubuntu あなたのシステムで。

tar -xvf  apache-hive-3.1.2-bin.tar.gz

ターミナルは、ファイルが新しいHiveディレクトリに展開されるたびに、その内容を表示します。

Hive tar アーカイブが展開されている間のターミナル出力tracテッドオン Ubuntu

ステップ 3) Apache Hive にさまざまな構成プロパティを配置する

このステップでは、次の2つのことを行います。

  1. Hiveのホームパスをbashrcファイルに配置する
  2. Hadoopホームパスの場所をhive-config.shに配置する

1) ~/.bashrc に Hive のパスを記述する

以下のコマンドを使用して、ファイルを編集用に開きます。

Hive環境変数を編集するためにbashrcファイルを開くコマンド

  • 上記のスクリーンショットに示すように、bashrc ファイルを開きます。
  • bashrc ファイルに Hive ホーム パス、つまり HIVE_HOME パスを記述し、以下のようにエクスポートします。

bashrcファイルの末尾にHIVE_HOMEとPATHのエクスポート行を追加しました。

Code bashrc に配置する必要があります:

export HIVE_HOME="/home/guru99hive/apache-hive-1.2.0-bin"
export PATH=$PATH:$HIVE_HOME/bin

ファイルを再読み込み ソース〜/ .bashrc つまり、新しいパスは現在の端末セッションで有効になります。

2) hive-config.shでHadoopパスをエクスポートする

Hadoopエコシステムと通信するために、Hive設定ファイルでHadoopホームパスを定義します。以下に示すように、hive-config.shを開いてください。

Hive bin ディレクトリから hive-config.sh を開くために使用されるコマンド

以下に示すように、hive-config.sh ファイルに HADOOP_HOME パスを指定してください。

hive-config.sh ファイル内で宣言された HADOOP_HOME パス

ステップ 4) Hadoop で Hive ディレクトリを作成する

Hadoopと通信するには、以下に示すようにHadoop内にディレクトリを作成する必要があります。Hiveは管理対象テーブルのデータをウェアハウスディレクトリに書き込み、ステージング出力をtmpディレクトリに書き込みます。

Hiveのtmpディレクトリとウェアハウスディレクトリを作成するHDFSコマンド

HadoopでHiveフォルダを作成するためのroot権限を付与します。エラーメッセージが表示されなければ、HadoopがHiveフォルダへの権限付与に成功したことを意味します。

HDFS上のHiveフォルダにグループ書き込み権限が付与されていることを示すターミナル画面

ステップ5)Hiveシェルに入る

Hiveシェルに入るには、 '。 /ハイブ' 以下に示すコマンド。

Hive bin ディレクトリから Hive シェルプロンプトが開かれました Ubuntu

Hiveメタストアスキーマを初期化する方法

Hive は、すべてのテーブル名、列名、データ型をメタストアと呼ばれるリレーショナル ストアに保持します。新規インストール時にはこのストアは空であり、Hive 3.x 以降では、スキーマ テーブルが存在するまでシェルは起動しません。Hive の bin ディレクトリに同梱されている schematool ユーティリティが、これらのスキーマ テーブルを作成します。

シングルユーザー向けの学習環境であれば、同梱されているDerbyデータベースで十分です。

$HIVE_HOME/bin/schematool -dbType derby -initSchema

このコマンドは作成したスキーマバージョンを出力し、最後に schemaTool が完了しましたDerbyはコマンドが実行されたディレクトリにファイルを書き込むため、その後は必ず同じディレクトリからHiveを起動してください。

Derbyは一度に1つのアクティブセッションしか受け付けないため、共有クラスターには適していません。Point Hiveは MySQL 代わりに、hive-site.xmlに接続プロパティを追加し、別のデータベースタイプでツールを再実行してください。

$HIVE_HOME/bin/schematool -dbType mysql -initSchema

物件の全リストとドライバーの配置については、ガイドに記載されています。 Hiveメタストアを以下のように構成します。 MySQLさらに、覚えておくべき旗が2つあります。

  • -情報 何も変更せずに、メタストアに現在記録されているスキーマバージョンを報告します。
  • -upgradeSchema 既存のメタストアを、新しくインストールされたHiveリリースのスキーマバージョンに移行します。

スキーマが準備できたので、シェルは最初のHiveQLステートメントを受け入れる準備が整いました。

ハイブシェルコマンド

ここでは、Hiveシェルコマンド「create」を使用して、列名を指定してサンプルテーブルを作成します。

Hiveでデータベースを作成するためのサンプルコードです。以下のスクリーンショットは、作成ステートメントとdescribeコマンドの出力を続けて表示したものです。

Hiveシェルでのcreate tableコマンドとdescribe productコマンドの出力

上記のスクリーンショットから、以下のことが分かります。

1) Hiveで列名を含むサンプルテーブルを作成する

  • ここではテーブル名は「product」で、XNUMX つの列名があります。 製品、pname、および価格
  • 3つの列名は、それぞれのデータ型で示されています。
  • すべてのフィールドはカンマ「, 」で終わります

2) Hiveテーブル情報の表示

  • 「describe」コマンドを使用すると、Hiveに存在するテーブル情報を確認できます。
  • ここでは、テーブルスキーマに存在する列名とそのデータ型が表示されています。
  • 最後に、このコマンドの実行にかかった時間と取得した行数が表示されます。

データベースを作成するためのサンプルコード ハイブ (自己チェック用)

1) テーブル product を作成します (product は整数、pname は文字列、price は浮動小数点数)

Row format delimited
Fields terminated by ',';

2) 製品の説明

テーブルがdescribeコマンドに応答すると、シェル、メタストア、HDFSがすべて接続されます。ここから同じセッションがより広い範囲の テーブルの作成、変更、削除 声明と 並べ替え、グループ化、クラスタリング クエリ

Hiveのインストールでよくあるエラー Ubuntu そしてそれを修正する方法

初回実行時のエラーのほとんどは、Hive自体ではなく、Hiveを取り巻く環境に起因します。以下の表は、最も頻繁に表示されるメッセージとその原因、およびそれらを解消するコマンドを示しています。

画面上のメッセージ 考えられる原因 修正する
hive: コマンドが見つかりません HIVE_HOME/bin が PATH に含まれていません bashrc の export 行を再確認してから、実行してください。 ソース〜/ .bashrc
メタストアにバージョン情報が見つかりません メタストアスキーマは初期化されませんでした 選択したデータベースタイプに対して、-initSchema オプションを指定して schematool を実行します。
localhost:9000への呼び出しは接続例外により失敗しました HDFSが実行されていません Hadoopデーモンを起動し、NameNodeとDataNodeが表示されていることを確認します。 JPS
名前ノードはセーフモードです NameNodeはまだ起動時のセーフモードです セーフモードを終了するには hdfs dfsadmin -safemode leave
権限が拒否されました: /user/hive/warehouse に対するアクセス=WRITE 倉庫ディレクトリにグループ書き込み権限がありません 再申請 hdfs dfs -chmod g+w 倉庫ディレクトリと一時ディレクトリについて
Preconditions.checkArgument で NoSuchMethodError が発生しました HiveとHadoopは異なるバージョンのGuava jarを同梱している。 Hive lib ディレクトリにある古い Guava jar を削除し、その場所に Hadoop の jar をコピーします。

Hiveの問題とHadoopの問題を素早く区別する方法は、以下のコマンドを実行することです。 JPS まず、デーモンが見つからない場合はクラスターに問題があります。デーモンが存在してもシェルが失敗する場合は、Hive 構成またはメタストア スキーマに問題があります。シェルが安定したら、 HiveQLの演算子と組み込み関数 参考文献を参照するのが、次の自然なステップだ。

よくあるご質問

管理テーブルを使用すると、Hive はメタデータとファイルの両方を所有できるため、ping ウェアハウスディレクトリ内のデータを削除します。外部テーブルにはメタデータのみが記録され、ping 基となるファイルはそのまま残されます。

HiveはJVMとHadoopが動作する場所ならどこでも動作しますが、シェルスクリプトはUnix環境を前提としています。 Windows ほとんどのチームはWSL2またはDockerイメージを使用しています。 macOS JAVA_HOMEとHADOOP_HOMEをエクスポートすれば、同じtarアーカイブが動作する。

Beelineは、シェルプロセス内にHiveをロードするのではなく、HiveServer2に接続するJDBCクライアントです。同時ユーザーと認証をサポートしており、従来のHive CLIは非推奨となっているため、新規インストールではBeelineを標準として使用する必要があります。

最新のエンジンは、過去のクエリ統計情報を学習済みのコストモデルに入力し、スキャンサイズ、パーティションの剪定、結合順序を予測します。クラウドベンダーは、ファイル圧縮、パーティションレイアウト、コンテナサイズに関する自動推奨事項として、これらの情報を提供します。

Copilotはbashrcのエクスポート、hive-site.xmlのブロック、schematoolの呼び出しを迅速に作成し、エージェントランナーはそれらをサンドボックス内で実行できます。出力はあくまでも最初のドラフトとして扱ってください。バージョン番号、ポート、ディレクトリパスは、ご自身のクラスターで検証する必要があります。

Hive自体はシンクライアントであるため、学習には約4GBのRAMと20GBの空きディスク容量があれば十分です。本番環境のノードは、Hive自体ではなく、Hadoopクラスタとメタストアデータベースに合わせてサイズが決定されます。

新しいリリースを古いリリースの横に展開し、HIVE_HOME を再指定してから、-upgradeSchema オプションを付けて schematool を実行してメタストアを一致させます。削除は、Hive ディレクトリを削除してストリップするだけです。ping bashrc からのエクスポート行。HDFS ウェアハウスのデータは保持されます。

いいえ。MapReduceはHiveの実行エンジンとしては非推奨となり、Hive 4.xはデフォルトでApache Tez上で動作します。 MapReduce Tezも同じ方向性ジョブモデルに従っているため、このモデルを理解する価値は依然としてあります。