最简单方法解决启动hive时报错:Exception in thread “main“ java.lang.RuntimeException: org.apache.hadoop.hdfs.serve
相信很多人和我一样在启动完集群之后,通过“lsof -i:10000”检测是否启动成功时会遇到如下图这种情况:等待许久依旧无法启动成功,从而DataGrip无法连接数据库。经过回头检验发现在启动metastore后,hive检验时报错如下图:很容易我们可以关注到:这是因为我们在某次关闭虚拟机时,hadoop没正常关闭,系统自动启动了保护模式!
问题描述
相信很多人和我一样在启动完集群之后,通过“lsof -i:10000”检测是否启动成功时会遇到如下图这种情况:
等待许久依旧无法启动成功,从而DataGrip无法连接数据库。
经过回头检验发现在启动metastore后,hive检验时报错如下图:
很容易我们可以关注到:
Logging initialized using configuration in jar:file:/export/server/hive/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
Exception in thread "main" java.lang.RuntimeException: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /tmp/hive. Name node is in safe mode.
这是因为我们在某次关闭虚拟机时,hadoop没正常关闭,系统自动启动了保护模式!
解决办法
1.首先我们要检测我们的安全模式是否是开启状态:
hadoop dfsadmin -safemode get
很显然,安全模式为ON开启状态,此时matestore服务是不能启动的。
2.关闭安全模式:hadoop dfsadmin -safemode forceExit
当最后一行显示OFF时,代表我们关闭成功,然后我们重新启动matestore服务。
解决后结果
启动之后,输入hive进行运行结果检测:
问题解决:
启动hiveserver2服务:(此过程可能耗时几分钟,根据自己电脑配置情况会有所不同)
检测状态:
大功告成!
更多推荐
所有评论(0)