MySQLとHiveのインストールと設定

MySQLのインストール

MySQLをインストールする前に、MariaDBとの競合を避けるため、既にインストールされているMariaDBをアンインストールする必要があります。

// MariaDBがインストールされているか確認
rpm -qa | grep mariadb
// MariaDBを強制的にアンインストール
rpm -e --nodeps mariadb-libs

次に、MySQLのRPMパッケージをインストールします。まず、配布ファイルを展開します。

// MySQLのRPMバンドルを展開
tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

展開後、依存関係を順番にインストールします。一部のパッケージは、依存関係を無視して強制的にインストールする必要があります。

// MySQLの依存パッケージを順番にインストール
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm --nodeps --force

インストールが完了したら、MySQLを初期化します。このプロセス中に、rootユーザーの初期パスワードがログファイルに生成されます。

// MySQLを初期化
mysqld --initialize --user=mysql

初期化が完了したら、MySQLサービスを起動し、ステータスを確認します。

// MySQLサービスを起動
systemctl start mysqld
// サービスのステータスを確認
systemctl status mysqld

サービスが正常に起動したら、MySQLにログインし、セキュリティ設定を構成します。まず、ログファイルから初期パスワードを取得し、ログインします。

// MySQLにログイン
mysql -uroot -p

ログイン後、rootユーザーのパスワードを設定し、リモートアクセスを許可します。

-- rootユーザーのパスワードを設定
ALTER USER 'root'@'localhost' IDENTIFIED BY 'secure_password_123';

-- すべてのホストからの接続を許可
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'secure_password_123' WITH GRANT OPTION;

-- 設定を反映
FLUSH PRIVILEGES;

Hiveのインストール

次に、Hiveをインストールします。まず、Hiveのアーカイブファイルを展開し、ディレクトリ名を短くします。

// Hiveのインストールパッケージを展開
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/softs/

// ディレクトリ名を変更
mv apache-hive-3.1.2-bin/ hive3.1.2/

Hiveのライブラリディレクトリ内には、Hadoopのバージョンと競合する可能性のあるJARファイルが含まれているため、これらを無効化する必要があります。

// 競合するJARファイルをリネームして無効化
cd /opt/softs/hive3.1.2/lib/
mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.bak
mv guava-19.0.jar guava-19.0.jar.bak

Hiveの環境変数をシステムに設定します。

// /etc/profileを編集
vim /etc/profile

// HIVE_HOMEの設定を追加
export HIVE_HOME=/opt/softs/hive3.1.2
export PATH=$PATH:$HIVE_HOME/bin

// 設定を反映
source /etc/profile

HadoopのGuava JARはHiveのものより新しいバージョンであるため、Hiveのライブラリディレクトリにコピーして置き換えます。

// HadoopのGuava JARをHiveのライブラリにコピー
cp /opt/softs/hadoop3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar /opt/softs/hive3.1.2/lib/

次に、HiveがMySQLデータベースを使用できるように、MySQLのJDBCドライバをHiveのライブラリディレクトリに追加します。

// JDBCドライバをHiveのlibディレクトリにコピー
cp mysql-connector-java-5.1.47.jar /opt/softs/hive3.1.2/lib/

Hiveの設定ファイルである`hive-site.xml`を作成し、以下の内容を追加します。データベース接続情報やHiveの動作ディレクトリなど、環境に合わせて値を調整してください。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hive-server:3306/hive_db?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>secure_password_123</value>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
  </property>
  <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>hive-server</value>
  </property>
  <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
  </property>
  <property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
  </property>
  <property>
    <name>hive.server2.active.passive.ha.enable</name>
    <value>true</value>
  </property>
</configuration>

この`hive-site.xml`ファイルをHiveの設定ディレクトリに配置します。

// 設定ファイルをHiveのconfディレクトリに移動
mv hive-site.xml /opt/softs/hive3.1.2/conf/

HiveはHadoopのプロキシユーザー機能を利用するため、Hadoopの`core-site.xml`を編集してrootユーザーが他のユーザーを偽装できるように設定します。

// Hadoopのcore-site.xmlを編集
vim /opt/softs/hadoop3.1.3/etc/hadoop/core-site.xml

// 以下の設定を追加
<property>
  <name>hadoop.proxyuser.root.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
</property>

変更した`core-site.xml`をクラスター内の他のノードに同期します。

// 設定ファイルを他のノードにコピー
scp core-site.xml node2:/opt/softs/hadoop3.1.3/etc/hadoop/
scp core-site.xml node3:/opt/softs/hadoop3.1.3/etc/hadoop/

Hadoopクラスターを起動した後、Hiveのメタストアスキーマを初期化します。

// Hiveのスキーマを初期化
schematool -dbType mysql -initSchema

これで、Hiveが正常に設定され、使用できるようになりました。

タグ: MySQL Hive Hadoop JDBC データベース

7月1日 00:19 投稿