写在前面:
Hive的元数据库用的是MySql8。本文四处缝合而来, 仅作学习记录。
安装Hive肯定要Hadoop啊?怎么有人悄悄问我哪里安装hdfs???
参考:https://blog.csdn.net/l1682686/article/details/107814620
1:安装mysql
rpm mysql80-community-release-el8-1.noarch.rpm
设置mysql为开机启动:
systemctl enable mysqld.service
查看mysql是否开机启动
systemctl list-unit-files|grep mysqld
查看mysql服务
ps -ef|grep mysql
启动mysql服务
systemctl start mysqld.service
安装成功
2:下载hive
http://mirrors.hust.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
3:给解压好的hive文件夹创建软链接
ln -s apache-hive-3.1.2-bin hive
4:修改配置文件
进入hive/conf目录下,
新增 hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<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.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>amp</value>
<description>password to use against metastore database</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hive/warehouse</value>
<description>hive default warehouse, if nessecory, change it</description>
</property>
</configuration>
5:加入mysql连接包到hive根目录下的lib目录
下载地址:
https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.21.zip
将其中的
mysql-connector-java-8.0.2.1-bin.jar 放到lib目录下。
6:配置环境变量
vim ~/.bashrc
添加以上内容
source ~/.bashrc 使修改生效
验证hive是否安装成功:
7:初始化元数据库
schematool -dbType mysql -initSchema
8:启动hive客户端
(启动前先启动Hadoop dfs)
hive
show databases;
搭建成功~
踩坑记录:
1:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
原因:hive/lib下的guava包和hadoop的不一致
解决方法:把hadoop/share/hadoop/common/lib下的guava包替换掉hive/lib下的包
2:
Exception in thread "main" java.lang.ClassCastException:java.base/jdk.internal.loader.ClassLoaders$AppClassLoa
问题:原来高版本的jdk14.0.2跑不起来
解决方法:换成jdk8
下载地址:https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-windows-x64.exe