Tencent Cloudでhive3.1.2を構築する方法を教えます

Tencent Cloudでhive3.1.2を構築する方法を教えます

環境の準備

操作を開始する前に、hadoop バージョンがインストールされていることを確認してください。詳細については、hadoop3.xの構築に関する私の別のブログ投稿を参照してください。

MySQLのインストール

まずインストールパッケージをソフトウェアフォルダに入れて、mysql-libに解凍します。

[root@マスターソフトウェア]# ll
総使用量 1422372
-rw-r--r-- 1 ルート ルート 312850286 7月2日 15:00 apache-hive-3.1.2-bin.tar.gz
-rw-r--r-- 1 ルート ルート 338075860 7月2日 09:39 hadoop-3.1.3.tar.gz
-rw-r--r-- 1 ルート ルート 195013152 7月 2日 09:36 jdk-8u212-linux-x64.tar.gz
-rw-r--r-- 1 ルート ルート 609556480 7月2日 15:08 mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
-rw-r--r-- 1 ルート ルート 985600 7月2日 14:44 mysql-connector-java-5.1.37.jar
[root@マスターソフトウェア]# mkdir mysql-lib
[root@master software]# tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C ./mysql-lib/
[root@マスターソフトウェア]# cd mysql-lib/
[root@master mysql-lib]# ll
総使用量 595272
-rw-r--r-- 1 7155 31415 45109364 2019年9月30日 mysql-community-client-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 318768 2019年9月30日 mysql-community-common-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 7037096 2019年9月30日 mysql-community-devel-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 49329100 2019年9月30日 mysql-community-embedded-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 23354908 2019年9月30日 mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 136837816 2019年9月30日 mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4374364 2019年9月30日 mysql-community-libs-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1353312 2019年9月30日 mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 208694824 2019年9月30日 mysql-community-server-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 133129992 2019年9月30日 mysql-community-test-5.7.28-1.el7.x86_64.rpm

まず環境に対処してください。CentOSにはMariaDBが付属しており、競合が発生するため、まずアンインストールする必要があります。

[root@master mysql-lib]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@master mysql-lib]# sudo rpm -e --nodeps mariadb-libs 
# アンインストールが完了したか確認する [root@master mysql-lib]# rpm -qa|grep mariadb
[root@master mysql-lib]# rpm -qa|grep mysql

問題ありません、インストールできます。必ず順番通りにインストールしてください。

[root@master mysql-lib]# ll
総使用量 595284
-rw-r--r-- 1 7155 31415 45109364 2019年9月30日 mysql-community-client-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 318768 2019年9月30日 mysql-community-common-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 7037096 2019年9月30日 mysql-community-devel-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 49329100 2019年9月30日 mysql-community-embedded-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 23354908 2019年9月30日 mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 136837816 2019年9月30日 mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 4374364 2019年9月30日 mysql-community-libs-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 1353312 2019年9月30日 mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 208694824 2019年9月30日 mysql-community-server-5.7.28-1.el7.x86_64.rpm
-rw-r--r-- 1 7155 31415 133129992 2019年9月30日 mysql-community-test-5.7.28-1.el7.x86_64.rpm
[root@master mysql-lib]# sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
警告:mysql-community-common-5.7.28-1.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################### [100%]
アップグレード/インストール中...
  1:mysql-community-common-5.7.28-1.e###################################### [100%]
[root@master mysql-lib]# sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
警告:mysql-community-libs-5.7.28-1.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################### [100%]
アップグレード/インストール中...
  1:mysql-community-libs-5.7.28-1.el7###################################### [100%]
[root@master mysql-lib]# sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
警告:mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################### [100%]
アップグレード/インストール中...
  1:mysql-community-libs-compat-5.7.2###################################### [100%]
[root@master mysql-lib]# sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
警告:mysql-community-client-5.7.28-1.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################### [100%]
アップグレード/インストール中...
  1:mysql-community-client-5.7.28-1.e####################################### [100%]

5番目をインストールするときに、CentOSが最小限インストールされていると、この問題が報告されます。

[root@master mysql-lib]# sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
警告:mysql-community-server-5.7.28-1.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
エラー: 依存関係のチェックに失敗しました:
    libnuma.so.1()(64bit) は、mysql-community-server-5.7.28-1.el7.x86_64 に必要です。 libnuma.so.1(libnuma_1.1)(64bit) は、mysql-community-server-5.7.28-1.el7.x86_64 に必要です。 libnuma.so.1(libnuma_1.2)(64bit) は、mysql-community-server-5.7.28-1.el7.x86_64 に必要です。
