一、目的
在删除HDFS中Hive目录下的数据文件后,导致HQL查询异常,以及XShell连接MySQL出现异常
二、问题
(一)HQL查询问题
SQL语句在增加group by之后查询无数据,没有group by则查询有数据
而且SQL语句无法动态加载到表中
(二)XShell连接MySQL出现异常
Navicat连接MySQL正常,但是XShell连接MySQL出现异常
ERROR 2002 (HY000): Can t connect to local MySQL server through socket /tmp/mysql.sock (2
三、原因猜测
由于Hive的元数据库是在MySQL中,因此频繁多次删除HDFS的Hive的表文件,则会导致异常,这个问题之前其实发生过
四、解决方法
(一)XShell连接MySQL问题(亲测,已解决)
1、执行MySQL的config_tar.sh脚本
# sh config_tar.sh
2、执行完脚本后XShell就可以登录MySQL
(二)HQL查询问题(猜测、但也解决)
1、重装Hive
结果是在原有DataGrip控制台执行SQL语句还是没有用
2、开启DataGrip新的控制台
结果是在新的控制台中查询语句有用,也可以正常插入
所以,感觉并不需要重新安装Hive(后续建库建表太费事),只需要开启DataGrip新的控制台即可!
HQL查询失败应该是删除HDFS中的Hive数据文件导致DataGrip原有控制台的查询能力出现问题,只需要开启新的控制台即可!
2024年4月18日续写
又遇到这个问题,最终实在不行重装Hadoop和hive(基本不需要重装Hadoop)
2024年4月25日续写
1、执行命令确认 yarn node -list all,确实有不健康的节点
2、修改Hadoop配置文件yarn-site.xml
<property>
<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
<value>95</value>
</property>
3、重启Hadoop
4、参考博客
http://t.csdnimg.cn/xtq4Uhttp://t.csdnimg.cn/xtq4U
2024年7月8日续写
今日周一,霉运当头,好死不死又遇到这个问题,在重装Hive后也没啥用,最后还是靠修改Hadoop配置文件yarn-site.xml,把原本的95改成99才成功
然后重启Hadoop后,Hive的任务就可以正常运行了
最后总结一下,不需要重装hive,修改Hadoop配置文件的参数即可!