改变hive的端口8020到9000。(SemanticException Unable to determine if hdfs://node1:8020/user/hive/warehouse)

文章目录

  • 问题:SemanticException Unable to determine if hdfs://node1:8020/user/hive/warehouse/t_score is encrypted: org.apache.hadoop.hive.ql.metadata.HiveException: java.net.ConnectException: Call From node1/192.168.88.151 to node1:8020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
  • 分析
  • 解决问题步骤:
    • 1、先改变hive的hive-site.xml配置文件。
    • 2、删除原本就有的hive元数据。(可以试一下更新元数据的信息,就是把所有元数据的8020端口改成9000,本人的试了没有解决,要是你们解决了,就不用进行下面的操作了)
      • 更新元数据
      • 删除元数据:进入myslq,删除hive元数据的那个数据库。
      • 删除后格式化hive,也就是在创建一个hive3来存储元数据。
    • 3、格式化hadoop
      • 注意:hive的数据存在hdfs上记得在新建一个目录
      • 关闭Hadoop
      • 删除旧的Hadoop元数据文件
      • 确认DataNode目录
      • 格式化NameNode
      • 启动Hadoop集群
    • 总结:

问题:SemanticException Unable to determine if hdfs://node1:8020/user/hive/warehouse/t_score is encrypted: org.apache.hadoop.hive.ql.metadata.HiveException: java.net.ConnectException: Call From node1/192.168.88.151 to node1:8020 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused

在这里插入图片描述

分析

本人的情况是把Hadoop的hdfs的端口号改为9000,后原本的能用的hive出现这个错

在这里插入图片描述

Hive在执行某个操作(可能是在查询、加载数据或者写入数据到表中)时,试图连接到HDFS Namenode服务(位于node1:8020)。

所以我们要改一下hive的这个端口号,把他也改变成9000。同时因为原来是的数据都已经有8020的标签,所以一会还要去删除hive元数据,本人也把datanode节点的数据都给格式化了。

解决问题步骤:

1、先改变hive的hive-site.xml配置文件。

在hive-site.xml中加入以下的代码。

$HIVE_HOME/conf
vim hive-site.xml

在这里插入图片描述

2、删除原本就有的hive元数据。(可以试一下更新元数据的信息,就是把所有元数据的8020端口改成9000,本人的试了没有解决,要是你们解决了,就不用进行下面的操作了)

更新元数据

步骤:思路可以试一下。

1、进入mysql

2、找到hive

3、找到DBS和SDS两张表

DBS:保存着数据仓库的路径 (存放数据库的元数据信息)

SDS:保存着每张表对应的路径(表中存储了存储了各种类型元数据)

只需要修改上面两张表元数据存储的路径就好了。

mysql -uroot -p
****
show databases;
use hive3; //自己的
UPDATE DBS SET DB_LOCATION_URI='/new/warehouse/path' WHERE NAME='default';  //自己的
UPDATE SDS SET LOCATION='/new/table/path' WHERE 1=1; //自己的要改变
exit;

完成以上步骤后,Hive 的数据仓库路径和表路径将被更新为你指定的新路径。请确保新路径是有效的,并且有相应的权限访问。

在这里插入图片描述

记得关闭hive,重启hive。

删除元数据:进入myslq,删除hive元数据的那个数据库。

mysql -uroot -p
****
show databases;
drop database hive3;// hive3 是自己的,每个人不一样。我下面的drop hive3;是错的少database.

在这里插入图片描述

删除后格式化hive,也就是在创建一个hive3来存储元数据。

schematool -dbType mysql -initSchema //我用的是mysql存储元数据,你们用的啥写啥

在这里插入图片描述

成功的标记:

在这里插入图片描述

3、格式化hadoop

注意:hive的数据存在hdfs上记得在新建一个目录

本人应改新建的目录是:

hdfs dfs -mkdir -p /user/hive/warehouse //自己的目录

在这里插入图片描述

关闭Hadoop

stop-all.sh

删除旧的Hadoop元数据文件

本人博客:https://blog.csdn.net/ysl1196321875/article/details/135491368?spm=1001.2014.3001.5501

确认DataNode目录

本人博客:https://blog.csdn.net/ysl1196321875/article/details/135491368?spm=1001.2014.3001.5501

格式化NameNode

hdfs namenode -format

启动Hadoop集群

start-all.sh

在这里插入图片描述

总结:

我们改了一个hive端口号,把hive的元数据都给删了,把hdfs的数据也给删除了。算是全部重置了。告别以前的所有的数据,自然而然的就不会在有影响。

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/53826feccb.html