[root@master mysql-lib]# yum install -y libaio
[root@master mysql-lib]# yum install -y numactl

その後、もう一度インストールしてみてください。

[root@master mysql-lib]# sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
警告:mysql-community-server-5.7.28-1.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 署名、キー ID 5072e1f5: NOKEY
準備中... ################################### [100%]
アップグレード/インストール中...
  1:mysql-community-server-5.7.28-1.e###################################### [100%]

過去の残留ファイルをクリーンアップする

[root@master mysql-lib]# cat /etc/my.cnf
# 設定の変更方法については、
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# 先頭の # を削除し、最も重要なデータの RAM の量を設定します
# MySQL のキャッシュ。専用サーバーの場合は合計 RAM の 70% から開始し、それ以外の場合は 10% から開始します。
# innodb_buffer_pool_size = 128M
#
# 先頭の # を削除して、非常に重要なデータ整合性オプションであるログ記録をオンにします。
# バックアップ間のバイナリ ログへの変更。
# ログビン
#
# 先頭の # を削除して、主にレポート サーバーに役立つオプションを設定します。
# サーバーのデフォルトは、トランザクションと高速 SELECT に対して高速です。
# 必要に応じてサイズを調整し、最適な値を見つけるために実験してください。
# 結合バッファサイズ = 128M
# ソートバッファサイズ = 2M
# read_rnd_buffer_size = 2M
データディレクトリ=/var/lib/mysql
ソケット=/var/lib/mysql/mysql.sock

# さまざまなセキュリティリスクを防ぐために、シンボリックリンクを無効にすることをお勧めします
シンボリックリンク=0

ログエラー=/var/log/mysqld.log
pidファイル=/var/run/mysqld/mysqld.pid

mysqlディレクトリは/var/lib/mysqlであることがわかりました

# このアドレスを入力して、履歴の残存ファイルがあるかどうかを確認します [root@master mysql-lib]# cd /var/lib/mysql
# 何もなければ問題ありません。何かあれば削除してください。[root@master mysql]# ll
合計使用量 0

MySQLを初期化する

[root@master mysql]# sudo mysqld --initialize --user=mysql

デフォルトのパスワードを確認する

[root@master mysql]# cat /var/log/mysqld.log 
2020-07-02T07:29:10.095244Z 0 [警告] 暗黙の DEFAULT 値を持つ TIMESTAMP は非推奨です。--explicit_defaults_for_timestamp サーバー オプションを使用してください (詳細についてはドキュメントを参照してください)。
2020-07-02T07:29:11.331738Z 0 [警告] InnoDB: 新しいログ ファイルが作成されました。LSN=45790
2020-07-02T07:29:11.498492Z 0 [警告] InnoDB: 外部キー制約システム テーブルを作成しています。
2020-07-02T07:29:11.590436Z 0 [警告] 既存の UUID が見つからなかったため、このサーバーが初めて起動されたと想定します。新しい UUID を生成しています: b94654a6-bc35-11ea-a160-525400f3e388。
2020-07-02T07:29:11.600554Z 0 [警告] Gtid テーブルは使用準備ができていません。テーブル 'mysql.gtid_executed' を開くことができません。
2020-07-02T07:29:13.093996Z 0 [警告] CA 証明書 ca.pem は自己署名されています。
2020-07-02T07:29:13.522160Z 1 [注記] root@localhost の一時パスワードが生成されます: p;oK<M)<_8p/

パスワードはp;oK<M)<_8p/です。これをコピーしてmysqlと入力してください。

mysqlを入力する

MySQLサービスを開始する

[root@master mysql]# systemctl でmysqldを起動します
[root@master mysql]# systemctl ステータス mysqld
● mysqld.service – MySQL サーバー
  ロード済み: ロード済み (/usr/lib/systemd/system/mysqld.service; 有効; ベンダープリセット: 無効)
  アクティブ: 2020-07-02 木曜日 15:31:00 CST からアクティブ (実行中)、10 秒前
   ドキュメント: man:mysqld(8)
      http://dev.mysql.com/doc/refman/en/using-systemd.html
 プロセス: 5617 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (コード=終了、ステータス=0/成功)
 プロセス: 5497 ExecStartPre=/usr/bin/mysqld_pre_systemd (コード=終了、ステータス=0/成功)
 メイン PID: 5624 (mysqld)
  タスク: 27
  メモリ: 205.4M
  Cグループ: /system.slice/mysqld.service
      └─5624 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid...

