项目场景:进入Hive数据库

执行“/bin/hive”命令。

在这里插入图片描述


问题描述

报错: Exception in thread "main" java.lang.RuntimeException: java.net.ConnectException: Call From hadoop102/192.168.40.102 to hadoop102:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused


原因分析:

没有启动 YARN。


解决方案:

1、启动YARN,执行 “myhadoop.sh start” 命令。

在这里插入图片描述

2、在$HIVE_HOME 路径下,执行 “bin/hive” 命令。

在这里插入图片描述

注意事项:

hive的数据库MySQL在安装的时候一定初始化数据库,否则使用数据库时,会报错FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient,解决方案:初始化数据库,命令:schematool -initSchema -dbType mysql -verbose。
参考文章:Hive错误: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.Session

在远程模式下,必须先启动Hive metastore服务才可以使用hive。因为metastore服务和hIve server是两个单独的进程了。

附件:

myhadoop.sh脚本

#!/bin/bash
if [ $# -lt 1 ]
then
 echo "No Args Input..."
 exit ;
fi
case $1 in
"start")
 echo " =================== 启动 hadoop 集群 ==================="
 echo " --------------- 启动 hdfs ---------------"
 ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
 echo " --------------- 启动 yarn ---------------"
 ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
 echo " --------------- 启动 historyserver ---------------"
 ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start 
historyserver"
;;
"stop")
 echo " =================== 关闭 hadoop 集群 ==================="
 echo " --------------- 关闭 historyserver ---------------"
 ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop 
historyserver"
 echo " --------------- 关闭 yarn ---------------"
 ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
 echo " --------------- 关闭 hdfs ---------------"
 ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
 echo "Input Args Error..."
;;
esac

更多推荐