目录
2.2、把MySQL的JDBC驱动拷贝到Hive的lib目录下(此处用的是MySQL8.0.33的驱动)
2.3、在$HIVE_HOME/conf下创建hive-site.xml文件
3.3、在另外一个窗口开启hive,可以看到两个窗口都可以操作hive,没有异常
4.2、查看元数据中存储的库信息,hive中默认有default数据库
4.3、查看元数据中存储的列相关信息,保存创建表的字段的信息
1、简介
把Hive元数据写道MySQL的metastore数据库中(MySQL默认没有metastore数据库,需要提前创建:create database metastore;)
2、配置元数据到MySQL
2.1、新建元数据库
#登录到MySQL
mysql -u root -p123456
#创建元数据库
mysql>create database metastore;
mysql>quit;
2.2、把MySQL的JDBC驱动拷贝到Hive的lib目录下(此处用的是MySQL8.0.33的驱动)
cp /opt/software/mysql-connector-j-8.0.33.jar /opt/module/hive/lib
2.3、在$HIVE_HOME/conf下创建hive-site.xml文件
<?xml version="1.0"?>
<?xml-stylesheettype type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- jdbc连接的URL-->
<!--主机名:端口号/数据库名 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop104:3306/metastore?useSSL=false</value>
</property>
<!-- jdbc连接的Driver-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.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>123456</value>
</property>
<!-- Hive默认在HDFS的工作目录-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>
2.4、初始化hive元数据库,改为用MySQL存储
bin/schematool -dbType mysql -initSchema -verbose
3、验证元数据是否配置成功
3.1、启动hive
bin/hive
3.2、使用hive
hive> show databases;
hive> show tables;
hive> create table stu(id int, name string);
hive> insert into stu values(1,"liao");
hive> select * from stu;
3.3、在另外一个窗口开启hive,可以看到两个窗口都可以操作hive,没有异常
hive>show databases;
hive>show tables;
hive>select * from stu;
4、查看MySQL中的元数据
4.1、登录Mysql
mysql -u root -p123456
4.1、查看元数据库metastore
mysql> show databases;
mysql> use metastore;
mysql> show tables;
4.2、查看元数据中存储的库信息,hive中默认有default数据库
mysql>select * from DBS;
查看元数据中存储的表信息,TBLS中保存了在hive中创建所有表的信息,创建的表的根目录等信息保存在SDS表中:
mysql>select * from TBLS;
4.3、查看元数据中存储的列相关信息,保存创建表的字段的信息
mysql>select * from COLUMNS_V2;