修改hive环境变量文件
cd /opt/hive/conf # (Hive安装包路径的conf文件夹) cp hive-env.sh.template hive-env.sh vim hive-env.sh
在hive-env.sh文件的最下面加入如下内容
export HADOOP_HOME=/opt/hadoop #(hadoop的路径) export HIVE_CONF_DIR=/opt/hive/conf # (hive配置文件夹的路径) export HIVE_AUX_JARS_PATH=/opt/hive/lib # (hive lib库的路径)
在conf目录下创建hive-site.xml文件
vim hive-site.xml
插入一下内容
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc 连接的 URL -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>
jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
</property>
<!-- jdbc 连接的 Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- jdbc 连接的 username-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- jdbc 连接的 password -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>yyan.1026</value>
</property>
<!-- H2S运行绑定host -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>slaver1</value>
</property>
<!-- 指定存储元数据要连接的地址,这个参数决定了metastore服务是自己配置,还是远程配置 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>
<!-- Hive 元数据存储版本的验证 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!--元数据存储授权-->
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<!-- Hive 默认在 HDFS 的工作目录 -->
<!-- <property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property> -->
<!-- 指定 hiveserver2 连接的 host -->
<!-- <property>
<name>hive.server2.thrift.bind.host</name>
<value>node01</value>
</property> -->
<!-- 指定 hiveserver2 连接的端口号 -->
<!-- <property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property> -->
</configuration>
在Hive3中需要初始化metadata,命令如下
cd /opt/hive bin/schematool -initSchema -dbType mysql -verbos
运行完成后会出现右图的结果。
并且在hive3.1.2的版本下,查询mysql的hive库会有72个表出现。

这个时候,如果直接启动hive会出现如下报错。访问不了metadata。

远程模式启动metastore服务
# 1. 前台启动 /opt/hive/bin/hive --service metastore # 2. 后台启动 nohup /opt/hive/bin/hive --service metastore & # 3. 前台启动开启debug日志 /opt/hive/bin/hive --service metstore --hiveconf hive.root.logger=DEBUG,console
metstore启动结果如下:

metstore启动完成后,在启动hive查询数据库就会正常执行。