7月2日 15:30:55 master systemd[1]: MySQLサーバーを起動しています...
7月2日 15:31:00 master systemd[1]: MySQLサーバーを起動しました。

mysqlを入力する

$ mysql -u ルート -p

パスワードの入力を求められた場合は、コピーしたパスワードを入力します。

mysqlに正常に入力したら、mysqlパスワードを設定し、覚えておいてください。

#パスワードを自分のパスワードに設定しますmysql> set password = password("your password");

次に、後続のハイブ接続に備えて、ルートユーザーの権限を任意のIP接続を許可するように設定します。

mysql> mysql を使用します。
mysql> ユーザーからホスト、ユーザーを選択します。
+-----------+---------------+
| ホスト | ユーザー |
+-----------+---------------+
| ローカルホスト | mysql.セッション |
| ローカルホスト | mysql.sys |
| ローカルホスト | ルート |
+-----------+---------------+
セット内の 3 行 (0.00 秒)

mysql> mysql.user を更新し、host='%' を設定し、user='root' とします。
クエリは正常、1 行が影響を受けました (0.00 秒)
一致した行: 1 変更された行: 1 警告: 0
# 権限が高いものが上部に表示されます(新バージョンでは最適化されています)
mysql> ユーザーからホスト、ユーザーを選択します。
+-----------+---------------+
| ホスト | ユーザー |
+-----------+---------------+
| % | ルート |
| ローカルホスト | mysql.セッション |
| ローカルホスト | mysql.sys |
+-----------+---------------+
セット内の 3 行 (0.00 秒)

-- 設定を更新するにはこの手順を実行する必要があります。そうしないと、パスワードが有効になりません。mysql> flush privileges;
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

mysql>終了

次に、変更したパスワードでログインしてみます。成功した場合、設定は完了です。

Hiveをインストールする

/home/centos/software ディレクトリに移動し、apache-hive-3.1.2-bin.tar.gz を /home/centos/module/ ディレクトリに解凍します。

[root@マスターソフトウェア]# tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /home/centos/module/

モジュールフォルダに入り、ファイル名を変更します

[root@マスターモジュール]# ll
総投与量 12
drwxr-xr-x 9 ルート ルート 4096 7月2日 15:40 apache-hive-3.1.2-bin
drwxr-xr-x 11 centos centos 4096 7月2日 11:51 hadoop-3.1.3
drwxr-xr-x 7 10 143 4096 2019年4月2日 jdk1.8.0_212
[root@マスターモジュール]# mv apache-hive-3.1.2-bin/ hive
[root@マスターモジュール]# ll
総投与量 12
drwxr-xr-x 11 centos centos 4096 7月2日 11:51 hadoop-3.1.3
drwxr-xr-x 9 ルート ルート 4096 7月2日 15:40 ハイブ
drwxr-xr-x 7 10 143 4096 2019年4月2日 jdk1.8.0_212

環境変数の設定

[root@マスターモジュール]# vim /etc/profile.d/my_env.sh 
#ハイブホーム
エクスポート HIVE_HOME=/home/centos/module/hive
エクスポート PATH=$PATH:$HIVE_HOME/bin

環境変数をロードし、成功したかどうかを確認します。

[root@マスターモジュール]# ソース /etc/profile
[root@マスターモジュール]# echo $HIVE_HOME
/home/centos/モジュール/ハイブ

ログ Jar パッケージの競合を解決する

hadoop と hive の間に log4j バージョンの競合があります。有効にできないように、hive lib フォルダー内の jar パッケージの名前を変更する必要があります。ファイル名の末尾に .bak を追加するだけです。

[atguigu@hadoop102 ライブラリ]$ mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.bak

[atguigu@hadoop102 lib]$ ll | grep log4j
-rw-rw-r--。1 atguigu atguigu 63835 4月15日 00:34 log4j-1.2-api-2.10.0.jar
-rw-rw-r--。1 atguigu atguigu 255485 4月15日 00:24 log4j-api-2.10.0.jar
-rw-rw-r--。1 atguigu atguigu 1597622 4月15日 00:24 log4j-core-2.10.0.jar
-rw-rw-r--。1 atguigu atguigu 24173 4月15日 00:24 log4j-slf4j-impl-2.10.0.jar.bak
-rw-rw-r--。1 atguigu atguigu 32060 4月15日 00:34 log4j-web-2.10.0.jar

Hive メタデータ構成を MySQL に

