在部署hive时,出现了一些问题,比如hadoop版本不匹配或者jdk版本过高等等,特此进行整理。以下版本可以进行匹配:
hadoop版本:hadoop-3.4.1
jdk版本:1.8.0_471
mysql版本:8.0.44
jdbc驱动版本:mysql-connector-j-8.0.33.jar
hive版本:3.1.3
提醒各位网友,出现问题后可以首先问一下AI,可以快速尝试解决,避免从网上找不到相关的解决方法。
======================问题记录==============
安装hive后启动没有问题,但是查看数据库时出现问题

从网上找到一些答案,有的说时没有初始化数据库,所以进行mysql初始化
配置mysql为hive的元数据存储库
cd /usr/local/hive/apache-hive-3.1.3-bin/conf
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
将以下内容复制到文件中
<configuration>
<!-- 1. 配置MySQL连接URL -->
<!-- 注意:jdbc:hive3 是为了防止时区和服务端参数错误,createDatabaseIfNotExist=true 会自动创建库 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true</value>
</property>
<!-- 2. 配置JDBC驱动类名 (MySQL 8.x 必须用 cj) -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<!-- 3. 配置连接MySQL的用户名 (请替换为你的MySQL用户名,通常是root) -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- 4. 配置连接MySQL的密码 (请替换为你的密码) -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>你的MySQL密码</value>
</property>
</configuration>
并将配置文件中关于derby的相关属性注释掉。
执行hive,发现出现以下问题

进入到文件中,将3239,96行的异常字符删掉

启动hive,出现以下异常

通常涉及到4个关键配置项:
-
hive.exec.local.scratchdir
-
hive.downloaded.resources.dir
-
hive.querylog.location
-
hive.server2.logging.operation.log.location
-
替换之前
-

-
替换之后

执行mysql初始化
$HIVE_HOME/bin/schematool -dbType mysql -initSchema -verbose
出现驱动版本不匹配问题,从网上找了好几个版本的驱动,都不管用,问了一下ai,给出了建议,选择了8.0.33版本

将解压后驱动上传到lib目录下
再次执行初始化
$HIVE_HOME/bin/schematool -dbType mysql -initSchema -verbose
初始化成功

启动hive,并执行show databases;

没有问题,正常执行。
创建一张表
CREATE TABLE pokes (foo INT, bar STRING);
创建成功

在hdfs上查看

可以在相关路径上看到了相应的文件夹。
