hive metastore 和 hiveServer2 遇到的问题

1. hive metastroe 的问题

这个问题最早的时候是在启动 hive 的时候遇到的,当时报错是:

我把 hive-site.xml 中的这部分配置注释掉之后就不再报错了,但是会在启动 hive 的时候有警告,当时把这个问题直接忽略过去了,因为已经可以 hive 已经可以正常运行了
在这里插入图片描述
(被注释掉的代码)
hive metastore 和 hiveServer2 遇到的问题_第1张图片
(启动 hive 时的警告)
后来在尝试 spark on hive 的时候,报了一个这个错误:
hive metastore 和 hiveServer2 遇到的问题_第2张图片

通过查资料,发现是需要启动 service metastore,看到 metastore 就很熟悉,上面遇到过,于是我把上面注释掉的代码解除注释,并在 master(与配置文件里的 ip 对应) 上运行 hive --service metastore 命令,重新启动 spark-shell,问题解决。

 nohup hive --service metastore 2>/dev/null &(一直运行、后台启动、日志输出到黑洞)

在这里插入图片描述
(hive 正常)
在这里插入图片描述
(spark 正常)
2. hiveserver2 的启动问题
我们启动 hiveserver2 来开启 10000 端口,通过 idea 连接到 hive,方便地写建表语句,第一次启动没有任何问题,idea 成功连接,但是过了一段时间,idea 就突然连接不上去了,我到 linux 把hiveServer2先 kill 掉,然后重新运行,发现报错:
hive metastore 和 hiveServer2 遇到的问题_第3张图片

我当时从网上查了一些资料,发现与我们的情况都不符合,我们不可能是因为缺少包导致的,否则第一次就启动不起来,所以我就尝试在 master 上也启动 hiverserver2,发现报了同样的错误,但是在该错误的下面还有其他正常信息:
hive metastore 和 hiveServer2 遇到的问题_第4张图片

看起来是正常的样子,于是我尝试用 idea 连接 master 的 hive,发现连上去了,果然和缺少Tez 没有关系,master 可以启动 hiveSerer2,但是 slave1 不可以,二者关于 hive 的差别就是在这里(图一),master 就位于 metastore 服务的主机上,而 slave1 不是。因为我们要把 slave1 当作 hive 的主机,所以我就在三台节点上都做了更改,把 master 改成 slave1(图二)
hive metastore 和 hiveServer2 遇到的问题_第5张图片
(图一)
在这里插入图片描述
(图二)

更改完配置之后,kill 掉 master 上的 hive metastore service,然后在 slave1 上启动 hive metastore service 和 hiveserver2,问题解决!

你可能感兴趣的:(实训项目——数据运营系统,hive)