MySQL JDBCドライバをHive libディレクトリにコピーします。

[root@master lib]# cp /home/centos/software/mysql-connector-java-5.1.37.jar ./

コピーが成功したか確認する

[root@master lib]# ll | grep mysql-con
-rw-r--r-- 1 ルート ルート 985600 7月2日 15:47 mysql-connector-java-5.1.37.jar

メタストアをmysqlに設定する

$HIVE_HOME/conf ディレクトリに新しい hive-site.xml ファイルを作成します。

[root@master conf]# vim hive-site.xml

変更する必要がある値は 3 つあります。

  • テンセントクラウドイントラネットIP
  • MySQL パスワード
  • ローカルホスト名
<?xml バージョン="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl" rel="外部nofollow" ?>
<構成>
  <!-- JDBC 接続の URL -->
  <プロパティ>
    <name>javax.jdo.option.ConnectionURL</name>
    <値>jdbc:mysql://Tencent Cloud イントラネット ip:3306/metastore?useSSL=false</値>
</プロパティ>

  <!-- JDBC 接続ドライバー -->
  <プロパティ>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <値>com.mysql.jdbc.Driver</値>
</プロパティ>

    <!-- JDBC 接続ユーザー名 -->
  <プロパティ>
    <name>javax.jdo.option.ConnectionUserName</name>
    <値>ルート</値>
  </プロパティ>

  <!-- JDBC 接続のパスワード -->
  <プロパティ>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>MySQL パスワード</value>
  </プロパティ>
  <!-- HDFS 内の Hive のデフォルトの作業ディレクトリ -->
  <プロパティ>
    <name>hive.metastore.warehouse.dir</name>
    <値>/user/hive/warehouse</値>
  </プロパティ>
  
  <!-- Hive メタデータ ストレージ バージョンの検証 -->
  <プロパティ>
    <name>hive.metastore.schema.verification</name>
    <値>偽</値>
  </プロパティ>
  <!-- メタデータを保存するための接続先のアドレスを指定します -->
  <プロパティ>
    <name>hive.metastore.uris</name>
    <value>thrift://Tencent Cloud イントラネット ip:9083</value>
  </プロパティ>
  <!-- hiveserver2 接続のポート番号を指定します-->
  <プロパティ>
  <name>hive.server2.thrift.port</name>
  <値>10000</値>
  </プロパティ>
  <!-- hiveserver2 が接続するホストを指定します -->
  <プロパティ>
    <name>hive.server2.thrift.bind.host</name>
    <value>ローカルホスト名</value>
  </プロパティ>
  <!-- メタデータ保存の承認 -->
  <プロパティ>
    <name>hive.metastore.event.db.notification.api.auth</name>
    <値>偽</値>
  </プロパティ>
  
  <!-- hiveserver2 の高可用性パラメータ。このパラメータを有効にすると、hiveserver2 の起動速度が向上します。 -->
<プロパティ>
  <name>hive.server2.active.passive.ha.enable</name>
  <値>真</値>
</プロパティ>

</構成>

変更した内容を貼り付けたら保存して終了します

ハイブを開始

メタデータデータベースを初期化する

MySQLにログインしてHiveメタベースを作成する

mysql> データベースメタストアを作成します。
クエリは正常、1 行が影響を受けました (0.00 秒)

終了してハイブメタベースを初期化します

# Hive にメタストアに初期化されたテーブルを作成させる [atguigu@hadoop102 software]$ schematool -initSchema -dbType mysql -verbos

もう一度mysqlを入力して、作成されたことを確認します(74テーブル)

mysql> メタストアを使用します。
mysql> テーブルを表示します。

起動スクリプトを作成します。そうしないと、バックグラウンドで起動するために毎回このような長いスクリプトを書くのが面倒になります。

[root@master bin]# vim hs.sh

次のコンテンツを追加します

#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/ログ
#このディレクトリが存在するかどうかを判断し、存在しない場合は作成します if [ ! -d $HIVE_LOG_DIR ]
それから
	mkdir -p $HIVE_LOG_DIR
