- Authors
- Name
Overview
Hiveは、Hadoopに保存されたデータをSQLを使って照会できるようにするMapreduce Wrapperです。
インストール方法
MySQLのインストール
mysql-server
sudo apt install mysql-server
MySQL Connectorのインストール
mysql-connector-official-download-siteからインストール済みのMySQLと互換性のあるバージョンのmysql-connectorをダウンロードします。
wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java_8.0.30-1ubuntu22.04_all.deb
dpkg -x mysql-connector-java_8.0.30-1ubuntu22.04_all.deb ./
cp usr/share/java/mysql-connector-java-8.0.30.jar /usr/local/hive/lib/
Hiveのインストール
https://www.apache.org/dyn/closer.cgi/hive/から適切なHiveバージョンを探してダウンロードします。
wget https://dlcdn.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
tar -zxvf apache-hive-3.1.3-bin.tar.gz
cd -R apache-hive-3.1.3-bin /usr/local/hive
~/.bashrcの修正
HIVE_HOME環境変数を追加します。
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}
export HIVE_HOME=/usr/local/hive
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$HIVE_HOME/bin
hive-env.shの修正
以下にHadoopホームディレクトリを設定します。
HADOOP_HOME=/usr/local/hadoop
hive-site.xmlの修正
最初はhive-site.xmlファイルが存在しないため、hive-default.xml.templateファイルをコピーしてhive-site.xmlを作成します。
以下の内容を追加します。
hive-site.xml
<property>
<name>system:java.io.tmpdir</name>
<value>/tmp/hive/java</value>
</property>
<property>
<name>system:user.name</name>
<value>${user.name}</value>
</property>
以下の内容を修正します。
hive-site.xml
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://ubuntu01:3306/hive?createDatabaseIfNotExist=true</value>
<description>
JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>my_mysql_password</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>my_mysql_username</value>
<description>Username to use against metastore database</description>
</property>
Metastoreスキーマの初期化
schematool -initSchema -dbType mysql -verbose
Hiveの実行
/usr/local/hive/bin/hive