フィ
#プロセスが正常に実行されているかどうかを確認します。パラメータ 1 はプロセス名、パラメータ 2 はプロセス ポートです #ステータス
関数 check_process()
{
	#/dev/null ブラックホール 不要なストリームは破棄のためにここに配置されます pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}')
  ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1)
  $pidをエコーする
  [[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && 0 を返す || 1 を返す
}

#始める
関数 hive_start()
{
  metapid=$(check_process HiveMetastore 9083)
  #この行を理解してください。この行はサービスのバックグラウンドを開始するためのものです。cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"
  cmd=$cmd" スリープ 4; hdfs dfsadmin -safemode wait >/dev/null 2>&1"
  [ -z "$metapid" ] && eval $cmd || echo "Metastroe サービスが開始されました"
  server2pid=$(check_process HiveServer2 10000)
  #この行を理解してください。この行はサービスのバックグラウンドを開始するためのものです。cmd="nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
  [ -z "$server2pid" ] && eval $cmd || echo "HiveServer2 サービスが開始されました"
}

#停止
関数 hive_stop()
{
  metapid=$(check_process HiveMetastore 9083)
  [ "$metapid" ] && kill $metapid || echo "Metastore サービスが開始されていません"
  server2pid=$(check_process HiveServer2 10000)
  [ "$server2pid" ] && kill $server2pid || echo "HiveServer2 サービスは開始されていません"
}

ケース$1
"始める")
  ハイブスタート
  ;;
"停止")
  ハイブストップ
  ;;
"再起動")
  ハイブストップ
  睡眠2
  ハイブスタート
  ;;
"状態")
  check_process HiveMetastore 9083 >/dev/null && echo "Metastore サービスは正常に実行されています" || echo "Metastore サービスは異常に実行されています"
  check_process HiveServer2 10000 >/dev/null && echo "HiveServer2 サービスは正常に動作しています" || echo "HiveServer2 サービスは異常に動作しています"
  ;;
*)
  echo 無効な引数です!
  echo '使用法: '$(basename $0)' start|stop|restart|status'
  ;;
エサック

保存して終了し、スクリプトに権限を追加します

$ chmod +x hs.sh

それでは起動してみましょう(起動する前に、Hadoop が起動して正常に動作していることを確認してください)

[root@master bin]# hs.sh 開始
[ルート@マスターbin]# jps
32177 セカンダリネームノード
514 ノードマネージャー
20788 日本
31396 ネームノード
32652 リソースマネージャー
20253 ランジャー
31757 データノード
991 ジョブ履歴サーバー

起動が成功したことがわかります。スクリプトを使用してステータスを確認してみましょう。

[root@master bin]# hs.sh ステータス
Metastore サービスが異常に動作しています。HiveServer2 サービスが異常に動作しています。

異常な動作があることに気づいて驚くかもしれません。何が起こっているのでしょうか?実は、ゆっくり始まるからです。信じられないなら、2分後にもう一度試してみてください。

[root@master bin]# hs.sh ステータス
Metastore サービスは正常に実行されています。HiveServer2 サービスは正常に実行されています。

ハイブJDBCアクセス

直線

Hadoop の構築に root を使用しなかった場合は、独自の設定に従って変更してください。

#jdbc 管理者は root なので、root アクセスを使用する必要があります。そうでない場合は権限がありません -n の後にはログインするユーザーが続きます [atguigu@hadoop102 bin]$ beeline -u jdbc:hive2://master:10000 -n root
jdbc:hive2://master:10000 に接続しています
接続先: Apache Hive (バージョン 3.1.2)
ドライバー: Hive JDBC (バージョン 3.1.2)
トランザクション分離: TRANSACTION_REPEATABLE_READ
Apache Hive による Beeline バージョン 3.1.2
0: jdbc:hive2://マスター:10000>

これは正常に入力されたことを意味します。終了する場合は

0: jdbc:hive2://master:10000> !終了
終了: 0: jdbc:hive2://master:10000

ハイブコマンドライン

[atguigu@hadoop102 bin]$ ハイブ
#情報山盛り>

これは、正常に入力されたことを意味します。終了するには、 quit;その後、Hive をプレイできます。

歴史

履歴記録はホームディレクトリにあります

$ cd ~
$ ls -a

.hivehistoryファイルと.beelineフォルダーが表示されます。履歴レコードは、JDBC を終了した後に書き込まれます。

Hive操作ログの設定

デフォルトでは、Hive ログは現在のユーザー名で保存されます。また、後で簡単に確認できるように、Hive 独自の操作ログもこのログに保存します。

(1) $HIVE_HOME/conf/hive-log4j.properties.templateのファイル名をhive-log4j.propertiesに変更する

$ mv hive-log4j2.properties.template hive-log4j.properties
$ vim hive-log4j.properties

(2)hive-log4j.propertiesファイルでログ保存場所を変更する

プロパティ.hive.log.dir=/home/centos/module/hive/logs 

Hive 起動 JVM ヒープ メモリ設定

Hive の新しいバージョンを起動すると、要求されるデフォルトの jvm ヒープ メモリ サイズは 256M になります。要求される jvm ヒープ メモリが小さすぎるため、後でローカル モードをオンにしたときに複雑な SQL を実行すると、 java.lang.OutOfMemoryError: Java heap spaceエラーが頻繁に報告されます。したがって、事前にHADOOP_HEAPSIZEパラメータを調整することをお勧めします。

[atguigu@hadoop102 conf]$ cp hive-env.sh.template hive-env.sh
[atguigu@hadoop102 conf]$ vim hive-env.sh

hive-env.shのパラメータexport HADOOP_HEAPSIZE=1024コメントを解除します。

上記のすべての構成を完了したら、Hive を再起動します。

WindowsからHiveを接続する

dbeaver をお勧めします。接続する前に、セキュリティ グループに移動してポート 10000 を開くことを忘れないでください。

具体的な設定手順は以下のとおりです。

それから

接続をテストし、約 1 分間待ちます。基本的には成功します。その後、Windows で Hive を楽しむことができます。

Tencent Cloud で hive3.1.2 を構築する方法についての記事はこれで終わりです。Tencent Cloud で hive3.1.2 を構築する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Tencent Cloud 上で Hadoop 3.x 疑似クラスターを構築する方法を説明します
  • Tencent Cloud Serverの構築方法を説明します(グラフィックチュートリアル)

<<:  JSデータ型検出のさまざまな方法の概要

>>:  LinuxのCentos7でmysql5.7.29を構築する詳細なプロセス

推薦する

高い同時実行性の下でNginxのパフォーマンスを最適化する方法をまとめます

目次特徴利点インストールとコマンド設定ファイルプロキシモードとリバースプロキシ構成フォワードプロキシ...

MySQL データベースに基づくデータ制約の例と 5 つの整合性制約の紹介

非準拠データがデータベースに入るのを防ぐために、ユーザーがデータを挿入、変更、削除、その他の操作を行...

効率的な視覚化Nginxログ表示ツール

目次導入インストール表示フィールドフィルターソートキー導入Rhit は、標準フォルダー (gzip ...

ウェブデザイン:大量の素材の正確な配置と使用

3回の暗記により、大量の資材の正確な場所と目的を記憶でき、その使いやすさが向上します。 これは単なる...

WEBAPP開発スキルのまとめ(モバイルWebサイト開発の注意点)

1. レスポンシブな Web を開発するには、ページを画面サイズに適応させる必要があります。前の記...

Vue3 を使用してポップアップ コンポーネントをカプセル化するのは簡単ですか?

目次最初に要約: 🌲🌲 序文: 🍬🍬公開🍬🍬 🍬🍬グローバル🍬🍬 🍬🍬ボールボックス🍬🍬 🎉🎉🎉結論...

Windows 64 ビットでの MySQL 8.0.13 のインストールと設定方法のグラフィック チュートリアル

この記事では、MySQL 8.0.13のインストールと設定のチュートリアルを参考までに紹介します。具...

Vueオプションの詳細な説明

目次1. オプションとは何ですか? 2. 含まれる属性3. エントリー属性エルデータ方法コンポーネン...

MySQL 5.7 でブロックポジショニング DDL の問題を解決する

前回の記事「MySQL テーブル構造の変更、メタデータ ロックを知っておく必要があります」では、MD...

Centos6.6 で php7 + nginx 環境をインストールする方法

この記事では、centos6.6 で php7 + nginx 環境をインストールする方法について説...

IDEAでVUEプロジェクトをデバッグするための詳細な手順

js コードをデバッグするには、コード内にデバッガーを記述するか、Chrome で毎回ブレークポイン...

アップロード画像コントロールを実現するネイティブ js

この記事の例では、アップロード画像コントロールを実装するためのjsの具体的なコードを参考までに共有し...

Vue の新しいおもちゃ VueUse の具体的な使い方

目次序文VueUseとは使いやすいおなじみの手ぶれ補正やスロットル機能もありますグローバル状態を共有...

MySQL でメタデータ ロックがブロックされている場所を確認する方法

MySQL でメタデータ ロックがブロックされている場所を確認する方法手順: 1. セッション1の実...

Linux の高並列性とパフォーマンス最適化の落とし穴の紹介

目次序文Linux アプリケーション実行中に開いているファイルが多すぎる問題の分析と解決Linux ...